На Ubuntu Server 18.04 я хочу иметь такое поведение:
curl -6 --interface 2001:470:e09f::3 ifconfig.co/ip
2001:470:e09f::3
curl -6 --interface 2001:470:c160::4 ifconfig.co/ip
2001:470:c160::4
Но, к сожалению, работает только первая префикс.
Мой сценарий запуска:
#!/bin/sh
sysctl -w net.ipv6.conf.default.forwarding=1
sysctl -w net.ipv6.conf.all.forwarding=1
sysctl -w net.ipv6.ip_nonlocal_bind=1
modprobe ipv6
## tunnel_0
ip tunnel add he-ipv6-0 mode sit remote 216.66.22.2 local 154.16.126.60 ttl 255
ip link set he-ipv6-0 up
ip -6 route add local 2001:470:e09f::/48 dev lo
ip -6 route add table 100 default dev he-ipv6-0
ip -6 rule add from 2001:470:e09f::/48 table 100
## tunnel_1
ip tunnel add he-ipv6-1 mode sit remote 184.105.253.14 local 64.137.65.17 ttl 255
ip link set he-ipv6-1 up
ip -6 route add local 2001:470:c160::/48 dev lo
ip -6 route add table 101 default dev he-ipv6-1
ip -6 rule add from 2001:470:c160::/48 table 101
exit 0
Где моя ошибка?
UPD1: он начинает работать должным образом сразу после пинга извне.
UPD2: Он продолжает работать должным образом даже после перезагрузки моего компьютера. Но снова останавливается через ~ 15 минут в случае отсутствия движения.
В чем дело? Проблема с ICMP / NDP? Проблема со шлюзом по умолчанию?
UPD3:
traceroute6 -s 2001:470:c160::4 ipv6.google.com
не может добраться до шлюза туннеля.
Но после того, как я пингую шлюз (я знаю, что это IP) из коробки, вышеупомянутый traceroute начинает работать нормально!
UPD4: Не удается обнаружить маршрутизатор из коробки на туннельном интерфейсе:
#rdisc6 he-ipv6-1
Soliciting ff02::2 (ff02::2) on he-ipv6-1...
Timed out.