Se eu tiver duas rotas com o mesmo destino, o sistema não deve escolher a rota que corresponde ao seu endereço de origem? Estou tentando usar a palavra-chave from
para adicionar rotas restritas de endereço de origem à tabela de roteamento.
Por exemplo, tenho um host com um endereço de 2001:db9:1::2
na interface e1
. Se eu adicionar uma rota normal a 2001:db9:1::3
como abaixo, ping6
funciona bem:
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
Em seguida, adiciono uma rota restrita de origem com a palavra-chave from
, usando algum endereço de origem não atribuído a nenhuma das minhas interfaces:
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
Se eu tentar fazer ping agora, recebo uma mensagem de rede inacessível. Quando o sistema vê que a primeira entrada restrita de origem não funciona, não deve tentar a segunda entrada e ter sucesso?
Curiosamente, se eu adicionar uma rota com um especificador from
, mas com o endereço de origem correto, a rota correta será selecionada e o ping será bem-sucedido.
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
(Eu também tentei usar 2001:db9:1::1
como fonte, e o resultado ainda é bem sucedido, então a ordem lexicográfica não importa). Portanto, parece que as rotas restritas que não são de origem são ignoradas se existir uma rota restrita de origem para um destino.
Já verifiquei a configuração do kernel (versão 4.9.13) e IPV6_SUBTREES
estão ativados. Alguma idéia?