logo

Трансляція мережевих адрес (NAT)

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

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

hashset проти hashmap

Якщо в NAT закінчаться адреси, тобто в налаштованому пулі не залишиться жодної адреси, пакети буде відкинуто, і до місця призначення буде надіслано пакет протоколу контрольних повідомлень Інтернету (ICMP).



Навіщо маскувати номери портів?
Припустимо, що в мережі з’єднані два хости A і B. Тепер обидва вони запитують одне й те саме призначення, на той самий номер порту, скажімо, 1000, на стороні хоста, одночасно. Якщо NAT виконує лише трансляцію IP-адрес, тоді, коли їхні пакети надходять до NAT, обидві їхні IP-адреси маскуються загальнодоступною IP-адресою мережі та надсилаються до пункту призначення. Пункт призначення надсилатиме відповіді на публічну IP-адресу маршрутизатора. Таким чином, отримавши відповідь, для NAT буде незрозуміло, яка відповідь якому хосту належить (оскільки номери вихідних портів для A і B однакові). Отже, щоб уникнути такої проблеми, NAT також маскує номер вихідного порту та робить запис у таблиці NAT.

Внутрішні та зовнішні адреси NAT –
Всередині посилається на адреси, які потрібно перекласти. Зовні – це адреси, які не контролюються організацією. Це мережеві адреси, у яких буде виконано переклад адрес.

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

Типи трансляції мережевих адрес (NAT) –
Існує 3 способи налаштування NAT:

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

    Припустимо, якщо є 3000 пристроїв, яким потрібен доступ до Інтернету, організація повинна купити 3000 публічних адрес, що буде дуже дорого.
    Динамічний NAT – у цьому типі NAT незареєстрована IP-адреса перетворюється на зареєстровану (загальнодоступну) IP-адресу з пулу загальнодоступних IP-адрес. Якщо IP-адреса пулу невільна, то пакет буде відкинуто, оскільки лише фіксована кількість приватних IP-адрес може бути перетворена на публічні адреси.

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

Переваги NAT –

  • NAT зберігає офіційно зареєстровані IP-адреси.
  • Це забезпечує конфіденційність, оскільки IP-адреса пристрою, який надсилає та отримує трафік, буде прихована.
  • Усуває перенумерацію адрес, коли мережа розвивається.

Недолік NAT –

  • Трансляція призводить до затримок шляху перемикання.
  • Деякі програми не працюватимуть, якщо NAT увімкнено.
  • Ускладнює протоколи тунелювання, такі як IPsec.
  • Крім того, маршрутизатор, який є пристроєм мережевого рівня, не повинен втручатися в номери портів (транспортний рівень), але він повинен робити це через NAT.