Я пытаюсь решить странную проблему в маршрутизации. У меня настроен роутер (Turris, работает под заказ OpenWRT) с туннельным соединением Strongswan ipv6. Это прекрасно работает для самого маршрутизатора, так как его подключение к ipv6 работает нормально (через туннель мой провайдер не предлагает собственный ipv6).
TL; DR: маршруты выбраны не так, как я ожидал, так как наиболее общий, ::/0, кажется, всегда предпочтительнее, хотя доступно соответствие /64.
Но когда я попытался распространить это на мою домашнюю сеть, я наткнулся на проблему, и я не могу найти причину.
Хотя ipsec работает, я получаю интерфейс ipsec0 и эти маршруты:
Kernel IPv6 routing table
Destination Next Hop Flags Metric Ref Use Iface
::/0 :: U 1024 0 2 ipsec0
2a01:490:19:42::/64 :: U 1024 0 0 br-lan
Здесь 2a01:490:19:42::/64 - это рейтинг, который я выделил для своей локальной сети, 2a01:490:19:42::1 - это IP-адрес маршрутизатора в этой сети.
Вот некоторые наблюдения:
1) Когда я пингую 2a01:490:19:42::1 с компьютера в моей локальной сети, маршрутизатор отвечает, но отправляет ответ в интерфейс ipsec0. Понятия не имею почему. Не следует ли отдать предпочтение более конкретному префиксу 2a01:490:19:42::/64 на br-lan? Кажется, правильно выбрать исходный IP-адрес 2a01:490:19:42::1.
2) То же самое происходит, когда я пытаюсь отправить пакет из моей локальной сети на другой сайт, например ping6 stackexchange.com. Пакеты попадают на маршрутизатор, пересылаются, сервер отправляет ответ, маршрутизатор получает его ... и отправляет обратно в интерфейс ipsec0.
3) Нет политики xfrm. ip xfrm pol
ничего не возвращает. Но Strongswan работает, и у меня сложилось впечатление, что Strongswan всегда создает определенные политики. В моей предыдущей настройке мне пришлось добавить некоторые из них, чтобы разрешить передачу пакетов в туннель, но я немного озадачен тем, что список политик пуст.
Хорошо, так что не так? Почему наиболее общий маршрут ::/0 предпочтителен для моих пакетов ipv6?
Спасибо!