Я клиент ирландского интернет-провайдера, eircom, который начал цензуру пиратская бухта.
Когда я пытаюсь пинговать 194.71.107.15
который является IP-адресом thepiratebay.com, я получаю такой вывод:
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
Как ping узнает, что он отфильтрован? Как я могу узнать больше о том, как он фильтруется. Мой ping / nmap foo слабый.
Посмотрев на
ping.c из пакета iputils-ping Debian etch, я вижу:
/* * * pr_icmph -- * Print a descriptive string about an ICMP header. */ void pr_icmph(__u8 type, __u8 code, __u32 info, struct icmphdr *icp) { ... case ICMP_PKT_FILTERED: printf("Packet filtered\n"); break; ...
Похоже, что iptables reject добавляет это в ответ, см.
http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/net/ipv4/netfilter/ipt_REJECT.c
и выполните поиск по запросу «ICMP_PKT_FILTERED», хотя это может быть не единственный случай, когда эхо-запрос отправляет такое сообщение.
Ping определяет свое напечатанное сообщение в зависимости от Контрольное сообщение ICMP он получает в ответ на эхо-запрос.
Предположительно, я могу представить, что любое устройство фильтрации, которое Eircom использует для блокировки доступа к The Pirate Bay, генерирует сообщения ICMP Type 3, Code 9 (сеть административно запрещена) или Type 3, Code 10 (хост административно запрещен) сообщения в ответ на трафик, направляемый на IP-адрес The Pirate Bay.
Для подтверждения я бы предложил запустить захват пакетов (используя Wireshark или аналогичный) и просматривая ответные пакеты ICMP, которые вы получаете от 159.134.124.176.
Это означает, что устройство 159.134.124.176 блокирует пакеты ICMP (Ping) и отвечает вам с этой информацией. Возможные ответы ICMP перечислены в эта статья в вики.
ping получает ICMP_DEST_UNREACH и, в зависимости от типа возвращенного пакета icmp, возвращается ping знает, что он отфильтрован.
Я думаю, это означает, что 159.134.124.176 не позволяет вашим пингам достигать 194.71.107.15, то есть фильтрует (по крайней мере) ICMP. Когда я делаю то же самое, я получаю:
\# 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
... и быстрый WHOIS сообщает мне, что 159.134.124.176 действительно принадлежит Eircom.
Основная идея (и, надеюсь, кто-то может помочь мне уточнить некоторые детали, поскольку я не эксперт по Linux) заключается в том, что ваш ping отправляет эхо-запрос ICMP, но не получает стандартный эхо-ответ от целевого хоста. Вместо этого был получен ответ 159.134.124.176, вероятно, с некоторой формой ответа ICMP о недоступности пункта назначения. Это, а также тот факт, что 159.134.124.176 не является исходной целью, означает, что пакеты фильтруются.