Поради для всіх
» » NAT - це що таке? Налаштування NAT

NAT - це що таке? Налаштування NAT

Додано: 15.06.16
Автор: admin
Трансляція мережевих адрес (NAT) є способом перепризначення одного адресного простору в інший шляхом зміни інформації мережевих адрес IP (Internet Protocol). Тобто заголовки пакетів змінюються в той час, коли вони знаходяться в дорозі через пристрій маршрутизації трафіку. Цей метод спочатку використовувався для простоти перенаправлення трафіку в IP-мережах без перенумерації кожного хоста. Він став популярним і важливим інструментом для збереження і глобального розподілу адресного простору в умовах нестачі адрес IPv4.


NAT - це що таке? Налаштування NAT

NAT – це що таке?

Оригінальне використання трансляції мережевих адрес полягає у відображенні кожної адреси з одного адресного простору до відповідного адресою в іншому просторі. Наприклад, це необхідно, якщо провайдер інтернет-послуг змінився, а користувач не має можливості публічно оголосити новий маршрут до мережі. В умовах недалекого глобального виснаження IP-адрес простору технологія NAT все частіше використовується з кінця 1990-х років у поєднанні з IP-шифруванням (яке являє собою метод переходу декількох IP-адрес в один простір). Цей механізм реалізований в пристрої маршрутизації, яке використовує таблиці переведення із збереженням стану для відображення прихованих» адрес в один IP-адресу, і перенаправляє вихідні IP-пакети на виході. Таким чином, вони відображаються виходять з пристрою маршрутизації. У зворотному каналі зв'язку відповіді з'являються у вихідному IP-адресу за допомогою правил, які зберігаються в таблицях перекладу. Правила таблиці перекладу, в свою чергу, очищаються після закінчення короткого періоду, якщо новий трафік не оновлює свій стан. Такий основний механізм NAT. Це що означає?


Даний метод дозволяє здійснювати зв'язок через маршрутизатор тільки тоді, коли з'єднання відбувається в зашифрованою мережі, так як це створює таблиці перекладу. Наприклад, веб-браузер всередині такої мережі може переглядати сайт за її межами, але, будучи встановленими поза її, він не може відкрити ресурс, розміщений в ній. Тим не менш більшість пристроїв NAT сьогодні дозволяють адміністратора конфігурувати запису таблиці переведення для постійного використання. Ця функція часто згадується як статична NAT або перенаправлення портів, і вона дозволяє трафіку, що йде на «зовнішню» мережа, досягти призначених хостів в зашифрованою мережі.
NAT - це що таке? Налаштування NAT
Через популярність цього методу, використовуваного з метою збереження адресного простору IPv4 термін NAT (це що таке фактично – зазначено вище) став практично синонімом методу шифрування. Оскільки трансляція мережевих адрес змінює інформацію про адресу IP-пакетів, що це має серйозні наслідки для якості підключення до інтернету і вимагає пильної уваги до деталей його реалізації. Способи застосування NAT відрізняються один від одного в їх конкретному поведінці в різних випадках, що стосуються впливу на мережевий трафік.

Базова NAT

Найпростіший тип Network Address Translation (NAT) забезпечує трансляцію IP-адрес «один-до-одного». RFC 2663 є основним типом даної трансляції. У цьому типі змінюються тільки IP-адреси і контрольна сума IP-заголовка. Основні типи трансляції можна використовувати для з'єднання двох IP-мереж, які мають несумісну адресацію.
NAT - це що таке? Налаштування NAT

NAT – це що у зв'язку «один-до-багатьох»?

Більшість різновидів NAT здатні зіставити кілька приватних хостів до одного публічно позначеному IP-адресою. У типовій конфігурації локальна мережа використовує один з призначених «приватних» IP-адреси підмережі (RFC 1918). Маршрутизатор в цій мережі має власний адресу в цьому просторі. Маршрутизатор також підключається до інтернету за допомогою «публічного» адреси, присвоєного провайдером. Так як трафік проходить з локальної мережі в Інтернет, адреса джерела в кожному пакеті перекладається на льоту з приватного адреси в публічний. Маршрутизатор відстежує основні дані про кожному активному з'єднанні (зокрема, адресу і порт призначення). Коли відповідь повертається до нього, він використовує дані сполуки, які зберігаються під час виїзного етапу, щоб визначити приватний адресу внутрішньої мережі, до якого слід надіслати відповідь. Одним з переваг цього функціоналу є те, що він служить практичним рішенням насувається, вичерпання адресного простору IPv4. Навіть великі мережі можуть бути підключені до Інтернету за допомогою одного IP-адреси.
NAT - це що таке? Налаштування NAT
Всі дейтаграми пакетів IP-мережах мають 2 IP-адреси – вихідний і пункту призначення. Як правило, пакети, що проходять з приватної мережі до мережі загального користування, будуть мати адреса джерела пакетів, що змінюється під час переходу від публічної мережі назад до приватної. Більш складні конфігурації також можливі.

Особливості

Налаштування NAT може мати деякі особливості. Щоб уникнути труднощів на те, як перевести повернені пакети, потрібні подальші модифікації. Переважна більшість інтернет-трафіку йде через протоколи TCP і UDP, і їх номери портів змінюються таким чином, що поєднання IP-адреси і номера порту при зворотному напрямі даних починає збігатися.
Протоколи, не засновані на TCP і UDP, вимагають інших методів перекладу. Протокол управління повідомленнями в мережі Інтернет (ICMP), як правило, співвідносить передаються дані з існуючим з'єднанням. Це означає, що вони повинні бути відображені з використанням того ж IP-адреси і номери, встановленого спочатку.

Що потрібно враховувати?

Налаштування NAT в роутері не дає йому можливості з'єднання «з кінця в кінець». Тому такі маршрутизатори не можуть брати участь у деяких інтернет-протоколах. Послуги, які вимагають ініціації TCP-з'єднань від зовнішньої мережі або користувачів без протоколів, можуть бути недоступні. Якщо маршрутизатор NAT не робить особливих зусиль для підтримки таких протоколів, вхідні пакети не можуть дістатися до місця призначення. Деякі протоколи можуть розміститися в одній трансляції між що беруть участь хостами («пасивний режим FTP, наприклад), іноді з допомогою шлюзу прикладного рівня, але з'єднання не буде встановлено, коли обидві системи відокремлені від мережі Інтернет з допомогою NAT. Використання трансляції мережевих адрес також ускладнює такі «тунельні» протоколи, як IPsec, оскільки вона змінює значення в заголовках, які взаємодіють з перевірками цілісності запитів.
NAT - це що таке? Налаштування NAT

Існуюча проблема

З'єднання «з кінця в кінець» є основним принципом інтернету, які існують з моменту його розробки. Поточний стан мережі показує, що NAT є порушенням цього принципу. У фахівців існує серйозна заклопотаність у зв'язку з повсюдним використанням в IPv6-трансляції мережевих адрес, і піднімається проблема про те, як ефективно її усунути. З-за недовговічною природи таблиць, що зберігають стан трансляції в маршрутизаторах NAT, пристрої внутрішньої мережі втрачають IP-з'єднання, як правило, протягом дуже короткого періоду часу. Говорячи про те, що таке NAT в роутері, не можна забувати про цю обставину. Це серйозно скорочує час роботи компактних пристроїв, що працюють на батарейках і акумуляторах.

Масштабованість

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

Деякі складності

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

Port Address Translation (PAT)

Реалізацією Cisco Rapt є Port Address Translation (PAT), який відображає кілька приватних IP-адрес у вигляді одного публічного. Кілька адрес можуть бути відображені як адресу, тому що кожен з них відслідковується за допомогою номера порту. PAT використовує унікальні номери портів джерела на внутрішньому глобальному IP, щоб розрізняти напрям передачі даних. Такими номерами є 16-розрядні цілі числа. Загальна кількість внутрішніх адрес, які можуть бути переведені на один зовнішній, теоретично може досягати 65536. Реальне ж кількість портів, на які може бути призначено єдину IP-адресу, становить близько 4000. Як правило, PAT намагається зберегти вихідний порт «оригіналу». Якщо він вже використовується, Port Address Translation призначає перший доступний номер порту, починаючи з початку відповідної групи - 0-511512-1023 або 1024-65535. Коли більше немає доступних портів і є більш ніж один зовнішній IP-адресу, PAT переходить до наступного, щоб спробувати виділити вихідний порт. Цей процес продовжується до тих пір, поки не закінчаться доступні дані. Відображення адреси і порту здійснюється службою Cisco, яка поєднує в собі адресу порту перекладу з даними тунелювання пакетів IPv4 по внутрішній мережі IPv6. По суті справи, це неофіційна альтернатива CarrierGrade NAT і DS-Lite, яка підтримує IP-трансляції адрес/портів (і, отже, підтримується налаштування NAT). Таким чином, це дозволяє уникнути проблем у встановленні і підтримці з'єднання, а також забезпечує механізм переходу для розгортання IPv6.
NAT - це що таке? Налаштування NAT

Методи перекладу

Існує декілька способів реалізації перекладу мережевої адреси і порту. У деяких прикладних протоколах, які використовують програми по роботі з IP-адресами, які працюють в зашифрованою мережі, необхідно визначити зовнішній адреса NAT (який використовується на іншому кінці з'єднання), і, крім того, часто необхідно вивчити і класифікувати тип передачі. Зазвичай це робиться тому, що бажано створити прямий канал зв'язку (або зберегти безперебійну передачу даних через сервер, або ж для підвищення продуктивності) між двома клієнтами, обидва з яких знаходяться за окремими NAT. Для цієї мети (як налаштувати NAT) у 2003 році був розроблений спеціальний протокол RFC 3489 що забезпечує простий обхід UDP через NATS. На сьогоднішній день він є застарілим, оскільки такі методи в наші дні є недостатніми для правильної оцінки роботи багатьох пристроїв. Нові методи були стандартизовані в протоколі RFC 5389 який був розроблений в жовтні 2008 року. Ця специфікація сьогодні носить назву SessionTraversal і являє собою утиліту для роботи NAT.

Створення двостороннього зв'язку

Кожен пакет TCP і UDP містить IP-адресу джерела і номер порту, а також координати порту призначення. Для отримання таких загальнодоступних послуг, як функціонал поштових серверів, номер порту має важливе значення. Наприклад, порт 80 підключається до програмного забезпечення веб-сервера, а 25 - до поштового сервера SMTP. IP-адреса загальнодоступного сервера також має істотне значення, подібне поштовою адресою або номером телефону. Обидва параметри повинні бути достовірно відомі всім вузлам, які мають намір встановити з'єднання. Приватні IP-адреси мають значення тільки в локальних мережах, де вони використовуються, а також для хост-портів. Порти є унікальними кінцевими точками зв'язку на хості, тому з'єднання через NAT підтримується з допомогою комбінованого картування порта і IP-адреси. РАТ (Port AddressTranslation) вирішує конфлікти, які можуть виникнути між двома різними хостами, що використовують один і той же номер порту джерела для встановлення унікальних підключень одночасно.