Какой номер порта используется для ICMP (ping)?

«Какой номер порта используется для ICMP (ping)?» — вопрос из категории Сети, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для протокола ICMP (Internet Control Message Protocol), который используется утилитой ping, не существует понятия портов. Порты — это концепция транспортного уровня (уровень 4 модели OSI), относящаяся к протоколам TCP и UDP.

ICMP работает на сетевом уровне (уровень 3), непосредственно поверх IP. Вместо портов ICMP-пакеты используют типы и коды для идентификации вида сообщения (например, Echo Request / Echo Reply для ping).

Практическое значение для DevOps:

  • При настройке групп безопасности (Security Groups) в облаке или файрволов (например, iptables) правила для разрешения ping работают с протоколом ICMP, а не с портами.

Пример разрешения ICMP в iptables:

# Разрешить входящие Echo Request (ping)
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# Разрешить исходящие Echo Reply
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

Пример проверки доступности порта (уровень 4):

# Проверка доступности TCP-порта 443 (аналог ping для портов)
nc -zv example.com 443
# Или с помощью telnet
telnet example.com 443

Понимание этой разницы критично для диагностики сетевых проблем: ping проверяет доступность узла на сетевом уровне, а проверка порта — доступность конкретного сервиса на транспортном уровне.