NAT
NAT(від англ.Network Address Translation— «перетворення мережевих адрес») — це механізм умережахTCP/IP,котрий дозволяє змінюватиIP-адресуу заголовкупакету,що проходить черезпристрій маршрутизаціїтрафіку. Також має назвиIP Masquerading,Network MasqueradingіNative Address Translation.
Перетворення адреси методом NAT може виконувати майже будь-якиймаршрутизаційнийпристрій —маршрутизатор[1],сервер доступу,міжмережевий екран(фаєрвол). Найпопулярнішим є SNAT, суть механізму котрого полягає в заміні адреси джерела (англ.source) при проходженні пакета в один бік і зворотній заміні адреси призначення (англ.destination) у зворотному пакеті. Поряд з адресами джерела/призначення можуть також замінюватися номерипортівджерела і призначення.
Приймаючи пакет від локального комп'ютера, роутер переглядає IP-адресу призначення. Якщо це локальна адреса, то пакет пересилається іншому локальному комп'ютерові. Якщо ні, то пакет слід переслати назовні до інтернету. Але зворотною адресою в пакеті вказано локальну адресу комп'ютера, котра з інтернету буде недоступна. Тому роутер «на льоту» транслює (підміняє) зворотну IP-адресу пакета на свою зовнішню (видиму з інтернету) IP-адресу, а також міняє номер порту (щоб розрізняти зворотні пакети, адресовані різним локальним комп'ютерам). Комбінацію, потрібну для зворотної підстановки, роутер зберігає в себе у тимчасовій таблиці. Через деякий час після того, як клієнт і сервер закінчать обмінюватися пакетами, роутер зітре зі своєї таблиці застарілий запис про n-м порт.
Окрім source NAT (надання користувачам локальної мережі звнутрішніми адресамидоступу до мережіІнтернет) часто застосовується також destination NAT, коли трафік ззовні транслюєтьсяміжмережевим екраномна комп'ютер користувача улокальній мережі,котрий має внутрішню адресу і тому недоступний ззовні мережі безпосередньо (без NAT).
Існує 3 базових концепції трансляції адрес: статична (Static Network Address Translation), динамічна (Dynamic Address Translation), перевантажена (NAPT, NAT Overload, PAT).
Статичний NAT— відображення незареєстрованої IP-адреси на зареєстровану IP-адресу на основі один до одного. Особливо корисно, коли пристрій повинен бути доступним зовні мережі.
Динамічний NAT— відображує незареєстровану IP-адресу на зареєстровану адресу з групи зареєстрованих IP-адрес. Динамічний NAT також встановлює безпосереднє відображення між незареєстрованими і зареєстрованими адресами, але відображення може мінятись в залежності від зареєстрованої адреси, доступної у купі адрес, під час комунікації.
Перевантажений NAT(NAPT, NAT Overload, PAT, маскарадинг) — форма динамічного NAT, котрий перетворює декілька незареєстрованих адрес у єдину зареєстровану IP-адресу, використовуючи різноманітні порти. Відомий також якPAT(Port Address Translation). При перевантаженні кожен комп'ютер у приватній мережі транслюється у ту ж саму адресу, але з різним номером порту.
Механізм NAT визначений уRFC 1631,RFC 3022.
Класифікація NAT, часто зустрічається у зв'язку зVoIP.[2]Термін «з'єднання» використаний у значенні «послідовний обмін пакунками UDP».
Симетричний NAT(Symmetric NAT) — трансляція, при якій кожне з'єднання, ініційоване парою «внутрішня адреса: внутрішній порт» перетворюється у вільну унікальну, випадково вибрану пару «публічна адреса: публічний порт». При цьому, ініціація з'єднання з публічної мережі неможлива.
Cone NAT, Full Cone NAT— однозначна (взаємна) трансляція між парами «внутрішня адреса: внутрішній порт» і «публічна адреса: публічний порт». Кожен зовнішній хост може ініціювати з'єднання з внутрішнім хостом (якщо це дозволене у правилах міжмережевого екрана (брандмауера).
Address-Restricted cone NAT, Restricted cone NAT— постійна трансляція між парою «внутрішня адреса: внутрішній порт» і «публічна адреса: публічний порт». Кожне з'єднання, ініційоване з внутрішньої адреси, дозволяє надалі отримувати йому пакети з будь-якого порту того публічного хоста, до якого він відправляв пакет(ти) раніше.
Port-Restricted cone NAT— трансляція між парою «внутрішня адреса: внутрішній порт» і «публічна адреса: публічний порт», при якій пакети що надходять до внутрішнього хосту тільки з одного порту публічного хоста — того, на котрий внутрішній хост вже відправляв пакет.
NAT виконує три важливі функції.
- Дозволяє заощаджуватиIP-адреси (тільки у разі використання NAT у режимі PAT), транслюючи декілька внутрішніх IP-адрес в одну зовнішню публічну IP-адресу (або у декілька, але все ж в меншу кількість, ніж внутрішніх). За таким принципом побудована більшість мереж у світі: на невеликий район домашньої мережі місцевого провайдера або на офіс виділяється одна публічна (зовнішня) IP-адреса, за котрою працюють і отримують доступ інтерфейси з приватними (внутрішніми)IP-адресами.
- Дозволяє запобігти або обмежитиобіг ззовні до внутрішніх хостів, залишаючи можливість обігу зсередини назовні. При ініціації з'єднання зсередини мережі створюється трансляція. Відповідні пакети, які надходять зовні, відповідають створеній трансляції і тому пропускаються. Якщо для пакетів, які надходять ззовні, відповідної трансляції не існує (а вона може бути створеною при ініціації з'єднання або статичною), вони не пропускаються.
- Дозволяє приховативизначені внутрішні сервіси внутрішніх хостів/серверів. По суті, виконується та ж, вказана вище, трансляція на визначений порт, але можна підмінити внутрішній порт офіційно зареєстрованої служби (наприклад, 80-йпортTCP(HTTP-сервер) на зовнішній 54055-й). Тим самим, зовні, на зовнішній IP-адресі після трансляції адрес на сайт (або форум) для обізнаних відвідувачів можна буде потрапити за адресою http://example.org:54055, але на внутрішньому сервері, який знаходиться за NAT, він буде працювати на звичайному 80-му порту. Підвищення безпеки і приховування «непублічних» ресурсів.
- Старі протоколи.Протоколи, розроблені до масового впровадження NAT, не в змозі працювати, якщо на шляху між взаємодіючимихостамиє трансляція адрес. Деякі міжмережеві екрани, які здійснюють трансляцію IP-адрес, можуть виправити цей недолік, відповідним чином замінюючи IP-адреси не тільки в заголовках IP, але і на більш високих рівнях (наприклад, в командах протоколуFTP). Див.Application-level gateway[en].
- Ідентифікація користувачів.Через трансляції адрес «багато в один» з'являються додаткові складнощі з ідентифікацією користувачів і необхідність зберігати повні логи трансляцій.
- Ілюзія DoS-атаки.Якщо NAT використовується для підключення багатьох користувачів до одного і того ж сервісу, це може викликати ілюзіюDoS-атакина сервіс (безліч успішних і неуспішних спроб). Наприклад, надмірна кількість користувачівICQза NAT приводить до проблеми з підключенням до сервера деяких користувачів через перевищення допустимої швидкості підключень. Частковим вирішенням проблеми є використання пулу адрес (групи адрес), для яких здійснюється трансляція.
- Пірингові мережі.У NAT-пристроях, які не підтримуютьUniversal Plug & Play,в деяких випадках, необхідна додаткова настройка (див.Трансляція порт-адреси) при роботі зпіринговими мережамиі деякими іншими програмами, в яких необхідно не тільки ініціювати вихідні з'єднання, але також приймати вхідні...
Трансляціялокальноїмережі з діапазоном адрес 172.16.14.0/24 у глобальну мережу буде здійснюватися через одну зовнішню IP-адресу (адресу маршрутизатора, котра виконує трансляцію).
Сенс технологіїNAT loopback(абоNAT hairpinning) простий: якщо пакет надходить з внутрішньої мережі на зовнішню IP-адресу маршрутизатора, він вважається надійшовшим ззовні — а значить, працюють правила брандмауера, що відносяться до зовнішніх з'єднань. І якщо пакет успішно пройде крізь брандмауер, спрацює NAT, взявши на себе посередництво між двома внутрішньомережевими машинами. Це дає дві речі
- Прямо зсередини локальної мережі можна перевірити, як налаштовані мережеві служби.
- Доступ до сервера, що знаходиться в локальній мережі, по доменному імені. Без NAT loopback довелося б правити файлhostsна кожній машині для кожного задіяного домену та піддомену.
Недоліком NAT loopback можна вважати підвищене навантаження на хаб і маршрутизатор (в порівнянні з прямим доступом до серверу).
NAT Traversal (проходження або автоналаштування NAT) — це набір можливостей, що дозволяє мережевим додаткам визначати, що вони перебувають за пристроєм, забезпеченим NAT, дізнаватися зовнішню IP-адресу цього пристрою і виконувати зіставлення портів для пересилання пакунків з зовнішнього порту NAT на внутрішній порт, використовуваний додатком; все це виконується автоматично, користувачу немає необхідності вручну налаштовувати співставлення портів або вносити зміни у будь-які інші параметри. Однак існують запобіжні заходи у довірі до таких додатків — вони отримують широкий контроль над пристроєм, з'являються потенційні вразливості.
При наявності вже існуючого сервера під управлінням серверноїОСможливо організовувати трансляцію адрес без необхідності закупівлі додаткових, апаратних пристроїв.
З точки зору відмовостійкості, гнучкості і продуктивності, використовують операційні системи сімействаUNIX(більшість GNU/Linux, BSD-системи, а такожOpenSolarisі т. ін.). У багатьох з них NAT доступний «з коробки», в інших можлива реалізація за рахунок додавання модулів у поєднанні зміжмережевими екранамиз функціями трансляції адрес (IPFW,IPtables#і т. ін.). Також, NAT працює «з коробки» у сімействі операційних системWindows Server.
- ↑Network Protocols Handbook. — 2. — Javvin Technologies Inc. — С. 27. —ISBN 9780974094526.
- ↑Андрей Жуков.Типы Network Address Translation (NAT)[Архівовано8 травня 2020 уWayback Machine.]
Ця статтяпотребує додатковихпосилань на джереладля поліпшення їїперевірності. |