Data Domain: MTU'nun yol boyunca tutarlı olduğundan nasıl emin olunur?
Summary: MTU nedir. Yol MTU nedir ve tracepath -n ve ping komutlarıyla nasıl hesaplanır.
Symptoms
Bu belgede, Maksimum Aktarım Birimi'nin (MTU) yol boyunca tutarlı olmasını sağlamak ve iki ana bilgisayar arasındaki yol boyunca tutarlı olan minimum MTU olan yol MTU'sunu hesaplamak için kullanılabilecek iki mekanizma açıklanmaktadır.
MTU, bir OSI Model Katman 2 veri ağındaki mümkün olan en büyük çerçevedir.
MTU boyutu, iletişim ortamının fiziksel özelliklerine bağlıdır.
Çoğu Ethernet ağı için bu, varsayılan olarak 1500 bayt a ayarlanmıştır.
Ethernet Sürüm 2 ağlarının standart çerçeve boyutu 1518 bayttır (14 bayt Ethernet II başlığı ve 4 baytlık Çerçeve Kontrol Dizisi (FCS) dahilDaha
yakın zamanlarda, 1500 bayttan fazla yüke sahip Ethernet çerçeveleri popüler hale geliyor (bunlara Jumbo Çerçeveler denir) ve normalde 9000 bayt yük taşırlar.
MTU'yu varsayılan değer olan 1500'ün üzerine çıkarmayla ilgili sorun, yol üzerindeki tüm ağ aygıtlarının artan MTU değerini desteklemesi gerektiğidir.
Bu her zaman böyle değildir. MTU'nun yolun her yerinde tutarlı olduğundan emin olmalıyız, aksi takdirde garip sorunlar ortaya çıkabilir.
Yol boyunca tutarsız bir MTU olmasının neden olabileceği bazı sorunlar:
- Data Domain de bulunan DD Boost aygıtları Dell NetWorker'a bağlanır, yedekleme başladığında herhangi bir ilerleme göstermeden takılı kalır.
- İki aygıt arasında Mtree çoğaltması bağlı olarak gösterilir ancak çoğaltma hiçbir zaman başlatılmaz.
- Hedef Data Domain, bir çoğaltma çiftindeki kaynak Data Domain'den yalnızca bir miktar trafik alır.
Cause
İki ana bilgisayar arasındaki yolda bulunan tüm ağ aygıtları aynı MTU'yu desteklemeli ve bu MTU'yu kullanacak şekilde yapılandırılmalıdır.
Resolution
Tutarsız MTU ile ilgili sorunları önlemek için, şu anda iki ana bilgisayar arasındaki yolda olan herhangi bir ağ segmentindeki minimum MTU olan yol MTU'sunu hesaplamamız gerekir.
Yol MTU'sunu hesaplamak için araçlar:
-
İzleme yolu
Tracepath, kaynaktan hedefe giden yolu izler ve her atlamanın MTU'sunu gösterir.
Yol boyunca tutarsız MTU'ları algılamaya yardımcı olur.
Aşağıda tutarsız bir MTU sorunu örneği verilmiştir: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
-n parametresi ana bilgisayar adlarını çözümlememek içindir ve yalnızca IP adresleriyle çalışır.
Not: Örnekte, MTU değerinin 1500'den 1476'ya (atlama 2) değiştirilmesi ve bu atlamadan sonra daha yeni MTU değerinin algılanamaması.Yol boyunca tutarlı bir MTU örneği:
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
Not: Yukarıdaki örnekteki tüm yollarda tutarlı MTU değeri 1500 -
MTU yolunu hesaplamak için ping i kullanma.
Ping, MTU yolunu hesaplamak için kullanılabilir.
Anahtar, standart formda değil, iki değiştirici ile kullanmaktır.
Değiştiricilerden biri paket boyutunu belirtmek için, diğeri ise parçalanmayı engellemek için kullanılır.Paket boyutu, test etmek istediğimiz gerçek paket boyutu eksi yirmi sekiz olmalıdır.
Bunun nedeni, ICMP başlığının sekiz bayt ve IP başlığının yirmi bayt olmasıdır.MTU sorunlarını tespit etmek için LINUX'ta ping komutu nasıl kullanılır?
Linux'ta komut şöyledir:ping -M do -s <size_of_the_package>-28 <IP address> -c 4
Diyelim ki bir makine ile diğeri arasındaki yol boyunca 1500'lük bir MTU'nun mümkün olup olmadığını test etmek istiyoruz. Kaynakta aşağıdaki gibi bir komut veriyoruz.# 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
1500 MTU ile 10.64.102.30'a ulaşmanın mümkün olduğunu yukarıda teyit ediyoruz.
Bakalım MTU boyutunu 1518'e çıkarabilecek miyiz? Bu durumda ping komutuyla kullanılacak paket boyutu c1518-28=1490 olacaktır
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)
Parçalanmaya ihtiyaç duyulacağı için hedefe ulaşılamadığını görebiliriz.
O zaman 1518 byte'lık bu MTU'nun bu ortamda kullanılamayacağını söyleyebiliriz.
MTU sorunlarını algılamak için DDSH'den (komut satırı arayüzü) (DD OS 5.4'ten başlayarak) ping komutunu kullanma
DDSH isteminden: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
MTU sorunlarını tespit etmek için WINDOWS da ping komutu nasıl kullanılır?
Windows'ta komut benzerdir ancak değiştiriciler farklıdır.ping -f -l <size_of_the_package>-28 [destinationIP]
Not: -f, 'biti parçalama' ayarını yapmak için kullanılan değiştiricidirBu nedenle, Windows'ta bir kaynak makine ile hedef makine arasında 1500'lük bir MTU'nun mümkün olup olmadığını test etmek için verilecek komut şöyle olacaktır:
ping -f -l 1472 [destinationIP]
İki nokta arasında hesaplanan MTU, kaynağın yapılandırılmış MTU'sundan küçükse, bu tutarsızlık ağ ekibiniz tarafından araştırılmalıdır. MTU, yeniden iletimi veya iletişim kaybını en aza indirmek için veri akışı kaynağından gelen tüm bağlantı boyunca yeterince büyük olmalıdır.
Additional Information
DD'deki MTU farklıysa DD'deki MTU ayarlarını değiştirmek için MTU ayarlarını değiştirmek üzere aşağıdaki komut kullanılabilir.
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]