Hi
I try to set up my local site with four zones for IPv6 and there is a lot of things not working. It seems as if this is caused mainly by the clients, but I'm unsure about that. Does have someone similar problems?
I have no uplink, so IPv6 is only site local (at the moment). I have an ULA set.
What I get is the following for devices with dhclient (Linux Mint 19):
enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.41.204 netmask 255.255.255.0 broadcast 192.168.41.255
inet6 fe80::4fb1:379c:2e4d:6763 prefixlen 64 scopeid 0x20<link>
inet6 fd42::41:7c31:e0f2:72ad:8f63 prefixlen 64 scopeid 0x0<global>
inet6 fd42:0:0:41::383 prefixlen 128 scopeid 0x0<global>
$ ip -6 route
fd42:0:0:41::383 dev enp0s31f6 proto kernel metric 256 pref medium
fd42:0:0:41::/64 dev enp0s31f6 proto ra metric 100 pref medium
fd42::/56 via fe80::24f5:a2ff:fe2d:7cc0 dev enp0s31f6 proto ra metric100 pref medium
fe80::/64 dev enp0s31f6 proto kernel metric 256 pref medium
So this is working well. The device gets a IPv6 from DHCP ( fd42:0:0:41::383) and it get a route matchign the ULA: fd42::/56 via fe80::24f5:a2ff:fe2d:7cc0 dev enp0s31f6 proto ra metric 100 pref medium
The raspberries have this:
$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.40.62 netmask 255.255.255.0 broadcast 192.168.40.255
inet6 fd42::40:dea6:32ff:fe04:c18b prefixlen 64 scopeid 0x0<global>
inet6 fe80::dea6:32ff:fe04:c18b prefixlen 64 scopeid 0x20<link>
$ ip -6 route
::1 dev lo proto kernel metric 256 pref medium
fd42:0:0:40::/64 dev eth0 proto ra metric 202 mtu 1500 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium default via fe80::24f5:a2ff:fe2d:7cc0 dev eth0 proto ra metric 202 mtu
1500 pref medium
No DHCP assigned IP address, no route matching the ULA.
I found this here: https://roy.marples.name/archives/dhcpcd-discuss/0002803.html
and for me it seems as if this all is caused be the raspberry's dhcpcd not taking the announced information correctly. I also tried with a completely fresh install of a raspberry, same result.
the RPI is doing SLAAC, which is handled by the kernel and doesn't have anything to do with the DHCP client. apparently your router is not announcing itself as a router for the whole ULA prefix?
My raspi is able to pick up IP from dhcpv6. However I am not getting the whole ULA prefix, which is not a problem because I am getting the default route anyway.
Is the raspbian buster really doing only SLAAC? I know that Android ist doing SLAAC only, but for the raspi I have an emtpy /etc/network/interfaces and as far as I read, network configuration is handled be dhcpcd with /etc/dhcpcd.conf as configuration. It should use DHCPv6 if announced by the router. Shouldn't it?
May you send me your configuration? Also, how is OpenWrt set up?
For me it is for DHCP6 page:
'Server'
'Server'
'disabled'
'stateles + statefull'
announce default route is unchecked.
But Mint is getting it. And I would expect it should work with SLAAC also, as it must be possible with IPv6 to set up a site with multiple zones / subnets without having a public uplink. For this this routing is necessary.
Now than this is a bit weird. So it may be the public prefix make it work on your configuration.
Operational considerations:
Default Routing: connectivity may be broken if ULAs are used as default route. When using RIO (Route
Information Option) in [RFC4191], specific routes can be added without a default route, thus avoiding bad
user experience due to timeouts on ICMPv6 redirects. This behavior was well documented in [RFC7084]
as rule ULA-5 "An IPv6 CE router MUST NOT advertise itself as a default router with a Router Lifetime
greater than zero whenever all of its configured and delegated prefixes are ULA prefixes." and along with
rule L-3 "An IPv6 CE router MUST advertise itself as a router for the delegated prefix(es) (and ULA prefix if
configured to provide ULA addressing) using the "Route Information Option" specified in Section 2.3 of
[RFC4191]. This advertisement is independent of having or not having IPv6 connectivity on the WAN
interface.". However, it needs to be noticed that current OSes don't all support [RFC4191].
Now, I will dig a bit deeper into the last sentence regarding raspbian buster.
I'm pretty sure mint is getting its route via dhcpv6.
on the RasPi see if it's using systemd-network config. It probably is and isn't using dhcpd at all. If you check to announce default route on your router the routing should work fine for SLAAC hosts. The issue is that it's possible for some hosts to be routers for ULA networks only so they shouldn't announce as default routers... though I would think they should announce their full ULA routes... perhaps systemd networking has a bug related to ULA routes?
The raspberries now also get an IPv6 by DHCP. Remember: they are connected to the same interface as the Mint devices. So: the raspberries systemd-networkd uses the installed dhcpcd (tested with modification in /etc/dhcpcd.conf).
The raspberries are on the same interface of the router but 'behind' a powerline connection. I replaced this two month ago with a new Devolo Magic 2 Combo (gives me 1600Mb/s or better 450Mb/s netto). I putted in the old Combo yesterday ... and magically: the raspberries got a DHCP assigned IPv6 address.
I will file a bug report at Devolo.
So first issue solved: no more 'weird' and not undestandable actions on the ip assignment.
But they still don't get the fd42::/56 route like the Mint devices. SO I still need to get this one figured out.