Хост A (10.0.0.1) подключается к 2 серверам (TCP и UDP) на хосте B (130.129.123.2), оба работают на порте 53. Как с этим справляется традиционный NAT?
Отображение правил NAT 10.0.0.1 tcp/53
к 192.0.2.1 tcp/53
не имеет отношения к отображению правил 10.0.0.1 udp/53
к 192.0.2.1 udp/53
.
Таким образом, вы можете иметь одно и то же числовое значение для порта с использованием разных IP-протоколов, что приведет к двум различным преобразованиям, если хотите.
Статический NAT - сопоставление незарегистрированного IP-адреса с зарегистрированным IP-адресом на индивидуальной основе. Особенно полезно, когда к устройству должен быть доступ извне.
Пример: в статическом NAT компьютер с IP-адресом 192.168.32.10 всегда будет преобразовывать в 213.18.123.110.
Динамический NAT - сопоставляет незарегистрированный IP-адрес зарегистрированному IP-адресу из группы зарегистрированных IP-адресов. Динамический NAT также устанавливает взаимно-однозначное сопоставление между незарегистрированным и зарегистрированным IP-адресом, но сопоставление может варьироваться в зависимости от зарегистрированного адреса, доступного в пуле во время связи.
Пример: в динамическом NAT компьютер с IP-адресом 192.168.32.10 будет преобразовывать в первый доступный адрес в диапазоне от 213.18.123.100 до 213.18.123.150.
Вы об этом спрашиваете?
Хост A выберет какой-нибудь случайный высокий (<1024) порт и подключится к B. Блок NAT (обычно маршрутизатор) изменит исходный IP-адрес (блока A) на публичный IP-адрес, которым он владеет (и, если используется исходящий порт, он также изменит номер порта) и запомнит это изменение. Когда B получает пакет, он отвечает пакетом на общедоступный IP-адрес, назначенный маршрутизатору (откуда пакет, похоже, пришел из-за NAT). Затем маршрутизатор проверит таблицу NAT, заметит преобразование, которое он сделал ранее, и обратит его (измените IP-адрес назначения на IP (из поля A), а также порт, если он сделал это раньше), и отправит его. в бокс А.
С tcp он может забыть запись в таблице nat после TCP FIN / RST / ... или ждет тайм-аута. С UDP он просто ждет тайм-аута (после того, как никакие пакеты не поступят по этому комбинированному IP / порту).