Starting point:
pppoe-wan and lte-wan (usb in hilink mode appearing as eth1) as well as 6in4-henet tunnel interface
mwan failover rule based on source 0.0.0.0/0 dest 0.0.0.0/0
first problem Mwan3 config not working at all this way, you have to set source or dest to something else than 0.0.0.0 or otherwise you automatically get Active ipv6 user rules although never defined.
second problem
6in4-henet always gets its local address set to the eth1 address, disobeys current mwan routing which is normally pppoe-wan (as long as there is no failover). Only (known to me) way to change that is to enter the current pppoe-wan address in the 6in4-henet network config, but that's not sustainable as it is dynamic
third problem
6in4-henet also adds a default route to the tunnel endpoint via the (wrongly) selected interface
So in order to make mwan3 AND 6in4 work you have to:
- set mwan3 failover rules source to 192.168.0.0/16 or something that still suites you
- manually enter current (main) ip address to 6in4-henet device config and restart device
- manually delete wrong route via wrong wan device AND add a correct one
Point 1 is not that bad, but 2 and 3 are really a blocker.
Any idea how to script points 2 and 3 until there is a proper fix for mwan+6in4?
Even a solution that always select pppoe-wans address would be ok for the moment
for now I added the following quick fix to /etc/mwan3.user
X.X.X.X is tunnel endpoint.
of course this is only working as long as lte failover is inactive (pppoe-wan) healty
ip link set 6in4-henet type sit local $(ip -o address show dev pppoe-wan|cut -f7 -d" ")
ip route del X.X.X.X
ip route add X.X.X.X dev pppoe-wan
Old post, obsolete
My configuration is pretty standard, pppoe-wan xDSL has only IPv4 connectivity, so I added 6in4-henet tunnel as described in the wiki. Everything worked fine for months now. No special firewall rules had to be added.
Now suddenly IPv6 is not routable any more.
my routing table looks like this:
default from 2001:470:1f0a:af::/64 dev 6in4-henet proto static metric 1024 pref medium
default from 2001:470:7059::/48 dev 6in4-henet proto static metric 1024 pref medium
2001:470:1f0a:af::/64 dev 6in4-henet proto kernel metric 256 pref medium
2001:470:7059::/64 dev br-lan proto static metric 1024 pref medium
unreachable 2001:470:7059::/48 dev lo proto static metric 2147483647 error -148 pref medium
fd00:0:0:64::/64 dev br-lan proto static metric 1024 pref medium
unreachable fd00::/48 dev lo proto static metric 2147483647 error -148 pref medium
fd00:192:168:32::/64 via fd00:0:0:64::24 dev br-lan proto static metric 1024 pref medium
fe80::/64 dev ifb4wlan0 proto kernel metric 256 pref medium
fe80::/64 dev eth1 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev br-lan proto kernel metric 256 pref medium
fe80::/64 dev wlan0 proto kernel metric 256 pref medium
fe80::/64 dev dsl0 proto kernel metric 256 pref medium
fe80::/64 dev dsl0.7 proto kernel metric 256 pref medium
fe80::/64 dev 6in4-henet proto kernel metric 256 pref medium
If i try to ping an IPv6 host, I get:
traceroute to www.google.com (2a00:1450:4001:821::2004), 30 hops max, 64 byte packets
1traceroute6: sendto: Network unreachable
I tried to tcpdump all interfaces for Proto 41 packets, nothing shows up as if no packets are being sent at all.
The only pingable IPv6 address outside of fd00 and fe80 range is 2001:470:1f0a:af::2 which is my local tunnel endpoint.
My question is: How can I further debug why the kernel thinks the network is unreachable?