A ordem das entradas na tabela de roteamento é importante?

22

A ordem de roteamento é importante:

> route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
123.x.x.151     0.0.0.0         255.255.255.255 UH    0      0        0 vmbr0
123.x.x.154     0.0.0.0         255.255.255.255 UH    0      0        0 vmbr0
123.x.x.128     0.0.0.0         255.255.255.224 U     0      0        0 vmbr0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 vmbr1
0.0.0.0         123.x.x.129     0.0.0.0         UG    0      0        0 vmbr0

é o mesmo que:

> route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
123.x.x.128     0.0.0.0         255.255.255.224 U     0      0        0 vmbr0
123.x.x.151     0.0.0.0         255.255.255.255 UH    0      0        0 vmbr0
123.x.x.154     0.0.0.0         255.255.255.255 UH    0      0        0 vmbr0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 vmbr1
0.0.0.0         123.x.x.129     0.0.0.0         UG    0      0        0 vmbr0

?

onde a diferença é que

123.x.x.128     123.x.x.129         255.255.255.224 U     0      0        0 vmbr0

é de ordem superior a

123.x.x.151     0.0.0.0         255.255.255.255 UH    0      0        0 vmbr0

então se eu enviar para 123.x.x.151onde ele vai:

- the routed way over `123.x.x.129`, because it matches the `123.x.x.128` rule, or
- the direct way using the arp table, because it matches the `123.x.x.151` rule

?

estático
fonte

Respostas:

27

A ordem na tabela não importa; rotas com um prefixo mais longo sempre têm prioridade. Se você parar de se apegar às máscaras de rede e considerar os comprimentos do prefixo (o que ip routemostra), você tem 123.x.x.128/27e 123.x.x.151/32, e a última rota - mais específica - terá prioridade sobre a anterior (mais genérica).

gravidade
fonte
2
O que acontece se houver máscaras de tamanho eqal? Por exemplo, 10.0.0.0/24 e 192.168.0.0/24.
ManuelSchneid3r 04/02
3
@ ManuelSchneid3r: Nada acontece. As rotas são consideradas apenas se elas realmente corresponderem ao destino, e um endereço IP obviamente não puder ser iniciado 10.e 192.ao mesmo tempo, portanto, somente corresponderá a uma dessas máscaras em primeiro lugar.
grawity
11
e se você tiver duas interfaces no mesmo espaço IP?
26618 MikeSchem
@ MikeSchem: Em seguida, o parâmetro 'métrico' de ambas as rotas é usado. (O sistema operacional geralmente se recusam a adicionar duas rotas com prefixo idêntico, prefixlen idênticos, e métrica idênticos, ou, eventualmente, fundi-los em uma rota com balanceamento de carga ECMP.)
grawity
5

O pedido é importante apenas se você tiver rotas duplicadas. Não faça isso.

Por exemplo, se duas interfaces tiverem o mesmo destino, máscara de rede e gateway de 0.0.0.0, a primeira capturará todo o tráfego dessa rede.

Além do mais, descobri que alguns sistemas reordenam aleatoriamente na inicialização, o que ocorrer primeiro. Se apenas um funcionar, ou apenas um tiver um gateway de roteador definido, isso poderá resultar na perda de acesso a essa rede na reinicialização.

kmarsh
fonte
Se você tiver rotas duplicadas, adicione uma Distância administrativa (AD) mais alta para a rota menos preferida. A rota usada será sempre aquela com o AD mais baixo. Se esse caminho for interrompido, aquele com o AD mais alto o substituirá automaticamente na tabela de roteamento.
kojow7 11/01