LINUX.ORG.RU
ФорумAdmin

UDP: объясните кто-нибудь


0

0

Когда через NAT-гейт идет UDP-запрос наружу (cкажем к DNS), как NAT-гейт определяет, что то, что мы получаем, является ответом на запрос внутренней машины, а не запросом к NAT-гейту? В UDP ведь нет соединения...

anonymous

это называется "учи матчасть"

нат просто переписывает в пакете ip-адрес отправителя на свой и получив ответ( в не зависимости от того что это за протокол -tcp,udp или icmp) форвардит его назад клиенту

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

На самом деле немного сложнее всё. и НАТ различает tcp и udp.

Для UDP - НАТ также ведёт таблицу сходящих пакетов. И если ответ пришёл в тот же порт, из которого вышел (а так работают большинство UDP-протоколов) и в течение определенного времени от запроса - тогда НАТ перенаправляет ответ на исходную машину.

дополнительная информация:
/proc/net/ip_conntrack
iptables howto

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

>в течение определенного времени от запроса

Какое время по умолчанию?

И еще: обычная фильтрация UDP-портов с помощью iptables на клиенте так же работает?

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

>Какое время по умолчанию?

в iptables tutorial - написано, что 30 сек.

>И еще: обычная фильтрация UDP-портов с помощью iptables на клиенте так же работает?

Обычная фильтрация - работает обычно. либо прошел пакет, либо нет.

smartly ★★★
()

nat строит внутреннюю таблицу, conntrack - где запоминает все заначенные соединения

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

>Обычная фильтрация - работает обычно. либо прошел пакет, либо нет.

Я про то, если закрыты входящие UDP, как определяется, что пакет только ответ? Иначе бы DNS запросы не работали.

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