if_pppoe - is IPv6CP not supported?
-
In a rather old comment, @stephenw10 stated that he had never seen IPv6CP used.
Zen Internet uses IPv6CP to allocate the link-local address for its PPPoE connections. Here is a log fragment of mpd5 connecting to Zen on pfSense CE 2.8.1, showing only the IPv6CP entries:
Mar 28 12:22:37 copper ppp[7824]: [wan] IPV6CP: Open event Mar 28 12:22:37 copper ppp[7824]: [wan] IPV6CP: state change Initial --> Starting Mar 28 12:22:37 copper ppp[7824]: [wan] IPV6CP: LayerStart Mar 28 12:22:37 copper ppp[7824]: [wan] IPV6CP: Up event Mar 28 12:22:37 copper ppp[7824]: [wan] IPV6CP: state change Starting --> Req-Sent Mar 28 12:22:37 copper ppp[7824]: [wan] IPV6CP: SendConfigReq #1 Mar 28 12:22:37 copper ppp[7824]: [wan] IPV6CP: rec'd Configure Request #154 (Req-Sent) Mar 28 12:22:37 copper ppp[7824]: [wan] IPV6CP: SendConfigAck #154 Mar 28 12:22:37 copper ppp[7824]: [wan] IPV6CP: state change Req-Sent --> Ack-Sent Mar 28 12:22:37 copper ppp[7824]: [wan] IPV6CP: rec'd Configure Nak #1 (Ack-Sent) Mar 28 12:22:37 copper ppp[7824]: [wan] IPV6CP: SendConfigReq #2 Mar 28 12:22:38 copper ppp[7824]: [wan] IPV6CP: rec'd Configure Ack #2 (Ack-Sent) Mar 28 12:22:38 copper ppp[7824]: [wan] IPV6CP: state change Ack-Sent --> Opened Mar 28 12:22:38 copper ppp[7824]: [wan] IPV6CP: LayerUp Mar 28 12:22:38 copper ppp[7824]: [wan] 0000:0000:0000:0001 -> 827f:f8ff:fe74:08ebI finally got around to trying if_pppoe on pfSense CE 2.8.1, and only IPv4 works. pfSense never gets the IPv6 gateway link-local address.
Is if_pppoe supposed to support IPv6CP? If not, that is why Zen will not work with IPv6 on if_pppoe: Zen uses IPv6CP to provide the gateway link-local address. After you have the link-local address, you must delegate a prefix before Zen enables IPv6 routing on its end.
I am happy to test patches (and I am happy to be blamed for some of the cruft in the mpd5 IPv6 ppp helper scripts, as I contributed some of that code back in the pfSense 2.3 and 2.4 days).
-
IPV6CP is supported and should just work.
A full network capture of the connection setup along with ifconfig and pppcfg output will be helpful in debugging this.
-
@David_W I have IPv6 working on Zen with if_pppoe.
However, something has changed just in the last few days where my connection reset and the WAN_DHCP6 gateway is not showing an address and displays unknown status in the pfSense GUI (latest 26.03-RC). This persists with rebooting or disconnecting/reconnecting the WAN interface.
This does not appear to otherwise affect IPv6 and, as the gateway was displaying correctly prior to that, I'm currently blaming this on something at Zen's end.
-

And, as a follow-up to my previous post, the gateways are now displaying correctly (pfSense+ 26.03, Zen Internet, PPPoE with if_pppoe enabled).
-
@bigsy said in if_pppoe - is IPv6CP not supported?:
And, as a follow-up to my previous post, the gateways are now displaying correctly (pfSense+ 26.03, Zen Internet, PPPoE with if_pppoe enabled).
So you have updated you pfSense to release or what happened? Did you try to disconnect and connect your pppoe link on the status - interfaces page to replicate issue on release version?
-
@w0w I rebooted 26.03-RC prior to upgrading to 26.03 release and noticed that it was working again at that stage.
-
@kprovost I'm sorry that it has taken some time for me to investigate this further. I have had to change my network switch and fix some cabling issues to be able to port mirror.
The clue as to what I think is wrong is some entries in the system log that look like:
Apr 25 15:30:00 kernel if_pppoe: pppoe0: failed to set default route 17My system is dual WAN: the PPPoE is the primary WAN, whilst the secondary WAN is DHCP for IPv4 and a gif tunnel for IPv6 (it's the best I can do with the ISPs available to me at this location).
It seems that if_pppoe fails to install the default IPv6 when the gif tunnel is up - the default IPv6 route remains the gif tunnel route. Just sometimes, if_pppoe wins the race and manages to install an IPv6 default route before the gif tunnel comes up.
Unfortunately, this is a kernel issue, and if_pppoe appears to be closed source (at least, I can't find the source in any of the GitHub repositories).
I am happy to collect further debugging data and test any patches.
-
@David_W We have improvements around default route handling for IPv6 in later versions of if_pppoe, but as of right now those changes are only in pfSense Plus. They'll turn up in CE with the next update.