Skąd ping wie, że moje pakiety są filtrowane?

20

Jestem klientem irlandzkiego ISP, eircom, który zaczął cenzurować zatokę piratów.

Kiedy próbuję pingować, 194.71.107.15który jest adresem IP thepiratebay.com, otrzymuję ten wynik:

PING 194.71.107.15 (194.71.107.15) 56(84) bytes of data.
From 159.134.124.176 icmp_seq=1 Packet filtered
From 159.134.124.176 icmp_seq=2 Packet filtered
From 159.134.124.176 icmp_seq=3 Packet filtered

Skąd ping wie, że jest filtrowany? Jak mogę dowiedzieć się więcej o tym, jak jest filtrowane. Mój ping / nmap foo jest słaby.

Rory
źródło

Odpowiedzi:

14

Ping określa wydrukowany komunikat w zależności od komunikatu kontrolnego ICMP, który otrzymuje w odpowiedzi na żądanie echa.

Przypuszczam, że wyobrażam sobie, że jakiekolwiek urządzenie filtrujące, którego Eircom używa do blokowania dostępu do The Pirate Bay, generuje albo komunikaty ICMP Type 3, Code 9 (administracyjnie zabronione w sieci), albo Type 3, Code 10 (administracyjnie zabronione przez hosta) w odpowiedzi na ruch kierowany na adres IP The Pirate Bay.

Aby to potwierdzić, sugerowałbym uruchomienie przechwytywania pakietów (za pomocą Wireshark lub podobnego) i sprawdzenie pakietów odpowiedzi ICMP, które otrzymujesz z 159.134.124.176.

Murali Suriar
źródło
29

Po obejrzeniu

ping.c z pakietu iputils-ping Debian etch, widzę:

 
 / *
 *
 * pr_icmph -
 * Wydrukuj opisowy ciąg o nagłówku ICMP.
 * /
void pr_icmph (__ typ u8, __u8 kod, __u32 informacje, struct icmphdr * icp)
{

...
                sprawa ICMP_PKT_FILTERED:
                        printf („Filtrowanie pakietów \ n”);
                        złamać;
...

Wygląda na to, że iptables odrzuca to w odpowiedzi, patrz

http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/net/ipv4/netfilter/ipt_REJECT.c

i wyszukaj „ICMP_PKT_FILTERED”, choć może to nie być jedyny przypadek, w którym ping odpowiedziałby taką wiadomością.

Karolis T.
źródło
5
+1 za nurkowanie u źródła.
RainyRat
1
Zdecydowanie.
squillman
Inną rzeczą, która może to powodować, są pakiety „prywatne” (wykorzystujące prywatny / wewnętrzny adres IP), które docierają na cały świat. Widziałem to, gdy połączenie VPN zostało zerwane i pakiety przechodzące do 10.11.12.13 zaczęły otrzymywać odpowiedzi z „filtrowania pakietów” z systemu zewnętrznego, do których nigdy nie powinny były pójść. Zobacz także en.wikipedia.org/wiki/IP_address#IPv4_private_addresses
płotek
4

Oznacza to, że urządzenie 159.134.124.176 blokuje pakiety ICMP (Ping) i odpowiada ci tymi informacjami. Możliwe odpowiedzi ICMP są wymienione w tym artykule Wiki .

Doug Luxem
źródło
1

ping otrzymuje ICMP_DEST_UNREACH iw zależności od typu zwróconego pakietu icmp zwracany ping wie, że jest filtrowany.

rkthkr
źródło
1

Myślę, że to oznacza, że ​​159.134.124.176 nie pozwala twoim pingom osiągnąć 194.71.107.15, tj. Filtruje (przynajmniej) ICMP. Kiedy robię to samo, otrzymuję:

\# ping 194.71.107.15
PING 194.71.107.15 (194.71.107.15) 56(84) bytes of data.
64 bytes from 194.71.107.15: icmp_seq=1 ttl=50 time=43.0 ms
64 bytes from 194.71.107.15: icmp_seq=2 ttl=50 time=42.0 ms
64 bytes from 194.71.107.15: icmp_seq=3 ttl=50 time=42.1 ms

... a szybki WHOIS mówi mi, że 159.134.124.176 jest rzeczywiście własnością Eircom.

RainyRat
źródło
2
Pytanie brzmiało „jak” ping wie, myślę, że autor jest świadomy, że ICMP jest filtrowany. Prawdopodobnie uważa, że ​​filtrowanie oznacza filtrowanie stylu czarnej dziury, bez oddawania niczego, i to podniosło pytanie o pingowanie „magicznie”, wiedząc, co się dzieje.
Karolis T.
1

Podstawową ideą (i mam nadzieję, że ktoś może mi pomóc uzupełnić szczegóły, ponieważ nie jestem ekspertem od Linuksa) jest to, że twój ping wysyła żądanie echa ICMP, ale nie otrzymuje standardowej odpowiedzi echa z hosta docelowego. Zamiast tego odpowiedział na nie 159.134.124.176, prawdopodobnie z jakąś formą nieosiągalnej odpowiedzi ICMP na miejsce docelowe. To i fakt, że 159.134.124.176 nie jest pierwotnym celem, oznacza, że ​​pakiety są filtrowane.

squillman
źródło