Neden bazı yaygın traceroute uygulamaları UDP problarını varsayılan olarak kullanıyor?


18

Kısa bir süre önce bir ağ bağlantısı meta sorununu çözüyordum, tracerouteçünkü belirli bir hedefe ulaşılabilir olduğunu biliyordum, ancak bunu belli bir sayıda atlamadan sonra yol soğuduğu için gösteremedim . En son gözlemlenen sıçramanın ilgilenilen düğümden yukarı akış olduğu göz önüne alındığında, probların ona ulaştığını doğrulamayı ve hangi filtre kuralının onları engellediğini öğrenmeyi bekleyerek trafiği kokladım. Tabii ki, probların, tabii ki gelen trafiğe bloke ettiğim yüksek (ve değişen) bir port için hedeflenen UDP datagramları olduğunu öğrendim.

Bu beni şaşırtıyor, çünkü tracerouteyanıtların ICMP olması nedeniyle tüm probların ICMP'yi temerrüde düşüreceğini varsaydım . Bir dokümantasyon anketi yaptım ve farklı uygulamaların farklı seçimler yaptığını ve bazılarının varsayılan olmayan bir seçim yapmasına izin vermediğini buldum.

Soyut Traceroute prob yöntemi ve ileri IP yolu çıkarsama ICMP sondaları daha sık hedef ulaşmada başarılı olacağından sezgimin desteklemektedir.

Farklı prob yöntemlerine izin vermek harika bir fikir gibi görünüyor, ancak ICMP dışında bir şeye varsayılan olarak geçmek kötü bir fikir gibi görünüyor. Birisi neden UDP'yi varsayılan olarak kullanmanın daha iyi olduğu gerekçesini açıklayabilir mi?

Yanıtlar:


20

İlk versiyonu tracerouteVan Jacobson tarafından yazılmıştır ve ICMP kullanmıştır, ancak çok iyi çalışmadı. RFC792'de ICMP'nin satıcı yorumu, yönlendiricilerin bir ICMP paketine yanıt olarak bir ICMP hata iletisi göndermemesi gerektiğiydi (aşağıdaki düzenleme notlarına bakın). Bu nedenle, yönlendiricilerin çoğu 1 veya 0 TTL değerine sahip bir yankı isteğine yanıt olarak "zaman aşıldı" iletisi göndermez. Bu nedenle, UDP ve lo kullanacak şekilde değiştirdi ve harika çalıştı ve çok sevindi (ve benimsendi). tracerouteLinux ve FreeBSD (ve Cisco varsayıyorum) üzerine aracı Van Jacobson çalışmalarına dayanmaktadır.

Spesifikasyon daha sonra "bir ICMP hata paketine yanıt olarak" olarak değiştirildi . Dünya ilerledi, satıcılar yığınlarında değişiklikler yaptı ve yankı isteklerine yanıt olarak ICMP hata mesajlarına izin verdi ve güvenlik duvarlarının ve ACL'lerin yükselmesiyle, başıboş UDP paketleri bazen engelleniyor, ancak ICMP yankı isteği geçebilir. Elbette, bugünkü başarınız çılgınca değişiyor. Ben tracertve ICMP yankı yanıtları kullanmak çok sorunlu olmadığı bir zamanda yazılmıştır diğer araçlar beklenir .

Bugünlerde UDP'nin ICMP'den daha iyi olduğunu söyleyemezsiniz. Veya her ikisinin de TCP'den daha iyi olduğunu. Tamamen ilerlediğiniz yola ve yürürlükteki güvenlik politikalarına bağlıdır. Üç uygulamayı da, her ikisini birden veya tümünü denemeniz gerekebilir.

Kaynaklar:

http://ftp.arl.army.mil/~mike/ping.html http://www.inetdaemon.com/tutorials/trognostic/tools/traceroute/definition.shtml

Düzenle :

RFC'yi IP'den (RFC791) introda yazan ICMP'ye (RFC792) değiştirdi:

Mesajlar vb. İle ilgili mesajların sonsuz gerilemesini önlemek için ICMP mesajları hakkında hiçbir ICMP mesajı gönderilmez.

Bu, satıcıların yankı istekleri için "Zaman Aşıldı" hataları göndermemesine neden olan bit.

RFC1122, Internet Host'lar için Gereksinimler, bölüm 3.2.2. ana bilgisayarların ICMP hata iletilerine yanıt vermemesi gerektiğini belirten güncelleştirme .


Şimdi bana e-postayla gönderdiğiniz soru üzerine yorum bırakmak için yeterli üne sahipsiniz
Mike Pennington

Aferin. Özellikle bilgisayar hakkında ilk bağlantıda "Ping! Ping! Ping!" akciğerlerinin tepesinde.
neirbowj

Mike, evet, bu sitenin nasıl işlediğini
anlamaya başlıyorum
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.