'ютерам присвоюються адреси з зарезервованого для приватного використання діапазону IP-адрес. Приватне адресний простір регламентується документом RFC 1918. До таких адресами відносяться наступні IP-діапазони: 10.0.0.0-10.255.255.255, 172.16.0.0-172.31.255.255, 192.168.0.0-192.168.255.255.
Для того щоб зрозуміти, чому встановлення з'єднання між комп'ютером локальної мережі, захищеної маршрутизатором, і комп'ютером в Інтернеті (із зовнішнім IP-адресою) або з комп'ютерами з різних локальних мереж, захищених маршрутизаторами, може викликати проблеми, необхідно ознайомитися з особливостями функціонування протоколу NAT.
Насамперед, розглянемо, як відбувається мережеве з'єднання між двома ПК.
Коли один комп'ютер мережі встановлює з'єднання з іншим комп'ютером, відкривається сокет, який визначається IP-адресою джерела, портом джерела, IP-адресою призначення, портом призначення і мережевим протоколом. Формат IP-пакета передбачає двухбайтовое поле для номерів портів. Це дозволяє визначити 65535 портів, які відіграють роль своєрідних каналів зв'язку. З 65535 портів першого +1023 зарезервовані для добре відомих серверних сервісів, таких як web, FTP, Telnet і т.д. Всі інші порти можуть застосовуватися для будь-яких інших цілей.
Якщо, приміром, один мережевий комп'ютер звертається до FTP-сервера (порт 21), то при відкритті сокета операційна система привласнює сесії будь-який порт вище 1023. Наприклад, це може бути порт 2153. Тоді IP-пакет, що відправляється з боку ПК до FTP-сервера, міститиме IP-адреса відправника, порт відправника (+2153), IP-адреса одержувача і порт призначення (21). IP-адресу та порт відправника будуть використовуватися для відповіді сервера клієнтові. Застосування різних портів для різних мережевих сесій дозволяє клієнтам мережі одночасно встановлювати кілька сесій з різними серверами або з сервісами одного сервера.
Тепер розглянемо процес встановлення сесії при використанні маршрутизатора на кордоні внутрішньої мережі та Інтернету. Коли клієнт внутрішньої мережі встановлює зв'язок з комп'ютером зовнішньої мережі, відкривається сокет, який визначається IP-адресою джерела, портом джерела, IP-адресою призначення, портом призначення і мережевим протоколом. Коли додаток передає дані через цей сокет, IP-адреса джерела і порт джерела вставляються в пакет в поля параметрів джерела. Поля параметрів пункту призначення будуть містити IP-адреса одержувача і порт одержувача. Приміром, комп'ютер внутрішньої мережі з IP-адресою 192.168.0.1 може звернутися до web-серверу Глобальної мережі з IP-адресою 64.233.188.104. У цьому випадку операційна система клієнта може призначити встановленої сесії порт тисяча двісті п'ятьдесят-один (порт джерела), а порт призначення - це порт web-сервісу, тобто 80. Тоді в заголовку відправляється пакету будуть вказані наступні атрибути (рис. 1):
Малюнок 1. - Принцип роботи маршрутизатора при передачі пакета. Примітка: [складено автором]
адреса джерела - 192.168.0.1;
порт джерела - 1251; адреса одержувача - 64.233.183.104;
порт одержувача - 80;
протокол - TCP.
Пристрій NAT (маршрутизатор) перехоплює витікаючий з внутрішньої мережі пакет і заносить в свою внутрішню таблицю зіставлення портів джерела і одержувача пакету, використовуючи IP-адресу призначення, порт призначення, зовнішній IP-адресу пристрою NAT, зовнішній порт , мережевий протокол, а також внутрішні IP-адресу та порт клієнта.
Припустимо, що в розглянутому вище прикладі NAT-маршрутизатор має зовнішній IP-адреса 195.2.91.103 (адреса WAN-порту), а для встановленої сесії зовнішній порт NAT-пристрої - 3210. У цьому випадку внутрішня таблиця зіставлення портів джерела і одержувача пакету містить наступну інформацію: адреса джерела - 192.168.0.1;
порт джерела - 1251;
зовнішній IP-адрес NAT-пристрої - 195.2.91.103;
зовнішній порт NAT-пристрої - 3210; адреса одержувача - 64.233.183.104;
порт одержувача - 80;
протокол - TCP.
Потім пристрій NAT «транслює» пакет, перетворюючи в пакеті поля джерела: внутрішні IP-адресу та порт клієнта замінюються зовнішніми IP-адресою і портом пристрою NAT. У розглянутому прикладі перетворений пакет буде містити наступну інформацію: адреса джерела - 195.2.91.103;
порт джерела - 3210; адреса одержувача - 64.233.183.104;
порт одержувача - 80;
протокол - TCP.
Перетворений пакет пересилається за зовнішньої мережі і в підсумку потрапляє на заданий сервер.
Отримавши пакет, сервер буде направляти ві...