A ordem das rotas de rede é importante no Linux?

4

Em um dos servidores da web, a rota de loopback está na segunda posição e geralmente está na terceira posição em outro servidor ao exibir as rotas:

>ip route show

Resultados sobre o que é exibido em um servidor centos 7:

default via 85.x.x.254 dev enp32s0 
85.x.x.192/26 dev enp32s0  proto kernel  scope link  src 85.x.x.201 
169.254.0.0/16 dev enp32s0  scope link  metric 1002 

Resultado para outro servidor centos 7:

default via 217.x.x.1 dev em1 
169.254.0.0/16 dev em1  scope link  metric 1002 
217.x.x.0/24 dev em1  proto kernel  scope link  src 217.x.x.216 

Faz alguma diferença? Tem alguma consequência? Alguém pode explicar por que isso acontece?

    
por Nicolas Guérinet 24.04.2016 / 12:56

2 respostas

6

A ordem em que as rotas são inseridas é, por definição, sem importância. Isso se deve a como as rotas devem ser aplicadas: as mais específicas têm precedência sobre as mais genéricas.

Suponha que você tenha duas rotas:

  • um primeiro para uma rede 172.16.0.0/16, via gateway 192.168.1.1
  • um segundo para uma rede 172.16.32.0/24, via gateway 192.168.1.2

Ao enviar um pacote para a máquina com, digamos, o endereço IP 172.16.32.1, o gateway selecionado será sempre 192.168.1.2, independentemente de como a ordem das rotas foi inserida no sistema.

Existe uma captura, no entanto: que tal duas rotas para a mesma rede , mas com um gateway diferente? Por exemplo, considere esta configuração:

  • uma primeira rota para uma rede 172.16.32.0/24, via gateway 192.168.1.1
  • uma segunda rota para uma rede 172.16.32.0/24, via gateway 192.168.1.2

Como o sistema funcionaria? Se você quiser que uma rota tenha preferência sobre outra rota idêntica, você deve atribuir a ela um valor de métrica . A métrica é considerada um valor de "custo", com menor métrica preferida. Portanto, se o seu sistema tiver duas rotas idênticas, mas com métrica diferente , ele selecionará a rota com um valor de métrica menor.

Mas o que acontece se as duas rotas forem idênticas, mesmo no valor da métrica? Nesse caso (de canto), o comportamento padrão é indefinido e varia de sistema para sistema. Por exemplo, um sistema pode preferir a primeira rota inserida, enquanto outro sistema pode dar preferência ao último inserido. Outros sistemas podem usar ambas rotas ao mesmo tempo, distribuindo pacotes de maneira quase round-robin chamada ECMP (roteamento multipath de custo igual). Finalmente, outros sistemas podem proibir a presença de duas rotas realmente idênticas, negando a possibilidade de entrar em tais rotas.

    
por 24.04.2016 / 18:01
-3

Sim, a ordenação de rotas de rede é importante independentemente do sistema operacional em geral.

Rotas são programas. Eles dizem que, quando você recebe um pacote endereçado à rede A, use o roteador A para fazê-lo. Quando você obtiver um para B, use o roteador B.

Digamos que A esteja dentro de B, como A = 192.168.1.0/24 e B = 192.168.0.0/22. Então, se invertermos a ordenação das rotas que estão sendo aplicadas, A não teria efeito, porque todos de A estão dentro de B. No outro ahdn, nessa ordem, embora B seja segundo, a rota ainda afeta B porque 75% de suas hosts não estão em A.

A ordenação do aplicativo de rota nesse contexto (rotas estáticas) é feita por meio de métricas estáticas. A menor métrica (rota mais barata) começa antes.

    
por 24.04.2016 / 13:16