Path MTU Discovery (PMTUD), bir ağ yolundaki en küçük MTU değerini dinamik olarak keşfeder; ana bilgisayarlar paket boyutlarını buna göre ayarlayarak IP parçalanmasını önler ve paket kaybını azaltır.
Avantajlar
PMTUD paket boyutlarını PMTU ile sınırlayarak parçalanmayı önler; böylece ağ verimliliğini ve güvenilirliğini artırır.
IP parçalanmasının önlenmesi: PMTUD her paketi yol üzerindeki her atlamanın MTU değeri içinde tutar; gecikme süresini ve paket kaybını artıran parçalanmayı engeller. Bkz. TCP bağlantılarında IP parçalanmasından kaçının.
Geliştirilmiş ağ verimliliği: PMTUD optimum paket boyutunu belirler; herhangi bir cihazın MTU değerini aşmadan başlık ek yükünü azaltır ve aktarım hızını artırır.
Azaltılmış paket kaybı ve gecikme süresi: Parçalanma durumunda tek bir parça kaybolduğunda tüm parçaların yeniden iletilmesi gerekir. PMTUD bu ek yükü ortadan kaldırır.
Otomatik paket boyutlandırma: PMTUD gönderen ana bilgisayarın keşfedilen PMTU'ya göre paketleri dinamik olarak yeniden boyutlandırmasına olanak tanır; önceden ağ yapılandırması bilgisi gerektirmez.
Geliştirilmiş ağ dayanıklılığı: PMTUD çeşitli bağlantı türlerine ve yapılandırmalara uyum sağlayarak ağ esnekliğini artırır.
Desteklenen bileşenler ve sistemler
-
İşletim sistemleri: Linux ve Windows dahil olmak üzere çoğu modern işletim sistemi PMTUD'yi destekler.
ÖnemliJumbo Frames özelliğini desteklemeyen 6. nesil veya önceki nesil Alibaba Cloud Elastic Compute Service (ECS) örnekleri PMTUD'yi desteklemez. ECS örneklerinden geçen paketlerin boyutunun 1.500 baytı aşmadığından emin olun.
Ağ cihazları: Bazı yönlendiriciler ve anahtarlar yerleşik PMTUD desteğine sahiptir. PMTUD'yi desteklemeyen bir cihaz, Don't Fragment (DF) bayrağı 1 olarak ayarlanmış aşırı büyük bir paket aldığında MTU bilgisi içermeyen bir ICMP mesajı döndürebilir.
Ara katman veya kitaplıklar: Bazı programlama ortamları PMTUD için özel kitaplıklar veya ara katmanlar sağlar.
Uygulamalar: Bazı ağ uygulamaları giden paketleri dinamik olarak yeniden boyutlandırmak için kendi PMTUD mantığını uygular.
Ağ protokolleri: PMTUD TCP, UDP ve ICMP dahil olmak üzere IPv4 ve IPv6 taşıma katmanı protokolleriyle çalışır.
Bulut hizmet sağlayıcıları: Alibaba Cloud yönlendirme bileşenleri RFC standartlarına uygun olarak PMTUD gerçekleştirir. Bkz. PMTUD nasıl çalışır.
PMTUD nasıl çalışır
IP paketlerindeki DF bayrağı PMTUD'de kilit bir rol oynar. DF bayrağının 1 olarak ayarlanması parçalanmayı önler. PMTUD iki ana bilgisayar arasındaki PMTU'yu keşfetmek için ICMP mesajlarını kullanır ve paketleri PMTU ile sınırlayarak iletim sırasında parçalanmayı önler.
Gönderen ana bilgisayarda DF bayrağını ayarlayın. Gönderen ana bilgisayar ağ yolunda parçalanmayı önlemek için IP başlığındaki DF bayrağını 1 olarak ayarlar.
-
MTU sınırına ulaşılır. DF=1 olan paket MTU'su paketten daha küçük olan bir ağ cihazına ulaştığında cihaz paketi bırakır.
-
IPv4'te ağ cihazları DF bayrağını kontrol eder. DF=0 ise ve cihaz parçalamayı destekliyorsa aşırı büyük paketleri bırakmak yerine parçalayabilir.
NotÇapraz etki alanı veya çapraz bölge senaryolarındaki edge gateway'ler gibi bazı Alibaba Cloud yönlendirme bileşenleri parçalamayı desteklemez. DF=0 olsa bile aşırı büyük paketleri bırakır ve ICMP hata mesajları gönderir.
IPv6'da PMTUD zorunludur. Tüm ana bilgisayarlar ve yönlendiriciler bunu desteklemelidir. Tüm IPv6 paketleri için DF bayrağı örtük olarak 1'e ayarlanır.
-
-
Bir ICMP hata mesajı gönderilir. Cihaz PMTUD'yi destekliyorsa MTU'sunu içeren bir ICMP hata mesajını gönderen ana bilgisayara gönderir.
IPv4'te cihaz şunu gönderir: Destination Unreachable: Fragmentation Needed and Don't Fragment was Set (Type 3, Code 4).
IPv6'da cihaz şunu gönderir: ICMPv6 Packet Too Big (PTB) (Type 2, Code 0).
-
ICMP hata mesajını işleyin. Gönderen ana bilgisayar mesajdan PMTU'yu ayrıştırır ve önbelleğe alır; ardından paketleri aşağıdaki gibi işler:
Varsayılan olarak işletim sistemi çekirdeği paketi PMTU'ya göre parçalar ve parçaları yeniden gönderir.
-
Uygulama düzeyinde yeniden boyutlandırma. PMTUD farkındalığına sahip bir uygulama ICMP hata mesajındaki MTU'ya göre paketleri yeniden boyutlandırır ve yeniden gönderir. Bu parçalanmayı önler ancak genellikle uygulama değişiklikleri gerektirir.
NotTCP bağlantıları için TCP katmanı segment parçalanmasını önlemek amacıyla keşfedilen PMTU'ya göre MSS'yi ayarlar. Bkz. Veri iletimi sırasında MSS'yi PMTU'ya dinamik olarak uyarlayın.
PMTU'yu önbelleğe alın. Gönderen ana bilgisayar hedef IP adresi için PMTU'yu rota tablosunda önbelleğe alır ve sonraki paketleri bu boyutla sınırlar.
PMTU'yu düzenli olarak güncelleyin. Ağ yolları değiştiğinde veya rota önbelleklerinin süresi dolduğunda PMTU değişebilir. Ana bilgisayar PMTU'yu güncellemek için PMTUD'yi yeniden çalıştırır.
PMTUD'yi yapılandırın
PMTUD'yi etkinleştirin
Ağdaki tüm cihazların PMTUD'yi desteklediğinden ve etkinleştirdiğinden emin olun. Linux'ta /proc/sys/net/ipv4/ip_no_pmtu_disc dosyasına sıfır yazarak PMTUD'yi etkinleştirin.
Eski çekirdek sürümleri veya belirli işletim sistemleri PMTUD'yi desteklemeyebilir. PMTUD'yi desteklemeyen cihazlar PMTUD sırasında ICMP mesajlarını işleyemez ve bu durumun başarısız olmasına neden olur.
Jumbo Frames özelliğini desteklemeyen 6. nesil veya önceki nesil Alibaba Cloud Elastic Compute Service (ECS) örnekleri PMTUD'yi desteklemez. ECS örneklerinden geçen paketlerin boyutunun 1.500 baytı aşmadığından emin olun.
Yol üzerindeki bir cihaz PMTUD'yi desteklemiyorsa PMTU'yu manuel olarak keşfedin. Örneğin PMTU'yu keşfetmek için ping komutunu çalıştırın. Ardından paket boyutlarını ayarlayın veya bir ağ arabiriminin (NIC) MTU'sunu değiştirin.
ICMP hata mesajlarının ana bilgisayara ulaşmasını sağlayın
Güvenlik duvarlarını ve güvenlik cihazlarını kontrol edin ve yapılandırın; özellikle Destination Unreachable: Fragmentation Needed (Type 3, Code 4) ICMP mesajlarına izin verin. Engellenen ICMP mesajları PMTUD'nin çalışmasını engeller.
Güvenlik gruplarını ICMP trafiğine izin verecek şekilde yapılandırın. ECS örnekleri yalnızca güvenlik grupları ICMP trafiğine izin veriyorsa PMTUD sırasında ICMP müzakere paketlerini alır. Bkz. Belirli protokoller kullanarak ECS örneklerine erişimi kontrol etmek için güvenlik grubu kuralları.
-
Ağ kısıtlamasını kontrol edin. Trafik kısıtlama eşiğine ulaştığında ICMP mesajları bırakılabilir.
Linux örnekleri için bkz. Linux örneğinde yüksek ağ bant genişliğini giderin.
Windows örnekleri için ağ kullanımını kontrol etmek üzere Task Manager kullanın.
ICMP mesajlarına yanıt vermek için uygulamaları değiştirin
PMTUD sırasında ICMP hata mesajlarına yanıt vermek ve keşfedilen PMTU'ya göre paket boyutlarını azaltmak için uygulamaları değiştirin.
Bir uygulama bir ICMP hata mesajı aldıktan sonra paket boyutunu keşfedilen PMTU'ya uyarlamazsa işletim sistemi çekirdeği paketleri parçalayabilir; bu da iletim hatalarına neden olabilir.
Bunu çözmek için uygulamada PMTU ile eşleşecek daha küçük bir MSS belirtin.
TCP bağlantılarında IP parçalanmasından kaçının
TCP veri bütünlüğünü ve sıralamayı sağlayan bağlantı odaklı güvenilir bir taşıma katmanı protokolüdür. IP parçalanması TCP güvenilirliğini etkileyen parça kaybına veya yeniden birleştirme hatalarına neden olabilir. MSS müzakeresi ve PMTUD TCP bağlantılarının IP parçalanmasından kaçınmasına yardımcı olur.
Bağlantı kurulumu sırasında MSS müzakeresi ile IP parçalanmasından kaçının
MSS TCP başlığı hariç bir TCP segmentindeki en büyük veri yükünü belirten bir TCP parametresidir.
MSS müzakeresi kullanıcı müdahalesi olmadan TCP/IP yığınında gerçekleşir. Veri segmenti boyutlarının her iki uç noktanın ağ ortamlarına uygun olmasını sağlar; böylece aşırı büyük paketlerden kaynaklanan parçalanma veya yetersiz boyuttaki paketlerden kaynaklanan verimsizlik önlenir.
MSS TCP üç yönlü el sıkışması sırasında müzakere edilir. Gönderen ana bilgisayar SYN paketinde MSS seçeneğini içerir. Bu değer genellikle uç noktanın MTU'sundan IP ve TCP başlıklarının sabit ek yükünün çıkarılmasıyla hesaplanır. Alıcı ana bilgisayar kendi MTU'suna göre uygun bir MSS belirler ve bunu SYN-ACK paketinde döndürür. Her iki ana bilgisayar da bağlantı için kabul edilen MSS'yi kullanır.
Veri iletimi sırasında MSS'yi PMTU'ya dinamik olarak uyarlayın
MSS müzakeresi tüm ara cihazların MTU'larının müzakere edilen MSS'den büyük veya ona eşit olduğunu garanti etmez. Yoldaki bir cihazın daha küçük bir MTU'su varsa IP parçalanması yine de gerçekleşebilir. UDP ve ICMP gibi bağlantısız protokollerde MSS müzakeresi tamamen bulunmaz. PMTUD PMTU'yu dinamik olarak keşfederek uygulamaların MSS'yi buna göre ayarlamasına olanak tanıyarak bu sorunu ele alır.