PAT

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Port Address Translation (PAT) — це можливість мережевих пристроїв, яка транслює TCP або UDP зв'язки, встановлені між хостами в приватній мережі та хостами в публічній мережі. Вона дає можливість одиничній публічній IP-адресі бути використаною багатьма хостами в приватній мережі, яка зазвичай є LAN (Local Area Network).

Пристрій PAT прозоро змінює IP пакети, коли вони проходять через нього. Ці зміни роблять всі пакети, які надіслані назовні (в публічну мережу), з багатьох хостів в приватній мережі такими, наче вони виходять в публічну мережу від одиничного хоста (пристрою PAT).

Зв'язки між NAT та PAT[ред. | ред. код]

PAT є підмножиною NAT, і є тісно пов'язана з концепцією NAT. PAT також відомий, як NAT Overload. В PAT загалом тільки одна експонована публічно IP-адреса і багато приватних (внутрішніх) хостів, з'єднаних через експоновану адресу. Вхідні пакети з відкритої мережі маршрутизуються до своїх призначень у внутрішній мережі за посиланнями в таблиці, збереженій всередині пристрою PAT, який відстежує внутрішні і зовнішні пари портів.

Коли відбувається трансляція PAT, і приватна адреса IP, і номер порта відсилача модифікуються; пристрій PAT вибирає номери портів, які будуть видимі хостам зовнішньої мережі. В такий спосіб PAT оперує і на рівні 3 (мережевий), і на — 4 (транспортний), моделі OSI, тоді як базовий NAT оперує тільки на рівні 3.

Імплементації PAT[ред. | ред. код]

Встановлення двостороннього зв'язку[ред. | ред. код]

Кожен TCP або UDP пакет містить і IP-адресу джерела, і номер порта джерела, так само як і IP-адресу призначення і номер порта призначення. Пара адреса порта/IP-адреса формують так званий сокет (socket). Таким чином, IP джерела та порт джерела формують сокет джерела.

Для загальнодоступних сервісів, таких як веб-сервери або поштові сервери, номер порта є важливим. Наприклад, порт 80 прив'язується до веб-серверного ПЗ, а порт 25 — до SMTP процеса поштового сервера. IP публічного сервера також важлива, і схожа на унікальну на глобальному рівні поштову адресу чи телефонний номер. І IP, і порт мають бути точно відомими всім хостам, які бажають успішно взаємодіяти.

Внутрішні IP, як описано в RFC 1918 мають значення тільки всередині приватної мережі, де вони використовуються, і те саме стосується портів цих хостів. Порти — це унікальні кінцеві точки взаємодії в хості, тож з'єднання через пристрій PAT підтримується комбінованим відображенням портів та IP адрес.

PAT вирішує конфлікти які можуть виникнути через два різні хости, що використовуватимуть однаковий порт джерела для встановлення унікального з'єднання в один і той же час.

Аналогії PAT[ред. | ред. код]

Пристрій PAT є схожий на секретаря в офісі, який має один зовнішній телефонний номер. Всі вихідні дзвінки, зроблені з офісу, будуть з одного номера. Однак, вхідні дзвінки мають бути передані на правильне внутрішнє продовження оператором, який запитуватиме дозвонювача, з ким він хоче балакати; до цих офісних розгалужень не можна під'єднатися ззовні прямо.

Трансляція кінцевої точки[ред. | ред. код]

З PAT, всі пакети направлені до зовнішніх хостів, насправді містять зовнішні IP та інформацію про порт пристрою PAT замість IP чи порту внутрішніх хостів.

  • Коли комп'ютер внутрішньої мережі надсилає пакет в зовнішню мережу, пристрій PAT змінює внутрішню IP адресу в полі джерела заголовка пакету (адреса відправника) на зовнішню IP адресу пристрою PAT. Тоді він призначає з'єднанню номер порту з пулу доступних портів, вставляє цей номер в поле порту джерела (більш за все схоже на номер поштової скриньки), і передає пакет в зовнішню мережу. Пристрій PAT далі робить запис в таблиці трансляцій, яка містить внутрішні IP-адреси, оригінальні порти джерел, та переданий порт джерела. Послідовні пакети з того самого з'єднання передаються на тому самому порті.
  • Комп'ютер, який отримує пакет, що зазнав змін PAT, встановлює з'єднання з портом і IP-адресою, призначеною в цьому зміненому пакеті, незважаючи на факт, що отримана адреса є зміненою (аналогічно до використання номера поштової скриньки).
  • Пакет, який прийшов з зовнішньої мережі, відображається відповідно до внутрішньої IP-адреси, та номера порту, з таблиці трансляцій, заміною зовнішньої IP-адреси та номера порту у заголовку вхідного пакету (схоже до трансляції з номера поштової скриньки в адресу вулиці). Потім пакет передається далі всередину мережі (внутрішньої). З іншого боку, якщо порт призначення вхідного пакету не знайдено в таблиці трансляцій, пакет відкидається, бо пристрій PAT не знає, куди його відсилати.

PAT тільки транслює IP-адреси та порти своїх внутрішніх хостів, ховаючи дійсний кінцевий пункт, внутрішній хост у приватній мережі, і беручи цю роль на себе при взаємодії з зовнішньою мережею.

Видимість операцій[ред. | ред. код]

Операції PAT зазвичай прозорі і для внутрішніх, і для зовнішніх хостів.

Як правило, внутрішні хости знають справжню IP-адресу та TCP чи UDP порти зовнішніх хостів. Також пристрій PAT може функціонувати як шлюз за замовчуванням для внутрішніх хостів. Однак зовнішні хости знатимуть тільки публічну IP-адресу пристрою PAT та конкретний порт, використаний для зв'язку від іменi конкретного внутрішнього хоста.

Використання PAT[ред. | ред. код]

Програмні брандмауери (фаєрволи) та пристрої широкосмугового мережевого доступу (напр. ADSL роутери) є прикладами мережевих технологій, що можуть містити реалізацію PAT. Коли конфігуруються ці пристрої, зовнішня мережа є Інтернет, а внутрішня мережа є LAN.

Приклад PAT[ред. | ред. код]

Хост на IP-адресі 192.168.0.2 у внутрішній мережі може запитатися з'єднання з віддаленим хостом в зовнішній мережі. Початковий пакет дасть адресу 192.168.0.2:15345. Пристрій PAT (вважатимемо його публічну IP-адресу 1.2.3.4) може довільно транслювати цю пару адреса:порт джерела в наприклад 1.2.3.4:16529, роблячи запис в своїй внутрішній таблиці, що порт 16529 використовується для з'єднання хостом 192.168.0.2 приватної мережі. Коли пристрій PAT отримує пакет з зовнішньої мережі для адреси 1.2.3.4:16529, він передається на 192.168.0.2:15345 згідно з записами таблиці трансляцій.

Вигоди PAT[ред. | ред. код]

На додаток до переваг NAT, PAT дозволяє багатьом внутрішнім хостам розділяти одну IP-адресу.

Недоліки PAT[ред. | ред. код]

  • Масштабованість. Багато хостів приватної мережі роблять багато з'єднань з зовнішньою мережею. Оскільки доступна тільки обмежена кількість номерів для портів, пристрій PAT може зрештою мати недосить місця в таблиці трансляції. Хоча доступні тисячі портів, і вони швидко вивільнюються для нового використання, деякі мережеві зв'язки забирають багато портів майже одночасно, в одну логічну транзакцію (HTTP запити для вебсторінок з багатьма вбудованими об'єктами, деякі VoIP застосунки). Достатньо великі мережі LAN, які часто мають саме такий трафік, можуть періодично з'їдати всі доступні порти.
  • Складність з фаєрволами. Через те, що внутрішні адреси всі є приховані за однією публічно доступною адресою, є неможливо для зовнішніх машин ініціювати з'єднання з конкретною машиною всередині, без спеціального налаштування в брандмауері, для передавання з'єднання на конкретний порт. Це значно впливає на застосунки такі як VOIP, відеоконференції, та інші peer-to-peer застосунки.

Див. також[ред. | ред. код]

Зовнішні посилання[ред. | ред. код]