В данной небольшой статье я расскажу как менялось поведение ICMP в OS Windows. Данное изменение произошло в OS Vista и очень хорошо иллюстрирует почему ping - не является мерилом доступности узлов в сети, а так же качеством подключения. Лучше проверить службами, чем ping-ами. Для статьи использовались виртуальные машины (XP, Windows Server 2012 R2 и 2008 R2) со следующей схемой сети:

icmp0.png

 Сетевая конфигурация Windows Server 2008 R2:

icmp1.png

 Приступаем к тестам. Я приведу для сравнения вывод команды PING для трёх ситуаций:

- 2008 R2 в сети с включённым FireWall
- интерфейс 2008 R2 выключен
- 2008 R2 в сети с настроенным разрешением ICMPv4.

icmp2.png

icmp3.png

 Обратите внимание на вторую попытку пинга при выключенном интерфейсе 2008 R2. Начиная Vista ICMP возвращает нам "Заданный узел недоступен", в то время как в первом случае - "Превышен интервал...". Словно ICMP сообщает нам "Эй, сервер в сети, но он не отвечает мне в течении 5 секунд". Ответ "Заданный узел недоступен" в ХР достигается путём отключения интерфейса в ОС - а это проблема на стороне XP.

icmp5.png

 Правило для разрешения ICMP показано ниже.

icmp4.png

 Причина такого поведенения ICMP на самом деле проста. С помощью утилиты arp с ключём "а" можно увидеть, что после пинга с Windows Vista компьютера с отключенным интерфейсом в таблице МАС адресов Vista не будет МАС адреса пингуемого компьютера. В случае же просто закрытого протокола ICMP МАС адрес всё равно будет доступен.

23.11.2013