Bug #3097
closedIPv6 over PPPoE is not working
100%
Description
Dutch XS4All provider requires IPv6 DHCP inside PPPoE tunnel
Now the DHCP request is going over the physical interface (em0 for me) and it is not getting answered.
[2.1-RC0][admin@firewall.familievink.nl]/var/etc(6): /usr/local/sbin/dhcp6c -f -d -D -c /var/etc/dhcp6c_wan.conf -p /var/run/dhcp6c_pppoe0.pid *em0* Jul/19/2013 08:46:50: gethwid: found an interface ath0 for DUID Jul/19/2013 08:46:50: get_duid: generated a new DUID: 00:01:00:01:19:7b:9d:5a:74:f0:6d:80:94:48 Jul/19/2013 08:46:50: get_duid: saved generated DUID to /var/db/dhcp6c_duid Jul/19/2013 08:46:50: dhcp6_ctl_authinit: failed to open /usr/local/etc/dhcp6cctlkey: No such file or directory Jul/19/2013 08:46:50: client6_init: failed initialize control message authentication Jul/19/2013 08:46:50: client6_init: skip opening control port
Here it gets stuck.
After changing the interface to pppoe0 in the config file and at the dhcp6c command line the request gets answered.
[2.1-RC0][admin@firewall.familievink.nl]/var/etc(6): /usr/local/sbin/dhcp6c -f -d -D -c /var/etc/dhcp6c_wan.conf -p /var/run/dhcp6c_pppoe0.pid pppoe0 Jul/19/2013 08:46:50: gethwid: found an interface ath0 for DUID Jul/19/2013 08:46:50: get_duid: generated a new DUID: 00:01:00:01:19:7b:9d:5a:74:f0:6d:80:94:48 Jul/19/2013 08:46:50: get_duid: saved generated DUID to /var/db/dhcp6c_duid Jul/19/2013 08:46:50: dhcp6_ctl_authinit: failed to open /usr/local/etc/dhcp6cctlkey: No such file or directory Jul/19/2013 08:46:50: client6_init: failed initialize control message authentication Jul/19/2013 08:46:50: client6_init: skip opening control port _<SNAP>_ Jul/19/2013 08:46:50: dhcp6_reset_timer: reset a timer on pppoe0, state=INIT, timeo=0, retrans=383 Jul/19/2013 08:46:50: client6_send: a new XID (cd2303) is generated Jul/19/2013 08:46:50: copy_option: set client ID (len 14) Jul/19/2013 08:46:50: copyout_option: set identity association Jul/19/2013 08:46:50: copy_option: set elapsed time (len 2) Jul/19/2013 08:46:50: copy_option: set option request (len 4) Jul/19/2013 08:46:50: copyout_option: set IA_PD *Jul/19/2013 08:46:50: client6_send: send solicit to ff02::1:2%pppoe0 Jul/19/2013 08:46:50: dhcp6_reset_timer: reset a timer on pppoe0, state=SOLICIT, timeo=0, retrans=1088 Jul/19/2013 08:46:51: client6_recv: receive advertise from fe80::2a0:a50f:fc78:5530%pppoe0 on pppoe0* Jul/19/2013 08:46:51: dhcp6_get_options: get DHCP option client ID, len 14 Jul/19/2013 08:46:51: DUID: 00:01:00:01:19:7b:9d:5a:74:f0:6d:80:94:48 Jul/19/2013 08:46:51: dhcp6_get_options: get DHCP option server ID, len 26 Jul/19/2013 08:46:51: DUID: 00:02:00:00:05:83:4a:4e:31:31:45:41:33:30:42:41:46:41:00:00:00:00:00:00:00:00 Jul/19/2013 08:46:51: dhcp6_get_options: get DHCP option IA_PD, len 41 Jul/19/2013 08:46:51: IA_PD: ID=0, T1=3600, T2=5760 Jul/19/2013 08:46:51: copyin_option: get DHCP option IA_PD prefix, len 25 Jul/19/2013 08:46:51: copyin_option: IA_PD prefix: 2001:980:93ab::/48 pltime=7200 vltime=7200 Jul/19/2013 08:46:51: dhcp6_get_options: get DHCP option identity association, len 18 Jul/19/2013 08:46:51: IA_NA: ID=0, T1=0, T2=0 Jul/19/2013 08:46:51: copyin_option: get DHCP option status code, len 2 Jul/19/2013 08:46:51: status code: no addresses Jul/19/2013 08:46:51: dhcp6_get_options: get DHCP option DNS, len 32 Jul/19/2013 08:46:51: client6_recvadvert: server ID: 00:02:00:00:05:83:4a:4e:31:31:45:41:33:30:42:41:46:41:00:00:00:00:00:00:00:00, pref=-1 Jul/19/2013 08:46:51: client6_recvadvert: reset timer for pppoe0 to 0.791111 Jul/19/2013 08:46:51: select_server: picked a server (ID: 00:02:00:00:05:83:4a:4e:31:31:45:41:33:30:42:41:46:41:00:00:00:00:00:00:00:00) Jul/19/2013 08:46:51: client6_send: a new XID (e1e230) is generated Jul/19/2013 08:46:51: copy_option: set client ID (len 14) Jul/19/2013 08:46:51: copy_option: set server ID (len 26) Jul/19/2013 08:46:51: copyout_option: set status code Jul/19/2013 08:46:51: copyout_option: set identity association Jul/19/2013 08:46:51: copy_option: set elapsed time (len 2) Jul/19/2013 08:46:51: copy_option: set option request (len 4) Jul/19/2013 08:46:51: copyout_option: set IA_PD prefix Jul/19/2013 08:46:51: copyout_option: set IA_PD Jul/19/2013 08:46:51: client6_send: send request to ff02::1:2%pppoe0 Jul/19/2013 08:46:51: dhcp6_reset_timer: reset a timer on pppoe0, state=REQUEST, timeo=0, retrans=977 Jul/19/2013 08:46:52: client6_recv: receive reply from fe80::2a0:a50f:fc78:5530%pppoe0 on pppoe0 Jul/19/2013 08:46:52: dhcp6_get_options: get DHCP option client ID, len 14 Jul/19/2013 08:46:52: DUID: 00:01:00:01:19:7b:9d:5a:74:f0:6d:80:94:48 Jul/19/2013 08:46:52: dhcp6_get_options: get DHCP option server ID, len 26 Jul/19/2013 08:46:52: DUID: 00:02:00:00:05:83:4a:4e:31:31:45:41:33:30:42:41:46:41:00:00:00:00:00:00:00:00 Jul/19/2013 08:46:52: dhcp6_get_options: get DHCP option IA_PD, len 41 Jul/19/2013 08:46:52: IA_PD: ID=0, T1=3600, T2=5760 Jul/19/2013 08:46:52: copyin_option: get DHCP option IA_PD prefix, len 25 Jul/19/2013 08:46:52: copyin_option: IA_PD prefix: 2001:980:93ab::/48 pltime=7200 vltime=7200 *Jul/19/2013 08:46:52: dhcp6_get_options: get DHCP option identity association, len 18 Jul/19/2013 08:46:52: IA_NA: ID=0, T1=0, T2=0 Jul/19/2013 08:46:52: copyin_option: get DHCP option status code, len 2 Jul/19/2013 08:46:52: status code: no addresses* Jul/19/2013 08:46:52: dhcp6_get_options: get DHCP option DNS, len 32 Jul/19/2013 08:46:52: info_printf: nameserver[0] 2001:888:0:6::66 Jul/19/2013 08:46:52: info_printf: nameserver[1] 2001:888:0:9::99 Jul/19/2013 08:46:52: get_ia: make an IA: PD-0 Jul/19/2013 08:46:52: update_prefix: create a prefix 2001:980:93ab::/48 pltime=7200, vltime=7200 Jul/19/2013 08:46:52: ifaddrconf: add an address 2001:980:93ab:afaf:fe:4aff:fec8:9c00/64 on bridge0 Jul/19/2013 08:46:52: get_ia: make an IA: NA-0 Jul/19/2013 08:46:52: update_ia: status code for NA-0: no addresses Jul/19/2013 08:46:52: update_ia: IA NA-0 is invalidated Jul/19/2013 08:46:52: remove_ia: remove an IA: NA-0 Jul/19/2013 08:46:52: dhcp6_reset_timer: reset a timer on pppoe0, state=INIT, timeo=0, retrans=915 Jul/19/2013 08:46:52: client6_recvreply: executes /var/etc/dhcp6c_wan_script.sh Jul/19/2013 08:46:52: client6_script: script "/var/etc/dhcp6c_wan_script.sh" terminated Jul/19/2013 08:46:52: dhcp6_remove_event: removing an event on pppoe0, state=REQUEST Jul/19/2013 08:46:52: dhcp6_remove_event: removing server (ID: 00:02:00:00:05:83:4a:4e:31:31:45:41:33:30:42:41:46:41:00:00:00:00:00:00:00:00) Jul/19/2013 08:46:52: client6_recvreply: got an expected reply, sleeping. Jul/19/2013 08:46:53: client6_send: a new XID (3abe6) is generated Jul/19/2013 08:46:53: copy_option: set client ID (len 14) Jul/19/2013 08:46:53: copyout_option: set identity association Jul/19/2013 08:46:53: copy_option: set elapsed time (len 2) Jul/19/2013 08:46:53: copy_option: set option request (len 4) Jul/19/2013 08:46:53: client6_send: send solicit to ff02::1:2%pppoe0 Jul/19/2013 08:46:53: dhcp6_reset_timer: reset a timer on pppoe0, state=SOLICIT, timeo=0, retrans=1079 Jul/19/2013 08:46:54: copy_option: set client ID (len 14) Jul/19/2013 08:46:54: copyout_option: set identity association Jul/19/2013 08:46:54: copy_option: set elapsed time (len 2) Jul/19/2013 08:46:54: copy_option: set option request (len 4) Jul/19/2013 08:46:54: client6_send: send solicit to ff02::1:2%pppoe0 Jul/19/2013 08:46:54: dhcp6_reset_timer: reset a timer on pppoe0, state=SOLICIT, timeo=1, retrans=2086 Jul/19/2013 08:46:56: copy_option: set client ID (len 14) Jul/19/2013 08:46:56: copyout_option: set identity association Jul/19/2013 08:46:56: copy_option: set elapsed time (len 2) Jul/19/2013 08:46:56: copy_option: set option request (len 4) Jul/19/2013 08:46:56: client6_send: send solicit to ff02::1:2%pppoe0 Jul/19/2013 08:46:56: dhcp6_reset_timer: reset a timer on pppoe0, state=SOLICIT, timeo=2, retrans=4252
As you can see the prefix delegation is working but the DHCP server is not offering an IP address. This is indeed according the specifications of XS4all.
The DHCP client keeps trying to get an address and IPv6 will never get active.
The wan configuration has a check box for only requesting the PD and not the IA but this is not working. Ater checking the box and committing the change the box returns unchecked.
Also the change is not reflected in the config file, so I decided to change the config file by hand.
After changing the dhcp6c_wan.conf the DHCP process is working
working dhcp6c_wan.conf:
interface pppoe0 { send ia-pd 0; # request prefix delegation send rapid-commit; request domain-name-servers; request domain-name; script "/var/etc/dhcp6c_wan_script.sh"; # we'd like some nameservers please }; id-assoc pd 0 { };
[2.1-RC0][admin@firewall.familievink.nl]/var/etc(24): /usr/local/sbin/dhcp6c -d -D -f -c /var/etc/dhcp6c_wan.conf -p /var/run/dhcp6c_pppoe0.pid pppoe0 Jul/19/2013 08:35:49: get_duid: extracted an existing DUID from /var/db/dhcp6c_duid: 00:01:00:01:19:7b:8a:da:74:f0:6d:80:94:48 Jul/19/2013 08:35:49: dhcp6_ctl_authinit: failed to open /usr/local/etc/dhcp6cctlkey: No such file or directory Jul/19/2013 08:35:49: client6_init: failed initialize control message authentication Jul/19/2013 08:35:49: client6_init: skip opening control port _<SNAP>_ Jul/19/2013 08:35:49: configure_pool: called Jul/19/2013 08:35:49: clear_poolconf: called Jul/19/2013 08:35:49: dhcp6_reset_timer: reset a timer on pppoe0, state=INIT, timeo=0, retrans=383 Jul/19/2013 08:35:50: client6_send: a new XID (d48379) is generated Jul/19/2013 08:35:50: copy_option: set client ID (len 14) Jul/19/2013 08:35:50: copy_option: set rapid commit (len 0) Jul/19/2013 08:35:50: copy_option: set elapsed time (len 2) Jul/19/2013 08:35:50: copy_option: set option request (len 4) Jul/19/2013 08:35:50: copyout_option: set IA_PD *Jul/19/2013 08:35:50: client6_send: send solicit to ff02::1:2%pppoe0 Jul/19/2013 08:35:50: dhcp6_reset_timer: reset a timer on pppoe0, state=SOLICIT, timeo=0, retrans=1088 Jul/19/2013 08:35:50: client6_recv: receive advertise from fe80::2a0:a50f:fc78:5530%pppoe0 on pppoe0* Jul/19/2013 08:35:50: dhcp6_get_options: get DHCP option client ID, len 14 Jul/19/2013 08:35:50: DUID: 00:01:00:01:19:7b:8a:da:74:f0:6d:80:94:48 Jul/19/2013 08:35:50: dhcp6_get_options: get DHCP option server ID, len 26 Jul/19/2013 08:35:50: DUID: 00:02:00:00:05:83:4a:4e:31:31:45:41:33:30:42:41:46:41:00:00:00:00:00:00:00:00 Jul/19/2013 08:35:50: dhcp6_get_options: get DHCP option IA_PD, len 41 Jul/19/2013 08:35:50: IA_PD: ID=0, T1=3600, T2=5760 Jul/19/2013 08:35:50: copyin_option: get DHCP option IA_PD prefix, len 25 Jul/19/2013 08:35:50: copyin_option: IA_PD prefix: 2001:980:93ab::/48 pltime=7200 vltime=7200 Jul/19/2013 08:35:50: dhcp6_get_options: get DHCP option DNS, len 32 Jul/19/2013 08:35:50: client6_recvadvert: server ID: 00:02:00:00:05:83:4a:4e:31:31:45:41:33:30:42:41:46:41:00:00:00:00:00:00:00:00, pref=-1 Jul/19/2013 08:35:50: client6_recvadvert: unexpected advertise Jul/19/2013 08:35:50: client6_recvadvert: reset timer for pppoe0 to 0.792155 Jul/19/2013 08:35:51: select_server: picked a server (ID: 00:02:00:00:05:83:4a:4e:31:31:45:41:33:30:42:41:46:41:00:00:00:00:00:00:00:00) Jul/19/2013 08:35:51: client6_send: a new XID (ad175a) is generated Jul/19/2013 08:35:51: copy_option: set client ID (len 14) Jul/19/2013 08:35:51: copy_option: set server ID (len 26) Jul/19/2013 08:35:51: copy_option: set elapsed time (len 2) Jul/19/2013 08:35:51: copy_option: set option request (len 4) Jul/19/2013 08:35:51: copyout_option: set IA_PD prefix Jul/19/2013 08:35:51: copyout_option: set IA_PD Jul/19/2013 08:35:51: client6_send: send request to ff02::1:2%pppoe0 Jul/19/2013 08:35:51: dhcp6_reset_timer: reset a timer on pppoe0, state=REQUEST, timeo=0, retrans=977 Jul/19/2013 08:35:51: client6_recv: receive reply from fe80::2a0:a50f:fc78:5530%pppoe0 on pppoe0 Jul/19/2013 08:35:51: dhcp6_get_options: get DHCP option client ID, len 14 Jul/19/2013 08:35:51: DUID: 00:01:00:01:19:7b:8a:da:74:f0:6d:80:94:48 Jul/19/2013 08:35:51: dhcp6_get_options: get DHCP option server ID, len 26 Jul/19/2013 08:35:51: DUID: 00:02:00:00:05:83:4a:4e:31:31:45:41:33:30:42:41:46:41:00:00:00:00:00:00:00:00 Jul/19/2013 08:35:51: dhcp6_get_options: get DHCP option IA_PD, len 41 Jul/19/2013 08:35:51: IA_PD: ID=0, T1=3600, T2=5760 Jul/19/2013 08:35:51: copyin_option: get DHCP option IA_PD prefix, len 25 Jul/19/2013 08:35:51: copyin_option: IA_PD prefix: 2001:980:93ab::/48 pltime=7200 vltime=7200 Jul/19/2013 08:35:51: dhcp6_get_options: get DHCP option DNS, len 32 Jul/19/2013 08:35:51: info_printf: nameserver[0] 2001:888:0:6::66 Jul/19/2013 08:35:51: info_printf: nameserver[1] 2001:888:0:9::99 Jul/19/2013 08:35:51: get_ia: make an IA: PD-0 Jul/19/2013 08:35:51: update_prefix: create a prefix 2001:980:93ab::/48 pltime=7200, vltime=7200 Jul/19/2013 08:35:51: client6_recvreply: executes /var/etc/dhcp6c_wan_script.sh Jul/19/2013 08:35:52: client6_script: script "/var/etc/dhcp6c_wan_script.sh" terminated Jul/19/2013 08:35:52: dhcp6_remove_event: removing an event on pppoe0, state=REQUEST Jul/19/2013 08:35:52: dhcp6_remove_event: removing server (ID: 00:02:00:00:05:83:4a:4e:31:31:45:41:33:30:42:41:46:41:00:00:00:00:00:00:00:00) *Jul/19/2013 08:35:52: client6_recvreply: got an expected reply, sleeping.*
The only things that is left is changing the IPv6 default gateway interface which was pointing to em0 to use pppoe0 and IPv6 runs again.
- Checkbox in the wan interface configuration to only request PD is not working
- DHCPv6 should use pppoe interface instead of physical interface
- ipv6 default route should point to pppoe interface
- radvd is not starting automatically