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

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

Клиент хочет провести сеанс с сервером.

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

Клиент отправляет пакет 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?

  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)
Другие вопросы по тегам