Назад | Перейти на главную страницу

Как эфемерные порты работают через NAT?

Думаю, я прав, говоря, что:

  1. Операционные системы обычно используют диапазон временных портов IANA от 49152 до 65535.
  2. Приложения генерируют случайный эфемерный порт для установления соединения от клиента к серверу.
  3. NAT переводит IP-адреса, обычно частные-общедоступные.

Итак, как эфемерные порты работают с NAT?

Насколько я понимаю (я уверен, что я что-то упускаю), не должно ли быть возможности (выше в более крупных сетях), что эфемерные порты могут конфликтовать в сети или на сервере, если, например, два или несколько клиентов генерируют и используют один и тот же случайный эфемерный порт для подключения через NAT?

Конфликта нет, потому что подключенный сокет определяется следующими четырьмя значениями:

  1. Исходный IP
  2. IP-адрес назначения
  3. Исходный порт
  4. Порт назначения

Два разных клиента означают, что существует по крайней мере одно другое значение, которое является исходным IP, даже при доступе к одному и тому же серверу / службе.

Чтобы связать это с NAT, маршрутизатор / шлюз будет создавать новое сопоставление для каждого нового подключения. Это сопоставление сохраняется, чтобы иметь возможность возвращать пользователю дальнейшие ответы и использовать его, пока соединение является действительным. В терминах сетевого фильтра Linux это называется отслеживанием соединения.