По какому порту работает ICMP?

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

Ответ

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

ICMP работает на сетевом уровне (L3), непосредственно поверх IP. Для идентификации типа сообщения ICMP использует поля Type и Code в своем заголовке.

Распространенные типы ICMP-сообщений:

  • Type 8, Code 0: Echo Request (запрос ping)
  • Type 0, Code 0: Echo Reply (ответ на ping)
  • Type 3: Destination Unreachable (с различными кодами, например, Code 3 — Port Unreachable)
  • Type 11: Time Exceeded (используется traceroute)

Практическое значение для DevOps: При настройке сетевых правил (фаерволы, security groups, сетевые политики Kubernetes) нужно помнить, что для разрешения ICMP-трафика (например, для мониторинга доступности) вы управляете не портами, а типами протоколов. Например, в AWS Security Group это правило "All ICMP - IPv4", а в iptables:

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