возможно ли пинг через нат извне нат внутри? - PullRequest
2 голосов
/ 22 января 2011

можно ли отправить эхо-запрос на хост, установленный за nat после. весь эхо-запрос не содержит порта для хоста назначения, поэтому, если есть несколько хостов, использующих один и тот же внешний IP-адрес, как nat сможет перенаправить эхо-запрос на конкретный хост

1 Ответ

2 голосов
/ 22 января 2011

В большинстве современных реализаций NAT / фильтрации пакетов есть состояние. Это означает, что они имеют более широкое понятие слова connection, чем старые варианты без гражданства. Это позволяет им обрабатывать более сложные протоколы, использующие дополнительные соединения (например, FTP), а также протоколы без соединений, такие как ICMP .

В случае ICMP-пакетов echo запросы содержат поле ID, которое сохраняется в ответе. Несмотря на то, что его 16 битов несколько ограничивают, он позволяет в сочетании с IP-адресом источника из заголовка IP иметь достаточно высокую достоверность, которой echo запрашивает каждый ответ.

EDIT:

Что касается таргетинга на конкретные хосты за реализацией NAT, это обычно невозможно. Вы могли бы быть в состоянии:

  • Перенаправить весь трафик ICMP на один внутренний хост, чтобы отслеживать только этот хост.

  • Используйте байты данных "pad" пакета запроса echo для предоставления какого-либо идентификатора хоста. Например, опция -p ping в некоторых системах Linux позволяет установить это поле. Это ни в коем случае не стандартно.

Обычно NAT должен скрывать хосты, стоящие за ним, от мира, за исключением любых переадресованных IP-соединений.

...