Tamam, birkaç Xserves, Netgear GSM7224 ve Drobo B800i arasındaki jumbo çerçeve sorununu çözdüm. Xserves (Mac OS X 10.6.8 Server) ve Drobo B800i'nin MTU'yu normalde beklendiği gibi bayt cinsinden kabul ettiği ortaya çıktı (1500-9000), ancak Netgear'ın çeşitli ethernet üstbilgileri / altbilgileri (fragmanları) da dahil ettiği görülüyor. ) ve sonuçta 9000 MTU ile yapılandırılmış Xserves & Drobo ve Netgear portları 9216 MTU olarak ayarlandım.
Netgear üzerinden iki Xserves arasındaki MTU'yu test etmek ve doğrulamak için aşağıdaki komutları kullandım (Not: bunlar Mac OS X komutlarıdır, Windows ve Linux'lar farklıdır):
ping -D -s <mtu> <ip_address>
traceroute -F <ip_address> <mtu>
Eski kullanım belirtilmektedir içinde man
sayfanın "veri sayısı gönderilmek üzere bayt belirtin. Varsayılan ICMP başlık verilerinin 8 byte ile birleştirildiğinde 64 ICMP veri bayt çevirir, hangi 56 olduğunu." Olarak ping -D 1472 <ip_address>
Testte, bunun 8 bayt ICMP başlık verisi artı 20 bayt IP başlığı nedeniyle MTU 1500'e eşdeğer olduğunu buldum ( buna ve buna bakın ). Her şey mantıklı.
Şimdi, neden 9000 MTU için eşdeğer komut ping -D -s 8164 <ip_address>
? Ben "sendto: Mesaj çok uzun" hataları elde yıldız önce bu sınırı olduğunu doğruladım, ama aynı zamanda 9000 MTU düzgün traceroute -F <ip_address> 9000
çalışıyor ve traceroute -F <ip_address> 9001
çalışmıyor olarak çalışıyor . Peki, neden 8164? 8972'yi beklerdim (MTU - 28 bayt, tıpkı 1500 MTU için olduğu gibi).
Ayrıca, Netgear için neden 9216 MTU? MAC ve ethernet üstbilgileri (inc. CRC) için 42 bayt artı IP üstbilgileri için (ki MTU'ya yemek gerekir) 20 bayt saydım.
Bu matematikte gerçekten paslıyım ve bir şeyleri kaçırdığımı biliyorum.