IPV4-Routencache aus Linux-Kernel >= 3.6 entfernt

IPV4-Routencache aus Linux-Kernel >= 3.6 entfernt

Beim Durchsehen des Änderungsprotokolls des Linux-Kernels 3.6 stieß ich auf eine E-Mail (http://article.gmane.org/gmane.linux.network/238256) von David S. Miller bezüglich der Entfernung des Routing-Cache für IPV4 im Kernel. Ich frage mich, wie die ICMP-Umleitung und die PMTU-Funktionen jetzt funktionieren würden. In Mail wird auch erwähnt, dass Routen vorab zwischengespeichert würden, aber mehrere Routen können je nach Subnetzmaske mehrere mögliche Einträge haben. Wie würde das funktionieren? Hat jemand eine Idee dazu?

Danke.

Antwort1

Lesen Sie einfach die aktuellen Patches.

Anstatt PMTU- und ICMP-Umleitungen im Routing-Cache zu speichern, werden sie in einer „Routing-Ausnahme“-Struktur gespeichert, die Teil des Routing-Eintrags ist. Und für jede (Quelle, Eingabeschnittstelle, Tos, Ziel, Markierung) wird nur ein Routen-Eintrag ausgewählt. Daher werden die Routing-Ausnahmen immer verwendet, solange der Routen-Eintrag nicht geändert wird.

Antwort2

Detaillierte Informationen zur Pfad-MTU für einen Host erhalten Sie wie folgt. Beachten Sie, dass zuerst die Cache-Informationen ausgefüllt werden müssen. Dieser Test wurde mit einem 3.13 Ubuntu-Kernel durchgeführt. Ich validiere zuerst den aktuellen Cache für einen Host, ich habe nicht mit ihm kommuniziert und habe keine Informationen:

johnf@mtutest:~$ ip ro get 192.168.3.48
192.168.3.48 dev eth0  src 192.168.1.22
    cache

Ich versuche dann, es mit einem Paket anzupingen, das größer als die MTU ist (aber nicht so groß, dass das Paket vom Betriebssystem fragmentiert werden muss). Möglicherweise verpassen Sie beim Testen die ersten paar Pings, Sie sollten dann die Meldung „Frag benötigt“ sehen.

johnf@mtutest:~$ ping -s 1460 192.168.3.48 -c 10
PING 192.168.3.48 (192.168.3.48) 1460(1488) bytes of data.
From 192.168.2.0 icmp_seq=1 Frag needed and DF set (mtu = 1220)
1468 bytes from 192.168.2.0: icmp_seq=2 ttl=252 time=1973 ms
[...]
--- 192.168.3.48 ping statistics ---
10 packets transmitted, 9 received, +1 errors, 10% packet loss, time 9016ms
rtt min/avg/max/mdev = 95.681/516.815/1973.697/568.969 ms, pipe 2

Nachdem Sie die ICMP-Meldung „MTU überschritten“ erhalten haben, sollte der Kernel Ihren Routen-Cache anpassen, um die Pfadbeschränkungen widerzuspiegeln:

johnf@mtutest:~$ ip ro get 192.168.3.48
192.168.3.48 dev eth0  src 192.168.1.22
    cache  expires 588sec mtu 1220

verwandte Informationen