Назад | Перейти на главную страницу

Маршрутизация на основе исходной политики до нескольких сидячих туннелей. Работает только первый

На 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.