NAT-клиент и сервер, а также закрытие портов

NAT-клиент и сервер, а также закрытие портов

Допустим, у меня есть клиент и сервер. Клиент находится за NAT, а сервер — публичный.

Клиент хочет иметьсессияс сервером.

Допустим, клиент находится на 192.168.1.1, NAT на частных IP-адресах 192.168.1.2. NAT на 50.0.0.1, а сервер на публичных IP-адресах 50.0.0.2.

Клиент отправляет пакет UDP/IP (надеюсь, он похож на TCP/IP) на сервер. Этот пакет имеет исходный IP 192.168.1.1 и исходный порт, скажем, 1000 (выбирается случайным образом), а также порт назначения 50.0.0.2 и порт назначения 2000, поскольку это порт, на котором приложение работает на сервере.

Пакет TCP/IP поступает на NAT, который изменяет исходный IP-адрес на 50.0.0.1 и порт, скажем, на 5000 (выбирается случайным образом) и направляет его на сервер.

Сервер отправляет ответный пакет с IP-адресом назначения 50.0.0.1 и портом 5000.

NAT изменяет IP-адрес назначения пакета на 192.168.1.1, а порт назначения — на 1000.

  1. Теперь, может ли сервер отправить много пакетов UDP/IP на один и тот же IP 50.0.0.1 и порт 5000, и все пакеты будут перенаправлены клиенту 192.168.1.1 на порт 1000?

  2. Если да, то как долго этот порт 5000 на публичной стороне NAT будет пересылать пакеты указанному клиенту?

  3. Только пакетыс исходным IP 50.0.0.2 и исходным портом 2000будет передано клиенту?

решение1

Ответы:

  1. Да.
  2. Это зависит от реализации NAT для устройства. В Linux это можно настроитьредактирование /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_*
  3. Да, если только нет «связанных» портов, распознаваемых NAT, в этом случае используются дополнительные модули NAT для определения того, что связано (по крайней мере, в Linux)

Связанный контент