Data Domain: So stellen Sie sicher, dass die MTU auf dem Pfad konsistent ist
Zusammenfassung: Was MTU ist. Was ist die Pfad-MTU und wie wird sie mit tracepath -n und Ping-Befehlen berechnet?
Symptome
In diesem Dokument werden zwei Mechanismen beschrieben, die verwendet werden können, um sicherzustellen, dass die Maximum Transfer Unit (MTU) entlang des Pfads konsistent ist, und um die Pfad-MTU zu berechnen, d. h. die minimale MTU , die entlang des Pfads zwischen zwei Hosts konsistent ist.
Die MTU ist der größtmögliche Frame im Layer-2-Datennetzwerk eines OSI-Modells.
Die MTU-Größe hängt von den physikalischen Eigenschaften des Kommunikationsmediums ab.
Bei den meisten Ethernet-Netzwerken ist dieser Wert standardmäßig auf 1.500 Byte eingestellt.
Ethernet-Netzwerke der Version 2 haben eine Standard-Frame-Größe von 1518 Byte (einschließlich des 14-Byte-Ethernet-II-Headers und der 4-Byte-FCS-Frame-Check-Sequenz)In
jüngster Zeit werden Ethernet-Frames mit mehr als 1500 Byte Nutzlast immer beliebter (sie werden als Jumbo-Frames bezeichnet) und tragen normalerweise 9000 Byte Nutzlast.
Das Problem bei der Erhöhung der MTU über den Standardwert von 1500 besteht darin, dass alle Netzwerkgeräte entlang des Pfads den erhöhten MTU-Wert unterstützen müssen.
Das ist nicht immer der Fall. Wir müssen sicherstellen, dass die MTU auf dem gesamten Weg konsistent ist, da sonst seltsame Probleme auftreten können.
Einige Probleme, die durch eine inkonsistente MTU auf dem Pfad verursacht werden können:
- DD Boost-Geräte, die sich auf Data Domain befinden, werden in Dell NetWorker gemountet. Wenn das Backup gestartet wird, bleibt es hängen, ohne dass Fortschritt angezeigt wird.
- MTree-Replikation zwischen zwei Geräten wird als verbunden angezeigt, aber die Replikation wird nie gestartet.
- Die Ziel-Data-Domain empfängt nur einen Teil des Datenverkehrs von der Quell-Data-Domain in einem Replikationspaar.
Ursache
Alle Netzwerkgeräte im Pfad zwischen zwei Hosts müssen die MTU unterstützen und für die Verwendung konfiguriert sein.
Lösung
Um Probleme mit inkonsistenter MTU zu vermeiden, müssen wir die Pfad-MTU berechnen, d. h. die minimale MTU auf jedem Netzwerksegment, das sich derzeit im Pfad zwischen zwei Hosts befindet.
Tools zur Berechnung der Pfad-MTU:
-
Tracepath (Ablaufverfolgungspfad)
Tracepath verfolgt den Pfad von der Quelle zum Ziel und zeigt die MTU jedes Hops an.
Es hilft, alle inkonsistenten MTU entlang des Pfads zu erkennen.
Im Folgenden finden Sie ein Beispiel für ein inkonsistentes MTU-Problem:tracepath -n 172.26.33.11 1: 172.26.61.97 (172.26.61.97) 0.126ms pmtu 1500 1: 172.26.61.250 (172.26.61.250) 0.559ms 2: 172.26.61.250 (172.26.61.250) asymm 1 0.459ms pmt u 1476 3: no reply 4: no reply
Der Parameter -n dient dazu, Hostnamen nicht aufzulösen, und funktioniert nur mit IP-Adressen.
Hinweis: In diesem Beispiel die Änderung des MTU-Werts von 1500 auf 1476 (Hop 2) und die Unfähigkeit, den neueren MTU-Wert nach diesem Hop zu erkennen.Beispiel für eine MTU, die entlang des Pfads konsistent ist:
tracepath -n 146.176.1.130 1: 146.176.3.6 0.070ms pmtu 1500 1: 146.176.3.254 (146.176.3.254) 0.235ms 2: 146.176.209.2 (146.176.209.2) 0.325ms 3: crl-nbmed-1.napier.ac.uk (146.176.1.130) 0.213ms reached Resume: pmtu 1500 hops 3 back 3
Hinweis: Die konsistente MTU von 1500 in allen Pfaden im obigen Beispiel -
Verwenden von Ping zum Berechnen der Pfad-MTU.
Ping kann verwendet werden, um die Pfad-MTU zu berechnen.
Der Schlüssel ist, es nicht in der Standardform zu verwenden, sondern mit zwei Modifikatoren.
Ein Modifikator wird verwendet, um die Paketgröße anzugeben, und der andere, um eine Fragmentierung zu verhindern.Die Paketgröße muss der tatsächlichen Paketgröße entsprechen, die wir testen wollen, minus achtundzwanzig.
Dies liegt daran, dass der Header von ICMP acht Byte und der IP-Header zwanzig Byte beträgt.Verwendung des Befehls ping in LINUX zur Erkennung von MTU-Problemen
In Linux lautet der Befehlping -M do -s <size_of_the_package>-28 <IP address> -c 4
Nehmen wir an, wir wollen testen, ob eine MTU von 1500 auf dem Weg zwischen einer Maschine und einer anderen möglich ist. Im Quellcode geben wir einen Befehl wie den folgenden aus.# ping -M do -s 1472 10.64.102.30 -c 4 PING 10.64.102.30 (10.64.102.30) 1472(1500) bytes of data. 1480 bytes from 10.64.102.30: icmp_seq=0 ttl=64 time=0.279 ms 1480 bytes from 10.64.102.30: icmp_seq=1 ttl=64 time=0.152 ms 1480 bytes from 10.64.102.30: icmp_seq=2 ttl=64 time=0.181 ms 1480 bytes from 10.64.102.30: icmp_seq=3 ttl=64 time=0.205 ms
Wir bestätigen oben, dass es möglich ist 10.64.102.30 mit einer MTU von 1500 zu erreichen.
Sehen wir uns an, ob wir die MTU-Größe auf 1518 erhöhen können. Die Paketgröße, die in diesem Fall mit dem Ping-Befehl verwendet werden soll, wäre c1518-28=1490
ping -M do -s 1490 10.64.102.30 -c 4 PING 10.64.102.30 (10.64.102.30) 1490(1518) bytes of data. From 10.64.102.25 icmp_seq=0 Frag needed and DF set (mtu = 1500) From 10.64.102.25 icmp_seq=0 Frag needed and DF set (mtu = 1500) From 10.64.102.25 icmp_seq=0 Frag needed and DF set (mtu = 1500) From 10.64.102.25 icmp_seq=0 Frag needed and DF set (mtu = 1500)
Wir sehen, dass das Ziel nicht erreichbar ist, da eine Fragmentierung erforderlich wäre.
Dann können wir sagen, dass diese MTU von 1518 Byte in dieser Umgebung nicht verwendet werden kann.
So verwenden Sie den Ping-Befehl von DDSH (Befehlszeilenschnittstelle) (ab DD OS 5.4) zur Erkennung von MTU-Problemen
Über die DDSH-Eingabeaufforderung:net ping [destinationIP] path-mtu do packet-size [packet size -28] count 3 EXAMPLE: sysadmin@dd2500# net ping 1.2.3.4 path-mtu do packet-size 1472 count 3
So verwenden Sie den Befehl ping in WINDOWS, um MTU-Probleme
zu erkennen In Windows ist der Befehl ähnlich, aber die Modifikatoren sind unterschiedlich.ping -f -l <size_of_the_package>-28 [destinationIP]
Hinweis: -f ist der Modifikator für das Setzen des 'nicht fragmentieren'-BitsUm also zu testen, ob eine MTU von 1500 zwischen einem Quellrechner und einem Zielrechner in Windows möglich ist, lautet der auszugebende Befehl:
ping -f -l 1472 [destinationIP]
Wenn die berechnete MTU zwischen zwei Punkten kleiner als die konfigurierte MTU der Quelle ist, muss diese Inkonsistenz von Ihrem Netzwerkteam untersucht werden. Die MTU sollte entlang der gesamten Verbindung von der Quelle des Datenstroms groß genug sein, um erneute Übertragungen oder Kommunikationsverluste zu minimieren.
Weitere Informationen
Wenn die MTU in DD unterschiedlich ist, können Sie die MTU-Einstellungen mit dem folgenden Befehl ändern, um die MTU-Einstellungen in DD zu ändern.
net config ifname {[ipaddr [netmask mask]] | [ipv6addr/prefix] | [type {fixed | floating}] | [dhcp {yes [ipversion {ipv4 | ipv6}] | no}]} {[autoneg] | [duplex {full | half} speed {10| 100|1000|10000}] [up | down] [mtu {size | default}] [txqueuelen size]