NAT использует комбинацию номеров портов IP-адреса для хэширования исходящих запросов. Поскольку запросы ping состоят из пакетов эхо- запросов ICMP, у них нет ассоциированного номера порта. Как сервер NAT пересылает ответы хостам внутри сети?
1 ответ
Для сообщений типа запросов / ответов ICMP, таких как эхо-запросы (pings), NAPT использует идентификатор запроса ICMP (иногда его называют просто ICMP-идентификатором) так же, как и номер порта TCP или UDP.
Для сообщений об ошибках ICMP, таких как Destination Unreachable, он использует внутреннюю копию пакета ICMP заголовков кадра, из-за которой ошибка выяснила, какое отображение в таблице NAT использовать для его преобразования.
Эти процедуры кратко упоминаются в нескольких RFC, связанных с NAT, но мне было трудно найти тот, который четко прописал процедуру. См. "Традиционный NAT", RFC3022, раздел 4.1.
Это не вступает в конфликт с каким-либо отображением TCP или UDP, потому что в хорошей реализации NAPT протокол является одной из частей информации, содержащейся в записи таблицы NAT, чтобы сделать его уникальным.