Niedawno rozwiązywałem problem meta-problemu z łącznością sieciową, ponieważ wiedziałem, że dany cel jest osiągalny, ale nie byłem w stanie tego zademonstrować, traceroute
ponieważ ścieżka spadła po określonej liczbie przeskoków. Biorąc pod uwagę, że ostatni zaobserwowany przeskok był tuż powyżej interesującego węzła, wąchałem ruch, spodziewając się potwierdzić, że sondy do niego docierają i dowiedzieć się, która reguła filtrowania blokuje je. Rzeczywiście, dowiedziałem się, że sondami były datagramy UDP przeznaczone dla wysokiego (i zmiennego) portu, który oczywiście zablokowałem dla ruchu przychodzącego.
Zaskakuje mnie to, ponieważ założyłem, że wszystkie traceroute
sondy będą domyślnie ustawione na ICMP, ponieważ odpowiedzi są ICMP. Przeprowadziłem ankietę dokumentacyjną i okazało się, że różne implementacje dokonują różnych wyborów, a niektóre nie pozwalają użytkownikowi na wybór domyślny.
Streszczenie metody sondy Traceroute i wnioskowanie o ścieżce IP do przodu wspiera moją intuicję, że sondom ICMP częściej uda się dotrzeć do miejsca docelowego.
Zezwolenie na różne metody sondy wydaje się świetnym pomysłem, ale domyślnie coś innego niż ICMP wydaje się złym pomysłem. Czy ktoś mógłby opisać uzasadnienie, dlaczego lepiej używać domyślnie UDP?