IPv6 in cascading routers

Hello :slight_smile:
My ISP provides IPv6 natively (with a /56 yay!) but I need to use their provided ONU/Router/AP combo.
I have IPv4 working and DMZed my OpenWRT router so that's fine and dandy.

My issue is, I want to use a part of the /56 on my OpenWRT box and the ONU doesnt do DHCPv6-PD. So I a custom delegated prefix on WAN6 and put radvd in server mode. Ok great my clients get IPv6 addresses from the /60 (Lan got assigned a /64 from the /60). But my clients aren't getting any connectivity over IPv6.

I looked around and found that I need to setup static routes on my ISP's router. Checked my ISP's router and luckily they do support that.Though I have no idea on what to put there. It only says

DstPrefix: (Textbox)
Nexthop: (Textbox)
WAN Name: (Dropdown. Defaults to WAN0 which is the fiber connection)

So my setup is like this

IPv6 works on OpenWRT and pinging/curl works for IPv6 only sites.

When pinging from clients, it only hangs. Traceroute only shows the OpenWRT Box as the first hop then nothing else.

    > traceroute -6 google.com
    1 20tt:xxxx:zzz:eff0::1 (20tt:xxxx:zzz:eff0::1)
    2 * * *

I've tried setting a static route on /etc/config/network and it doesnt work

config route6
  option interface 'wan6'
  option target '::/'
  option gateway 'fe80::beef'

I've been scratching my head over this for a few days so I'd be glad if you guys can help! Thank you!

EDIT:
Just to note, yes I've tried relay mode. It doesn't suit the needs as I want a separate subnet for my raspis and home servers.
Also just relaying it gives the ISPs DNS servers which I cant change.

What are your routes showing on both routers?

Run ip r on the OpenWRT box; I'm not sure what you'll find on your provided one, but it may very well not want to use your link-local without being forced. Different ISPs do different weird things.

You can always edit your local OpenWRT /etc/config/* files if you decide to use relay, and break up subnets across different virtual interfaces, provided your built in switch allows you to address each port/wireless separately.

Here's my ip -6 route I assumed you wanted that since the topic is about IPv6

root@BlackHole:/etc/init.d# ip -6 route
20tt:xxxx:zzz:ef00::/64 dev wlan0  metric 256 
20tt:xxxx:zzz:ef00::/64 via fe80::beef dev wlan0  metric 384 
20tt:xxxx:zzz:eff0::/64 dev br-lan  metric 1024 
unreachable 20tt:xxxx:zzz:eff0::/60 dev lo  metric 2147483647  error -113
fd19:d0b3:4d13::/64 dev br-lan  metric 1024 
unreachable fd19:d0b3:4d13::/48 dev lo  metric 2147483647  error -113
fe80::/64 dev br-lan  metric 256 
fe80::/64 dev wlan0  metric 256 
anycast 20tt:xxxx:zzz:ef00:: dev wlan0  metric 0 
anycast 20tt:xxxx:zzz:eff0:: dev br-lan  metric 0 
anycast fd19:d0b3:4d13:: dev br-lan  metric 0 
anycast fe80:: dev br-lan  metric 0 
anycast fe80:: dev wlan0  metric 0 
ff00::/8 dev br-lan  metric 256 
ff00::/8 dev wlan0  metric 25

I did have relay mode working but with the weird quirk that iOS devices seems to not have IPv6 Connections. I've tried my linux pcs and they work over the same network. But that's another topic :slight_smile:
Also I can't really break up the /64 that is being advertised right? I'd run into the same issue if I use another /64 I think.

Yep. Sure did.

What's weird is that you don't have any default set. You're just trying to force link-local - and you're still being vended IPs from upstream or are you assigning that? You should at least have some form of static handoff from the router being vended your IPv6, something like:

default from 20tt:xxxx:zzz:eff0::1::/56 dev wlan0 metric x
default from 20tt:xxxx:zzz:eff0::/56 dev wlan0 metric x

Depending on your router upstream, it should be capable of vending at least statically based upon MAC. I'd try setting a static IP for your OpenWRT and ensure your tables are setup to rewrite, provded your OpenWRT router can actually talk to the first one. If you can't, you might have to do something other than just a link-local for a gateway.

Again, it's not that difficult to break down to maybe assigning a static /64 to your OpenWRT box and then vending that out, but we want to make sure you have good bicommunication between the primary, and your OWRT before trying to bother with that.

The /56 is on the ISP router. I assigned a /60 on the OpenWRT that is derived from the /56. I only get a SLAAC address without the custom delegation.

Not sure what you meant by static handoff. Statically assigned addresses using MAC addresses? it does but only on IPv4 so not sure I follow what you mean.
And yes, the OpenWRT box can talk via IPv6 and IPv4 to the main router (ISP provided one)

I forgot to note that wlan0 is currently wan/6 as I'm playing with a raspi running openwrt. I'm just using another router an an AP plugged on the lan port of my raspi.

I forgot I was actually testing various configs to get it working and forgot to enable default routes again
Here's the ip -6 route with it enabled. Though nothing really changed.
I assume its because of what the others said about needing static routes on the ISP router. Which I have no idea what I need to put in. I'm no networking guy haha

default from 20tt:xxxx:zzz:ef00::/64 via fe80::beef dev wlan0  metric 512 
default from 20tt:xxxx:zzz:eff0::/60 via fe80::beef dev wlan0  metric 512 
20tt:xxxx:zzz:ef00::/64 dev wlan0  metric 256 
20tt:xxxx:zzz:ef00::/64 via fe80::beef dev wlan0  metric 384 
20tt:xxxx:zzz:eff0::/64 dev br-lan  metric 1024 
unreachable 20tt:xxxx:zzz:eff0::/60 dev lo  metric 2147483647  error -113
fd19:d0b3:4d13::/64 dev br-lan  metric 1024 
unreachable fd19:d0b3:4d13::/48 dev lo  metric 2147483647  error -113
fe80::/64 dev br-lan  metric 256 
fe80::/64 dev wlan0  metric 256 
anycast 20tt:xxxx:zzz:ef00:: dev wlan0  metric 0 
anycast 20tt:xxxx:zzz:eff0:: dev br-lan  metric 0 
anycast fd19:d0b3:4d13:: dev br-lan  metric 0 
anycast fe80:: dev br-lan  metric 0 
anycast fe80:: dev wlan0  metric 0 
ff00::/8 dev br-lan  metric 256 
ff00::/8 dev wlan0  metric 256

I finally fixed it :smiley:

the static route setting on the router UI wasnt really working.
Conveniently, I found a way to access the command line of the ISP router. I manually added a route
route -A inet6 add 20tt:xxxx:zzz:eff0::/60 via (OpenWRT IPv6) dev br0

And it worked

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.