Native IPv6 over DHCPv6 and RA not working in combination with PPPoE IPv4
-
@ermal
Thanks ! i will test this tomorrow when a new snapshot is build !
-
Im sorry for the late reply, been busy.
Anyway, it doesnt seem to be working, somehow it doesnt start the dhcp6c process anymore, the radvd starts fine.
I've been rebooting a lot, sometimes it comes up, but 9/10 it doesnt, i cant seem to find any relevant logs, its almost like its not started at all.
Since this also happened before i will first try to do a fresh install and check if it happens again/still.
But maybe someone who knows more about this can also investigate if something is wrong, just let me know what information you need.
-
Unfortunately this patch broke IPv6 for me.
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 portHere 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=4252As 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.
So, to get IPv6 running again the DHCPv6 should go over pppoe and it should not request an IP address but only the delegation.
-Andre</snap></snap>
-
@avink
You are a lifesaver, this is indeed whats happening, i copied your settings and everything works ok now !
However, still 2 "bugs" for me:
- dhcp6c is not started for me, i have to run it manually to get it running.
- i cant seem to save the option "Request only a IPv6 prefix" it defaults to false and the config/backup changes say "/interfaces.php made unknown change"
Can anyone point me to the culprid for point 1 ?
-
I have to agree. the dhcp6c daemon is not starting indeed. Have to start it manually.
I already mentioned in my previous mail that the "Request only a IPv6 prefix" option is not working.
Hope these issues will be fixed soon.
-Andre
-
Did you create issue's for it in redmine perhaps ?
If not i will create legit issue's, less chance they are overlooked.
As for the DHCP6 option i think there should be an added option, something like PPPoE for IPv6, the current DHCP6 option was obviously meant to be running on the network card instead the PPPoE interface. probably solving just that also solves a lot of the other problems (gateway thats wrong for example).
-
Yes,
I created a redmine issue.
-
Request only a IPv6 prefix - checkbox saving fixed in pull request https://github.com/pfsense/pfsense/pull/716
1 dumb little bug fixed, a few more to sort out I suspect…
Someone try this little fix and report what good or havoc results now that the setting can be enabled. -
I see the pull request has been merged.
Will check the next release.But I doubt this fixes all issues. After the previous change the upstream interface will be selected instead of the pppoe interface.
I think this has to be changed too, or there has to be a selection box to select the upstream interface or the pppoe interface. -
Just tested the 2.1-RC0 (amd64) built on Sun Jul 21 09:56:52 EDT 2013 snapshot.
Neither the checkbox for PD only nor the pppoe interface selection is working.When I check the checkbox and save, it will return unchecked.
Also the selection is not reflected in the config nor in the dhcp6c_wan.conf.For now I rolled back the changes to /etc/inc/interfaces.inc to select the pppoe interface.
After saving the config I edit the dhcp6c_wan.conf file by hand and restart the daemon.Then I get the IPv6 PD again.
-
Just tested the 2.1-RC0 (amd64) built on Sun Jul 21 09:56:52 EDT 2013 snapshot.
Neither the checkbox for PD only nor the pppoe interface selection is working.When I check the checkbox and save, it will return unchecked.
This much should be working in that snapshot.After the checkbox is successfully checked, I can't say if the downstream code will work well or not, but the checkbox state should be saved in the config.
Did you put some other test version of interfaces.php onto the system? or?
Edit: Actually the commit https://github.com/pfsense/pfsense/commit/3dd6ed1ac110b3741c74a8845f30cc33379941a5 only got into the build at around 21:46 (12 hours later):Sun Jul 21 21:46:28 EDT 2013 -|- >>> Starting builder run #9... Sun Jul 21 21:46:29 EDT 2013 -|- >>> Not building pfPorts at all during this snapshot builder looped run... Sun Jul 21 21:46:29 EDT 2013 -|- >>> Last known commit Phil Davis - 3dd6ed1ac110b3741c74a8845f30cc33379941a5
So you need the next snapshot, or gitsync, or make the edit by hand…
-
Tried the latest snapshot (built on Mon Jul 22 03:26:48 EDT 2013).
Still the 'request PD only' option does not work. The checkbox is not set after saving.
Also the setting is not reflected in the dhcp6c_wan.confTo get IPv6 running I have to roll-back the fix https://github.com/pfsense/pfsense/commit/5128e0feb0f81c8cfa05a24370e250fcbe81a09e.
Then save the config so the correct inteface is used.
Then I have to edit the dhcp6c_wan.conf and start the dhcp6c daemon. -
I was nearly going to tell you you are mad, then I tried it on the new snapshot, didn't work!!! After a bit of hair pulling I discovered that I had used the version from Github Main when testing (I had test configs that I had saved that had the setting set, so it did work). Compared Main to the 2.1 branch. The version committed to 2.1 branch had an different error - the code applying the setting was in the wrong IPv6 type case statement. So that never worked in 2.1, but it worked in Main.
This (should) fix it:
https://github.com/pfsense/pfsense/pull/723
I tested with the version I submitted to the 2.1 branch this time :) -
I don't care to be called mad ;) I applied the patch by hand and yes now the checkbox is working.
Let's wait for the next snapshot. I'm fairly convinced that the parent interface is chosen instead of the pppoe interface.we'll know in a few hours.
-
There is an option to click for cases like the XS4All ISP.
Click that and you will have correct connectivity restored as previously.The option is with the description "Request a IPv6 prefix/information through the IPv4 connectivity link"
-
I'll check the next build.
Results by tomorrow morning. -
@ermal:
The option is with the description "Request a IPv6 prefix/information through the IPv4 connectivity link"
Probably I need the same option for my M-Net FTTB connection. I'm running 2.1-RC0 (amd64)
built on Mon Jul 22 15:44:15 EDT 2013 FreeBSD 8.3-RELEASE-p8 but I can't find that option. Is this not yet in or do I use a wrong release?bye
Darky -
Ermal committed the new option 7 hours ago (as I type) and a build started about 3/4 hours ago. It looks like it is finishing just now. It should have a timestamp around 23 July 2013 10:00. Try that.
-
Thanks for your quick explanation I'll try the new snapshot, as soon as it gets pushed to the update server :-)
-
@ermal:
The option is with the description "Request a IPv6 prefix/information through the IPv4 connectivity link"
Just signed up to say that this worked for me.
IPv6 (native) from my ISP was working on 2.1 beta and broke when I went to the RC, came back straight away with whatever this setting does :)