Текущий архив: 2005.09.04;
Скачать: CL | DM;
Вниз
Как работает Nat? Найти похожие ветки
← →
Fin © (2005-08-09 11:16) [0]Столкнулся с таким вопросом. В принципе по вопросу более менее понятно, ретранслируются запросы, больше интересует такая ситуация допустим две машины в сети посылают запрос к одному и тому же ресурсу в интернете через nat то как nat определит кому из них вернулся ответ?
З.Ы. Есть мысль что по конкретному порту, но не уверен впервые более глубже сталкнулся с nat.
← →
Иксик © (2005-08-09 11:28) [1]
> Как работает Nat?
Есть три варианта:
1. Статический: каждому внутреннему ip-адресу nat ставит в соответствие внешний и подставляет его в запрос при отправке за пределы сети, при получении ответа делает обратную подстановку. В этом случае экономии адресов не происходит, единственный смысл этого - безопасность.
2. Динамический: аналогично первому, только количество внешних и внутренних адресов неодинаково и внешние адреса выдаются из определенного пула. Таким образом можно использовать меньшее количество адресов, если все компьютеры одновременно не ринутся за пределы сети.
3. Port Address Translation: самый распространенный вариант. Используется один ip-address, только посылаются запросы с разных портов, напр. для первого компьютера с n-го порта, для второго - с n+1-ого и т.д. Так и отличает - по портам.
← →
Иксик © (2005-08-09 11:28) [2]Упрощенно, но верно :)
← →
Fin © (2005-08-09 11:33) [3]так понимаю конкретно по моему вопросу 1 и 2 не подходят?
← →
Иксик © (2005-08-09 11:49) [4]Почему не подходят, вполне могут подойти - в первых двух случаях у nat-сервера или у рутера (смотря как nat реализуется) будет таблица соответствия внешних адресов внутренним и когда придут ответы на разные внешние адреса nat их сопоставит разным внутренним.
Другое дело что первые два случая очень редки, в основном когда говорят о nat, имеют ввиду pat - port address translation, т.е. 3-ий случай.
← →
Alex Konshin © (2005-08-09 12:26) [5]Если речь идет о TCP, то учти, что порт отправителя и порт получателя никак не связаны. Упрощенно, когда ты устанавливаешь TCP соединение на какой-то хост и, допустим, порт 80, то назначаются два порта: твой порт и порт на том конце, и оба они не будут равны 80. Поэтому различить разные соединения не составляет никакого труда.
← →
Иксик © (2005-08-09 13:04) [6]
> Если речь идет о TCP, то учти, что порт отправителя и порт
> получателя никак не связаны.
Иначе pat был бы невозможен.
← →
Holy © (2005-08-09 13:04) [7]
> Alex Konshin © (09.08.05 12:26) [5]
> Если речь идет о TCP, то учти, что порт отправителя и порт
> получателя никак не связаны. Упрощенно, когда ты устанавливаешь
> TCP соединение на какой-то хост и, допустим, порт 80, то
> назначаются два порта: твой порт и порт на том конце, и
> оба они не будут равны 80. Поэтому различить разные соединения
> не составляет никакого труда.
Поясните мысль. Просто или я что-то не знаю или вы что-то путаете. :(
Вообще при нате (pate) строится таблица в которой запросу из внутренней сети к внешней ставится в соответствие запрос от машины, реализующей нат, к внешнему ресурсу.
Когда приходит ответ снаружи, то по этой таблице определяется кому его отправить во внутренней сети.
← →
Alex Konshin © (2005-08-09 13:09) [8]Я не про NAT, а вообще про TCP соединение.
NAT же просто организует два соединения в обе стороны: к серверу и к клиенту. Я просто разъяснил, почему не бывает путаницы.
← →
Иксик © (2005-08-09 13:24) [9]
> Alex Konshin © (09.08.05 13:09) [8]
> Я просто разъяснил, почему не бывает путаницы.
И правильно, про этот момент с разными портами не сразу понятно бывает.
Страницы: 1 вся ветка
Текущий архив: 2005.09.04;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.01 c