По-малко известни операционни подробности NAT (Cisco), блог

Преобразувателят наистина спасение за системния администратор, когато трябва бързо да се свърже с интернет LAN. Но ако всичко, което знаете за него?

NAT и неговото прилагане

Така NAT съответствия маса, всеки запис се състои от две стойности - IL и IG.

По-често случай - това NPAT, мрежов порт и адрес превод. При използване NPAT в таблицата за преобразуване, всеки запис има две (както в прост NAT) и пет стойности:

Исторически погледнато, той е бил негов, обикновено имат предвид, когато ние използваме термина "NAT", и за него и ще говорим в бъдеще, поради разпространението му.

До сега, това е добре познат неща. Въпреки това, ако се вгледате в NAT-близо, възникват нови въпроси. Да вземем един прост мрежа с един компютър и рутер, който изпълнява NAT. рутер модел в този случай не е твърде важно - например, това е отдавна е остаряла, но все още е популярен Cisco 1601R (виж фигура 2 ..).

Фигура 2. Пример на мрежа с NAT


!
. Последна промяна на конфигурацията в 09:29:45 UTC някой ден от TheAllmightyMaster
. NVRAM конфигурационния Последно обновяване в 19:27:46 UTC някой друг ден от TheAllmightyMaster
!
версия 12.2
...
интерфейс Serial0
IP адрес 11.22.33.44 255.255.255.252
IP Нат извън
...
интерфейс Ethernet0
IP адрес 192.168.0.1 255.255.255.0
IP Нат вътре
...
IP Нат вътре списък източник MyNetwork интерфейс Serial0 претоварване
...
IP достъп списък удължен MyNetwork
разрешително IP 192.168.0.0 0.0.0.255 всеки

В резултат на това в NAT таблицата ще бъде приблизително записа:

Прото Вътре глобалната Вътре местно Извън местно Извън глобалната
UDP 11.22.33.44:1053 192.168.0.141:1053 1.2.3.4:53 1.2.3.4:53

Между другото - добре, да кажем, че няма такова приложение, като че ли е? Както е добре известно на потребителите на програми като съревновавам и eDonkey, те изискват да бъде предоставена възможност свободно да получите UDP пакети с дестинация порт 4661 или 4242, или 4321 - точния брой пристанище зависи от настройките. И това също е добре известно, че техните потребители, тези програми не работят добре, да бъдат изстреляни от локална мрежа зад NAT. Така че, може да се случи, отчасти защото, въпреки успешното създаване на локален клиент връзки към сървъра, поради естеството на конкретното прилагане на NAT други клиенти, които са във външния свят, не може да се установи връзка с локален клиент.

По същата причина, той не може да работи DCC чат в IRC клиент, трансфер на файлове по ICQ и такива неща, които изискват безпрепятствено придвижване на пакети директно между компютъра на потребителя.

По този начин, отговаряйки на въпроса: "Трябва ли да получите множество 192.168.0.141 пакет, насочен към 11.22.33.44 от чуждестранната приемаща" - може да се получи, или може би не; отговорът на този въпрос зависи от изпълнението на NAT на граничния маршрутизатор.

Внедрявания, тъй като има четири:

Фигура 3. алгоритъм на STUN

това бягане и уточняване като параметър на командния ред на една от публичния STUN сървър на, вие ще знаете типа на вашата NAT:


C: \> Client.exe stun.xten.com
STUN клиент версия 0.94
...
Основно: Пълен Cone Нат, случаен порт, не фиба
Върната стойност е 0x9

Горният резултат е постигнат на компютър зад рутера ZyXEL Prestige 645R.

Резултат за Cisco 1721 маршрутизатор IOS версия 12.2, от своя страна, тя изглежда така:

C: \> Client.exe stun.xten.net
STUN клиент версия 0.94
...
Основно: Port Restricted Нат, запазва пристанища, без фиба
Върната стойност е 0x1B

Същият резултат се получава за рутера конструирана на базата на FreeBSD 4.9, при което NAT извършва демон natd.

Остава да обясни какво «случаен порт», «запазва пристанища» и «не» фиба в горните резултати.

Погледнете отново линията от NAT таблицата в нашия пример:

Прото Вътре глобалната Вътре местно Извън местно Извън глобалната
UDP 11.22.33.44:1053 192.168.0.141:1053 1.2.3.4:53 1.2.3.4:53

Както можете да видите, нашият рутер се опитва да запази същия брой порт (11.22.33.44:1053 и 192.168.0.141:1053), от което следва, че започна в неговата локална мрежа STUN-клиент да бъде информиран за това «запазва пристанища». Между другото, FreeBSD, този резултат се постига чрез бутона «-same_ports» или «-s» до началото на линията или natd конфигурация демон файла.

Отговорът на този въпрос зависи от това дали рутера поддържа функция «фиба» или не поддържа. Ако той го поддържа, пакетът ще бъде обработена по обичайния начин, и (ако рутера се използва прилагане на NAT Пълен Cone или Port с ограничения) стига до местоназначението - на 192.168.0.141 домакин. Ако не ( «не фиба»), пакетът ще бъде унищожена от рутера. Функция име «фиба» (фиба) произлиза от факта, че, ако такъв пакет да представлява преминаването на фигурата, формата на пътя ще бъде подобен на U-образна игла. Друго обяснение - думата "фибата" се превежда по същия начин, като "180-градусов завой." Поддържани рутер функция «фиба» попадащи под действието на своите пакети, наистина, да се завърта на 180 градуса и се изпраща обратно към WLAN.

NAT шлюзове и приложения

За съжаление, не всички мрежови протоколи взаимодействие с NAT безболезнено. Най-честият пример - е FTP. Има две възможни случаи.

Фигура 4. Пример на FTP сесия

Проблемът тук възниква, когато клиентът се опитва да използва активен режим FTP. Сесията се провежда по същото време, както следва. В един момент на връзката контрол на сървъра е прехвърлен FTP-клиент команда: PORT 192,16,0,101,4,211.

Допълнителна диалоговия изглежда така:

Сървър: 200 PORT команда успешно. Помислете за използване PASV.
Клиент: RETR file.zip
Сървър: 150 Откриване двоичен режим връзка за данни за file.zip (1,334,109 байта).

За борба проблем е описано превключване на сървъра може да се използва в така наречените пасивен режим. Тъй като в този режим, инициаторът изпълнява клиентски връзка за данни, проблемът изчезва. Ето защо Microsoft Internet Explorer, както и конзола в FTP-клиент, вграден в Windows, използвайте пасивен режим по подразбиране (те се вмъкват автоматично в предната част на командата RETR и командата PASV NLST, смяна на сървъра в пасивен режим).

ALG подобна функционалност в маршрутизатори на базата на Linux OS осигуряване на допълнителни товарни модули и петна на ядрото (като ip_masq_ftp, ip_masq_irc и така нататък. Н.).

Сподели този линк: