Як пінг знає, що мої пакети фільтруються?


20

Я замовник ірландського провайдера, 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 / nmap foo слабкий.

Відповіді:


14

Ping визначає друковане повідомлення залежно від керуючого повідомлення ICMP, яке воно отримує у відповідь на ехо-запит.

Гадаю, я б міг уявити, що незалежно від фільтруючого пристрою, який Eircom використовує для блокування доступу до The Pirate Bay, генерує або ICMP типу 3, код 9 (мережа адміністративно заборонено), або повідомлення 3, код 10 (код адміністратора заборонено) у відповідь на трафік, спрямований на IP-адресу The Pirate Bay.

Для підтвердження я б запропонував запустити захоплення пакетів (використовуючи Wireshark або подібні) та переглянути пакети відповідей ICMP, які ви отримуєте з 159.134.124.176.


29

Після огляду

ping.c з пакета Dech etch iputils-ping, я бачу:

 
 / *
 *
 * pr_icmph -
 * Друкуйте описовий рядок про заголовок ICMP.
 * /
void pr_icmph (тип __ u8, код __u8, інформація __u32, структура icmphdr * icp)
{

...
                випадок ICMP_PKT_FILTERED:
                        printf ("Пакет відфільтрований \ n");
                        перерву;
...

Схоже, відхилення iptables додає це у відповідь, див

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

і шукайте "ICMP_PKT_FILTERED", хоча це може бути не єдиний випадок, який би змусив ping відповісти з таким повідомленням.


5
+1 для дайвінгу-джерела.
RainyRat

1
Безумовно.
squillman

Інша річ, яка може спричинити це - це "приватні" пакети (з використанням приватного / внутрішнього IP-адреси), які виводять його у світ. Я бачив це, коли впало VPN-з'єднання, і пакети, що йшли до 10.11.12.13, почали отримувати "фільтрувані пакети" відповіді із зовнішньої системи, до яких вони ніколи не повинні були переходити. Дивіться також en.wikipedia.org/wiki/IP_address#IPv4_private_addresses
огорожа


1

ping отримує ICMP_DEST_UNREACH, і залежно від типу повернутого пакета icmp, що повернувся, ping знає, що він відфільтрований.


1

Я думаю, це означає, що 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.


2
Питання полягало в тому, як «ping» знає, я думаю, що автору відомо, що ICMP фільтрується. Він, напевно, вважає, що відфільтрований означає фільтрування стилю чорної діри, нічого не віддаючи назад, і це поставило питання про те, щоб пінг "магічно" знав, у чому справа.
Кароліс Т.

1

Основна ідея (і, сподіваємось, хтось може допомогти мені заповнити деталі, оскільки я не є експертом Linux), це те, що ваш ping надсилає запит ехо ICMP, але не отримує стандартного відповіді ехо від цільового хоста. Натомість на нього відповіли 159.134.124.176, ймовірно, з деякою формою призначення ICMP недосяжно. Це і той факт, що 159.134.124.176 не є початковою ціллю, означає, що пакети фільтруються.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.