Hi, I've just hit a problem and I want to know if I'm missing something.
Consider a Linux host that *only* has a ULA address. I find that it cannot send packets to any global unicast address that not in the same /4 prefix as the ULA. But in fact it should be able to send to *any* unicast address; ULAs are routeable, they're just not globally routeable. This is a clear bug. It's not a problem in Windows, connected to the same interface of the same router. So, here's the outupt from route -A inet6. (Please ignore the fact that the ULA prefix is lame; that's the fault of my FritzBox): Kernel IPv6 routing table Destination Next Hop Flag Met Ref Use If fd00::/64 fe80::be05:43ff:fe8e:ce39 UG 600 1 12 wlp2s0 fe80::/64 :: U 256 0 0 wlp2s0 ::/0 :: !n -1 1 137 lo ::1/128 :: Un 0 3 7 lo fd00::c5bb:40f2:f3d5:94e4/128 :: Un 0 3 19 lo fe80::9051:543a:4c9e:e93e/128 :: Un 0 2 11 lo ff00::/8 :: U 256 2 1763 wlp2s0 ::/0 :: !n -1 1 137 lo The ULA prefix route is correctly marked as Global and points to the router. But there is no default route to the router. (There are two default routes marked as 'reject' on the lo (Ethernet) interface, which is correct since it's not connected. The problem only concerns the wlp2s0 (Wi-Fi) interface.) I can manually add the necessary default route: ip -6 route add ::/0 via fe80::be05:43ff:fe8e:ce39 dev wlp2s0 but I shouldn't have to! Linux should have created it. (Linux version: 4.4.0-38-generic #57-Ubuntu SMP Tue Sep 6 15:42:33 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux) Any insights welcome! Rgds Brian Carpenter
