LINUX.ORG.RU
ФорумAdmin

Объясните принцип работы NAT'а


0

0

Прошу прощения за глупый вопрос. Каким образом работает Network Address Translator (NAT)? Если взять напрмер squid то тут понятно он слушает 3128 (как правило) tcp порт, а какой порт слушает NAT? Прошу не пинать

anonymous

NAT - это не программа, NAT - это функция ядра. Таким образом, NAT не слушает никаких портов. iptables/ipchains это программы управления этой функцией.

zgen ★★★★★
()

NAT следит за пакетами, которые маршрутизируются/терминируются устройством и меняет адреса.
это своего рода правила, которые меняют адреса источника/назначения.

chocholl ★★
()

По простому меня учили так:
1. пакет идет на шлюз
2. шлюз меняет src-адрес пакета и передает его дальше, при этом он записывает это в свою таблицу
3. когда приходит ответный пакет - идет сверка по таблице, меняется dst-адрес пакета и пакет отправляется в локальную сеть.

Komintern ★★★★★
()
Ответ на: комментарий от anonymous

> А если он идёт на сервер то он же адресуется на какой-то порт?

Не факт, ибо натить можно не только tcp-udp протоколы, а и любые другие, у которых портов и в помине нет, gre например или ipsec или icmp. Не факт, что такая трансляция обязательно окажется корректной для клиента и сервера, но все же...

Когда натятся tcp-udp протоколы, то кроме адресов могут меняться и порты, для других протоколов меняются только адреса, в сложных случаях может меняться и содержимое пакетов (например для ftp или ip-телефонии).

Короче говоря, для себя я давно решил, если можешь обойтись без NAT-а -- обойдись.

ansky ★★★★★
()
Ответ на: комментарий от anonymous

сервер NAT может являться:
1) шлюзом для трафика (def gw например)
2) пунктом назначения (сервер случает на порту 80, а апач к примеру, работает на 8080)

в обоих случаях возможна подмена адреса источника и/или адреса назначения.

chocholl ★★
()
Ответ на: комментарий от svu

ты заблуждаешься.
NAT это network address translation
ключевое слово - network, а не transport.

chocholl ★★
()

Информации по нату куча, нет бы поискать.

Короче... как т ызнаешь, пакет всегда по умолчанию уходит на основной шлюз, при условии, что нету альтернативных маршрутов. Так вот, нат его принимает, меняет адрес отправителя, запоминает сокет соединения в своей таблице, дабы потом не путаться если есть множественные соединения к одному и тому же серверу, и шлёт пакет до своего основного шлюза, и так далее... с ответом на это думаю всё итак ясно.

k4m454k
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.