Я читал о NAT. Имеет 3 типа.

  1. Статический - взаимно-однозначное сопоставление частных и общедоступных адресов.
  2. Динамический - один публичный адрес выбирается из пула публичных адресов и сопоставляется с одним частным адресом. Это также взаимно-однозначное сопоставление.
  3. Перегрузка /PAT - в этом случае номера портов будут играть роль для сопоставления набора частных адресов с публичным адресом или гораздо меньшим набором публичных адресов.

В первых двух случаях таблица NAT будет иметь пары IP-адресов, но в последнем случае таблица NAT будет иметь пары номеров IP+ порт.

Также я читал, что при общении разных приложений можно различать номера портов.

Моя проблема: давайте рассмотрим статический NAT, где локальный хост сопоставлен с глобальным IP-адресом. Если на этом хосте запущено несколько приложений, и каждое приложение использует разные номера портов, то в этом случае таблица NAT также имеет сопоставления номеров портов? Другими словами, как запросы от различных приложений от определенного хоста обрабатываются / дифференцируются без номеров портов в статическом NAT?

1 ответ1

1

Реализация NAT меняется. Даже 3 типа NAT не всегда так, как вы описали. Статический NAT может иметь статический IP + порт. т.е. частный IP/ порт отображается на публичный IP/ порт. И у вас может быть другой Частный IP/ Порт, сопоставленный одному и тому же Общему IP, но другому порту. (На самом деле существует более 3 типов NAT, но это другое обсуждение)

Тем не менее, давайте продолжим с вашим примером. Скажите Статический NAT 192.168.1.2 => 25.4.233.34 .

Реализация NAT обычно имеет таблицу трансляции NAT для поиска входящего пакета, которая имеет исходный IP-адрес хоста Интернета и IP-адрес назначения одного из общедоступных IP-адресов NAT. Эта таблица перевода обновляется всякий раз, когда происходит новый перевод, а также время от времени устаревает.

Если существует полное совпадение кортежа (имеется в виду исходный IP/ порт, dest IP/ порт, IP-протокол), NAT будет использовать совпадение для перевода. Это также может быть частичное совпадение (вы можете подумать, что статическая запись NAT имеет половинную запись с использованием подстановочного знака для порта). Скажем, получен пакет TCP 213.3.2.4:33442 -> 25.4.233.34:80

Если есть совпадение (24.4.233.34), он будет использовать статическую трансляцию для сопоставления входящего IP- адреса назначения (24.4.233.34) с частным IP (192.168.1.2) в вашем статическом NAT. В случае статического ввода NAT NAT должен преобразовывать только IP-адрес назначения, а порты проходят через немодифицированное. И хост 192.168.1.2 будет распространять пакет на базу приложения через порт назначения. т.е. приложение на порт TCP 80 получит пакет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .