Если у меня есть два маршрута с одним и тем же пунктом назначения, разве система не должна выбирать маршрут, который соответствует ее исходному адресу? Я пытаюсь использовать ключевое слово from для добавления маршрутов с ограничением адреса источника в таблицу маршрутизации.
Например, у меня есть хост с адресом 2001:db9:1::2 в интерфейсе e1 . Если я добавлю нормальный маршрут к 2001:db9:1::3 как показано ниже, ping6 работает нормально:
root@pc:/# ip -6 route add 2001:db9:1::3 dev e1
root@pc:/# ip -6 route
2001:db9:1::3 dev e1  metric 1024
Затем я добавляю исходный маршрут с ключевым словом from , используя некоторый исходный адрес, не назначенный ни одному из моих интерфейсов:
root@pc:/# ip -6 route add 2001:db9:1::3 from 2001:db9:a::2 dev e1
root@pc:/# ip -6 route
2001:db9:1::3 from 2001:db9:a::2 dev e1  metric 1024
2001:db9:1::3 dev e1  metric 1024
Если я пытаюсь пинговать сейчас, я получаю сообщение о недоступности сети. Когда система видит, что первая ограниченная исходная запись не работает, не должна ли она попробовать вторую запись и успешно?
Интересно, что если я добавлю маршрут с указателем from но с правильным адресом источника, будет выбран правильный маршрут и проверка связи будет успешной.
root@pc:/# ip -6 route add 2001:db9:1::3 from 2001:db9:1::2 dev e1
root@pc:/# ip -6 route
2001:db9:1::3 from 2001:db9:1::2 dev e1  metric 1024
2001:db9:1::3 from 2001:db9:a::2 dev e1  metric 1024
2001:db9:1::3 dev e1  metric 1024
(Я также попытался использовать 2001:db9:1::1 качестве источника, и результат все еще успешен, поэтому лексикографический порядок не имеет значения). Таким образом, кажется, что маршруты без ограничений источника игнорируются, если для пункта назначения существует маршрут с ограничением источника.
Я уже проверил конфигурацию ядра (версия 4.9.13) и IPV6_SUBTREES включены. Есть идеи?
