VyOS 1.5: Default IPv6 Routes

Not entirely certain if this is a bug or a change in how routes are handled.

I’m a FiOS Residential customer, and up until recently, IPv6 was working fine. Verizon doesn’t assign an IPv6 address to the WAN interface, but I get a Prefix Delegation and handle that on my own.

Recently, though, I noticed I had no access to IPv6 internet addresses. In troubleshooting, I noticed no IPv6 inbound traffic was on my WAN interface except the DHCPv6 traffic and the RAs every 5 minutes.

On a whim, I deleted my static route:
delete protocols static route6 ::/0 interface eth8

Grabbed my upstream router’s address (it’s the last line of the output of the following command):
force ipv6-rd interface eth8

Then, set up a new static route:
set protocols static route6 ::/0 next-hop <upstream router address>

That didn’t help.

BUT! this did:
set protocols static route6 ::/0 next-hop <upstream router address> interface eth8

Now IPv6 is working normally again.

Oddly enough, if I spin up a sit tunnel (tun0) to tunnel-broker, and set a static route using the following command, traffic routes properly:
set protocols static route6 ::/0 interface tun0

So, like I said, not sure if this is a bug or a change I missed… or if it’s just Verizon Being Verizon™ but thought I’d share.

Check if it is related to this ⚓ T7646 No IPv6 default route in 1.4.3 LTS

1 Like

It does appear to be related.

Following the discussion over there. Thank you!

@brav0charlie what is your upstream routers IPv6 address?

Please note that due to how IPv6 is working when you configure a default route based on link-local addresses, you are required to define a matching interface. set protocols static route6 ::/0 next-hop <upstream router address> interface eth8.

It’s a link-local address: fe80::564b:8cff:feee:3bca.

I did get everything working by adding interface eth8 to my next-hop prior to posting here.

I just tested something else after following the discussion on T7646:

delete protocols static route6
set interfaces ethernet eth8 address dhcpv6
set interfaces ethernet eth8 ipv6 address autoconf

After committing, then running force ipv6-rd interface eth8, it picked up the default gateway from the RA and learned the route:

billc@rtr01# run show ipv6 route
Codes: K - kernel route, C - connected, L - local, S - static,
       R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric, t - Table-Direct,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

K>* ::/0 [0/1024] via fe80::564b:8cff:feee:3bca, eth8, weight 1, 00:04:44
...

I never bothered to try using autoconf in the past, because I saw the callout in the docs that says using ipv6 address autoconf disables IPv6 forwarding on the interface.

I’ve always used set protocols static route6 ::/0 interface eth8 for my default route, and up until a few months ago, that worked fine with my ISP. No idea what changed on their end that borked everything to begin with.

If I reconfigure everything to use a HE.net sit tunnel, set protocols static route6 ::/0 interface tun0 works fine for the static default route.