Czy kolejność wpisów w tabeli routingu ma znaczenie?

22

Czy kolejność routingu ma znaczenie:

> 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

czy to to samo co:

> 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

?

gdzie różnica jest taka

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

jest wyższego rzędu niż

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

więc jeśli wyślę 123.x.x.151dokąd to pójdzie:

- 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

?

statyczny
źródło

Odpowiedzi:

27

Kolejność w tabeli nie ma znaczenia; trasy z dłuższym prefiksem zawsze mają pierwszeństwo. Przerwanie przywiązanie do masek sieciowych i rozważyć długości prefiksu zamiast (co ip routeprzedstawia), masz 123.x.x.128/27i 123.x.x.151/32, a drugi - bardziej szczegółowe - trasa będzie mieć pierwszeństwo nad dawnym (jeden bardziej ogólne).

grawitacja
źródło
2
Co się stanie, jeśli istnieją maski o rozmiarach eqal? Np. 10.0.0.0/24 i 192.168.0.0/24.
ManuelSchneid3r
3
@ ManuelSchneid3r: Nic się nie dzieje. Trasy są brane pod uwagę tylko wtedy, gdy faktycznie pasują do miejsca docelowego, a adres IP oczywiście nie może zaczynać się od 10.i 192.jednocześnie, więc w pierwszej kolejności będzie pasował tylko do jednej z tych masek.
grawitacja
1
co jeśli masz dwa interfejsy na tej samej przestrzeni IP?
MikeSchem
@MikeSchem: Następnie używany jest parametr „metryczny” dla obu tras. (OS zazwyczaj odmawiają dodać dwie trasy z identycznym prefiksu, identycznych prefixlen, a identyczny metryczny lub ewentualnie połączyć je w trasie z równoważeniem obciążenia ECMP.)
grawity
5

Kolejność ma znaczenie tylko wtedy, gdy masz zduplikowane trasy. Nie rób tego

Na przykład, jeśli dwa interfejsy mają to samo miejsce docelowe, maskę sieci i bramę 0.0.0.0, pierwszy przejmie cały ruch dla tej sieci.

Co więcej, zauważyłem, że niektóre systemy losowo zmieniają kolejność przy uruchamianiu, co jest pierwsze. Jeśli tylko jedna działa lub tylko jedna ma skonfigurowaną bramę routera, może to spowodować utratę dostępu do tej sieci podczas ponownego uruchamiania.

kmarsh
źródło
Jeśli masz zduplikowane trasy, powinieneś dodać wyższą odległość administracyjną (AD) dla mniej preferowanej trasy. Wybrana trasa będzie zawsze tą o niższym AD. Jeśli ta ścieżka zejdzie w dół, to ta z wyższym AD automatycznie zastąpi ją w tabeli routingu.
kojow7