Bug #8273
openIPv6 GRE tunnel over PPPoE fails on startup
0%
Description
I have a XS4ALL FTTH pppoe connection that provides IPv6. IPv6 works perfectly, however GRE doesn't during initialization.
My PPPoE interface configuration have:- Request a IPv6 prefix/information through the IPv4 connectivity link
- Request only an IPv6 prefix
- DHCPv6 Prefix Delegation size: /48
- Do not allow PD/Address release
LAN interface track PPPoE with a prefix ID I have chosen.
I created an IPv6 GRE tunnel on my LAN interface (to use the LAN address).
After pfsense is up, I have (note the lack of the tunnel line):
gre2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1374 options=80000<LINKSTATE> inet6 fd7c:d51:b33e:efd5::12a --> fd7c:d51:b33e:efd5::129 prefixlen 128 inet6 fe80::ae1f:6bff:fe00:25c0%gre2 prefixlen 64 scopeid 0x12 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> groups: gre
My manual workaround is to go to the GRE interface on the web interface, edit and save. Everything starts working fine after that:
gre2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1374 options=80000<LINKSTATE> tunnel inet6 2001:?:?::5 --> 2001:?:?::2 inet6 fd7c:d51:b33e:efd5::12a --> fd7c:d51:b33e:efd5::129 prefixlen 128 inet6 fe80::ae1f:6bff:fe00:25c0%gre2 prefixlen 64 scopeid 0x12 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> groups: gre
Updated by Jim Pingle almost 7 years ago
- Assignee deleted (
Jim Pingle) - Target version changed from 2.4.3 to 2.4.4
I don't have a means to test IPv6 over PPPoE, but I tried this with DHCPv6 with LAN set to track and the same behavior happens there. The tunnel
line with the external addresses is not in ifconfig at boot time.
Looking at the logs, this appears to be due to the tracked LAN address being empty when the first GRE pass is done:
Jan 22 10:42:12 clara php-cgi: rc.bootup: The command '/sbin/ifconfig gre0 inet6 tunnel '2001:db8:1:deb0::1'' returned exit code '1', the output was 'ifconfig: 'tunnel' requires 2 arguments'
The argument shown there is the remote endpoint, the local endpoint is missing.
The code is doing things in the proper order. The track interface is setup before the GRE interface is attempted. It could be a timing issue, but if that's the case there may not be a good way around that other than attempting to (re)configure interfaces like GRE which depend on the tracked address when it appears.
I don't see any easy fix for this at the moment, any changes to interface configuration timing in that area will need more time/testing than we'll have before 2.4.3 needs to be out.
Updated by Wagner Sartori Junior over 6 years ago
As we're not having traction here, is there a way to manually trigger the GRE interface restart from the command line (emulate clicking SAVE on GRE interface configuration) ?
I will add something to CRON.
Updated by Mickaël FALCK over 6 years ago
I've stumbled onto a similar problem in my unrelenting quest to get IPv6 to work (but in DHCPv6+PD on WAN + VIP): the script doesn't know the local endpoint because the virtual IP hasn't been initialized yet.
I've (shamefully) worked it around by installing the "shellcmd" package and adding the following command:
- Command: ifconfig gre1 inet6 tunnel <LOCAL_ENDPOINT> <REMOTE_ENDPOINT>
- Shellcmd type: shellcmd
Of course, make sure to replace LOCAL/REMOTE_ENDPOINT with the IPv6 addresses you need.
Hopefully this will help you out.
Updated by Anonymous about 4 years ago
- Target version changed from 2.5.0 to CE-Next
Updated by Steve Wheeler about 2 years ago
- Status changed from Duplicate to Confirmed
- Target version set to CE-Next
- Plus Target Version set to Plus-Next
This is not a duplicate directly because in this scenario the parent interface is not a WAN directly but an internal interface that tracks the WAN for IPv6.
It looks like the only things that are restarted when the tracked interface changes are DNS and DHCPD. It should probably also restart tunnels, VPNs etc.