Bug #13939
closedIPv6 does not work on secondary PPPoE WAN
100%
Description
I have 2 PPPoE WANs at home and IPv6 only works on primary link, used as default gateway. In this case pppoe0 works as expected and pppoe1 fails because system tries to route its gateway address through pppoe0 connection. ifconfig show it as detached.
[23.01-RC][root@pfgarga.home.arpa]/tmp: ifconfig pppoe1 pppoe1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1492 description: TRIBENET inet6 fe80::290:bff:fe7a:8647%pppoe1 prefixlen 64 scopeid 0xc inet6 2804:184c:10:7455:290:bff:fe7a:8647 prefixlen 64 detached autoconf inet 200.12.10.232 --> 200.12.0.50 netmask 0xffffffff nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL> [23.01-RC][root@pfgarga.home.arpa]/tmp: cat /tmp/pppoe1_routerv6 fe80::f7:ef3a [23.01-RC][root@pfgarga.home.arpa]/tmp: route -6 get fe80::f7:ef3a route to: fe80::f7:ef3a destination: default mask: default gateway: fe80::6e16:32ff:fe47:eaa8%pppoe0 fib: 0 interface: pppoe0 flags: <UP,GATEWAY,DONE> recvpipe sendpipe ssthresh rtt,msec mtu weight expire 0 0 0 0 1492 1 0
Updated by Jim Pingle almost 2 years ago
- Target version set to 2.7.0
- Plus Target Version set to 23.05
It may only need to ensure the proper scope gets added to that router file, which it isn't doing now.
source:src/usr/local/sbin/ppp-linkup#L74 writes the <if>_routerv6
file but it just dumps in the value it gets from the peer.
The script needs to be changed so it tests if the address starts with fe80:
and if so, add on %${IF}
before writing out the contents.
So in this case, the file /tmp/pppoe1_routerv6
should contain fe80::f7:ef3a@pppoe1
Updated by Reid Linnemann almost 2 years ago
It actually looks like this was written from the get-go to omit the scope, which is why it does echo ${IP} |cut -d% -f 1 > ...
for the ipv6 router and ip file.
Updated by Renato Botelho over 1 year ago
Reid Linnemann wrote in #note-2:
It actually looks like this was written from the get-go to omit the scope, which is why it does
echo ${IP} |cut -d% -f 1 > ...
for the ipv6 router and ip file.
I removed `| cut` part from ppp-linkup and after this /tmp/pppoeN_routerv6 is correct. Also pf rules are all correct.
I can ping WAN v6 address from outside without any trouble. But I cannot ping external address sourcing from firewall itself. I got an error:
`ping6: bind: Can't assign requested address`
Which I suspect to be caused by the `detached` state of v6 address on pppoe1 interface
pppoe1: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1492 description: TRIBENET inet6 fe80::290:bff:fe7a:8647%pppoe1 prefixlen 64 scopeid 0xc inet6 2804:184c:8020:658:290:bff:fe7a:8647 prefixlen 64 detached autoconf inet 200.12.9.201 --> 200.12.0.50 netmask 0xffffffff nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
Updated by Renato Botelho over 1 year ago
- Status changed from New to Feedback
- % Done changed from 0 to 100
Applied in changeset 1792ffdb859a5cb40c11360c30989ccc3b7a9271.
Updated by Jim Pingle over 1 year ago
- Subject changed from IPv6 doesn't work on secondary PPPoE WAN to IPv6 does not work on secondary PPPoE WAN
Updating subject for release notes.
Updated by Jim Pingle over 1 year ago
- Category changed from IPv6 Router Advertisements (radvd/rtsold) to PPP Interfaces
Updated by Jim Pingle over 1 year ago
- Status changed from Feedback to Resolved
Renato says this is working well on current snapshots and can be closed.