Bir NAT sunucusu, ping ICMP echo'yu nasıl kullanıcılara cevap paketleri gönderir?


29

NAT , giden istekleri toplamak için bir IP adresi port numarası kombinasyonu kullanır. Yana ping istekleri ICMP'nin yankı isteği paketlerinin oluşur, bunlar herhangi bir ilişkili bağlantı noktası numarası yok. Bir NAT sunucusu yanıtları ağ içindeki ana bilgisayarlara nasıl iletir?


Yanıtlar:


34

ICMP sorgusu / Yanıt türü gibi Echoes (ping) gibi mesajlar için NAPT, ICMP Sorgu Kimliğini (bazen sadece ICMP Kimliği olarak da adlandırılır), TCP veya UDP bağlantı noktası numarasını kullandığı gibi kullanır.

Hedef Ulaşılamaz gibi ICMP hata mesajlarında, ICMP paketinin, NAT tablosundaki hangi eşlemenin onu çevirmek için kullanacağını bulmasına neden olan hatanın başlıklarının dahili kopyasını kullanır.

Bu prosedürlere NAT ile ilgili birkaç RFC'de kısaca referans verilmiştir, ancak prosedürü açıkça dile getiren bir tane bulmakta zorlandım. Bkz. "Geleneksel NAT", RFC3022 , bölüm 4.1.

Bu, herhangi bir TCP veya UDP eşlemesiyle çakışmaz, çünkü iyi bir NAPT uygulamasında protokol, onu benzersiz kılmak için NAT tablosu girişinde tutulan bilgi parçalarından biridir.


1
bir yerden alıntı yapabilir misin?
Rohit Banga

ya ICMP kimliği işlemimin kullandığı port numarası ile çakışırsa.
Rohit Banga

@iamrohitbanga Tamam Diğer sorularınızı kapsayacak şekilde cevabımı genişlettim.
Spiff

0

ICMP çakıştığında ne olacağını kontrol etmek için (görünüşe göre satıcıya özel olabilir) küçük bir simülasyon yaptım (GSN3 Kali Linux CLI cihazına dayanarak).

On ICMP istekleri / NAT önce tepkisi (saygıyla IP'ler 10.0.0.1 ve 10.0.0.2 ile) 2 cihazlardan ICMP istekleri tanımlayıcılar eşit olunca, durum gösterilmiştir.

Aynı zamanda ICMP isteklerinde / yanıtında NAT çakışan ICMP oturumunun tanımlayıcısının NAT tarafından 0 olarak değiştirildiğini ve oradan artırıldığını gösterir.

Özet olarak, Linux NAT'ın ICMP tanımlayıcılarının çakışmasını açıkken kullandığı söylenebilir (ICMP tanımlayıcıları NAT'tan önce değişmediği için).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.