Що таке nat для чайників | Що таке NAT на роутері? Резервування інтернет-каналу від двох провайдерів за допомогою NAT, ip sla

Стрімке зростання мережі Інтернет, незабаром після її появи, принесло проблему браку адрес. Зараз це частково вирішується запровадженням нового протоколу IPv6, який забезпечить у рази більше доступних адрес для мережних вузлів. Але одним оновленням протоколу не обійтись. Була придумана технологія NAT, яка дозволяла вузлам із приватної мережі, підключатися до Інтернету, використовуючи лише одну зовнішню IP адресу. Таким чином, масштабування приватних локальних мереж стало набагато простіше, при спробі підключення їх до Інтернету. Нині ми докладно розберемо технологію NAT.

Як працює NAT

Давайте для прикладу уявімо, що у нас є локальна мережа, що включає 3 робочі станції. Ми вирішили підключити Інтернет. Провайдер виділив нам 1 зовнішній , який ми повинні прописати в налаштуваннях нашого маршрутизатора. У результаті ми отримаємо наступну картинку.

Наші три комп'ютери будуть об'єднані в локальну мережу з адресацією "192.168.."

Ось так це виглядатиме:

  • Маршрутизатор – 192.168.1.1
  • Комп'ютер 1 - 192.168.1.2
  • Комп'ютер 2 – 192.168.1.3
  • Комп'ютер 3 - 192.168.1.4

Якщо ви вже знайомі з основами локальних мереж, повинні знати, що в налаштуваннях мережевих карт, у полі "Шлюз за замовчуванням", для наших комп'ютерів має стояти значення 192.168.1.1. Таким чином, всі запити, які не належать нашій локальної мережіМи повинні відправляти на наш маршрутизатор. Простіше кажучи, всі запити до Інтернету будуть перенаправлені на нього.

Як ми вже зазначили, зовнішній IP у нас всього один. Ось тут і починається найцікавіше. Як три комп'ютери з різними ip-адресами, чи зможуть виходити в інтернет, за наявності однієї зовнішньої адреси?

Тут допоможе і прийде технологія NAT.

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

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

На що слід звернути увагу. По-перше, не обов'язково має бути лише одна зовнішня адреса. Їх може бути кілька.

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

Термінологія

Щоб розуміти принцип трансляції мережевих адрес, розберемося з основними термінами.

Це перший тип реалізації цієї технології.

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

Налаштування на маршрутизаторах Cisco

  • Заходимо в налаштування інтерфейсу, який перебуватиме у внутрішній частині мережі, та застосовуємо команду ip nat inside
  • Далі для зовнішнього інтерфейсу команда ip nat outside
  • Далі в режимі глобальної конфігурації нам потрібно вручну задати відповідність адресам. Використовуємо команду ip nat inside source static inside-local inside-global. Де "inside-local" - внутрішня локальна адреса, "inside-global" - внутрішня глобальна адреса

Динамічна NAT

Ця реалізація схожа зі статичною трансляцією. Різниця в тому, що процес перетворення адрес відбувається в динамічному режимі, на основі налаштованих раніше параметрів. Наразі немає статичної таблиці маршрутизації. У таблицю заносяться відповідності, які активуються на момент передачі пакетів. Якщо всі налаштовані параметри відповідають.

Для налаштування вам потрібно встановити пул зовнішніх адрес, які будуть використовувати для транслювання. А також задати пул внутрішніх адрес, створивши для них новий.

Налаштування

  • Задаємо ip nat inside для внутрішніх інтерфейсів
  • Ip nat outside для зовнішніх
  • Створюємо ACL зі списком внутрішніх адрес, які мають брати участь у трансляції
  • Створюємо пул зовнішніх адрес. У режимі глобального конфігурування використовуємо команду ip nat pool name first-address last-address mask subnet mask. Де "name" - ім'я для пулу, "first-address" початкова адреса, "last-address" - остання адреса, "subnet mask" - маска підмережі
  • Включаємо динамічну трансляцію адрес NAT. ip nat source list acl-number pool pool-name. Де "acl-number" - створений раніше список контролю доступу, "pool-name" - пул адрес.

PAT – трансляція на основі портів

У будь-якому випадку кількість доступних зовнішніх адрес обмежена. Як ще масштабувати велику локальну мережу, щоб отримати можливість виходу в інтернет всіх її вузлів? Вже зрозуміло, як і статична і динамічна NAT, вимагатиме цього велика кількість зовнішніх адрес. Але цей варіант нам не підходить.

Тут на допомогу приходить третя реалізація NAT – трансляція на основі портів PAT. Суть її в тому, що на додаток до зв'язки "адреса - адреса", додається зв'язка "адреса - порт". Таким чином, маршрутизатор може активувати з'єднання не лише з використанням IP-адреси, але й з використанням унікального номера порту.

З урахуванням того, що для нумерації портів використовується 16-біт, то одночасно може бути активно більше 65 тисяч з'єднань.

Налаштування

Весь процес налаштування аналогічний конфігуруванню динамічної маршрутизації. Якщо ми хочемо включити PAT, нам потрібно додати ключове слово overload в команду налаштування. У результаті вона виглядатиме ось так:

ip nat source list acl-number interface interface name/number overload

Відео до статті:

Висновок

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

Навіщо шукати інформацію на інших сайтах, якщо у нас зібрано?

  • Покрокова

2 32 або 4 294 967 296 IPv4адрес це багато? Здається, що так. Однак із поширенням персональних обчислень, мобільних пристроїві швидким зростанням інтернету незабаром стало очевидним, що 4,3 мільярда адрес IPv4 буде недостатньо. Довгостроковим рішенням було IPv6, але були потрібні швидше рішення для усунення нестачі адрес. І цим рішенням став NAT (Network Address Translation).

Що таке NAT

Мережі зазвичай проектуються з використанням приватних IP-адрес. Це адреси 10.0.0.0/8, 172.16.0.0/12 і 192.168.0.0/16 . Ці приватні адреси використовуються всередині організації або майданчики, щоб дозволити пристроям спілкуватися локально, і вони не маршрутизуються в Інтернеті. Щоб дозволити пристрою з приватною IPv4-адресою звертатися до пристроїв та ресурсів за межами локальної мережі, приватна адреса спочатку має бути переведена на загальнодоступну публічну адресу.

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

Маршрутизатори з підтримкою NAT можуть бути налаштовані з однією або декількома дійсними загальнодоступними IPv4-адресами. Ці загальнодоступні адреси називають пулом NAT. Коли пристрій із внутрішньої мережі надсилає трафік із мережі назовні, маршрутизатор з підтримкою NAT переводить внутрішню IPv4-адресу пристрою на загальнодоступну адресу з пулу NAT. Для зовнішніх пристроїв весь трафік, що входить і виходить з мережі, має загальнодоступну IPv4 адресу.

Маршрутизатор NAT зазвичай працює на кордоні Stub-Мережі. Stub-мережа – це тупикова мережа, яка має одне з'єднання із сусідньою мережею, один вхід та вихід із мережі.

Коли пристрій всередині Stub-мережі хоче зв'язуватися з пристроєм за межами своєї мережі, пакет пересилається прикордонному маршрутизатору, і він виконує NAT-процес, переводячи внутрішню приватну адресу пристрою на публічну, зовнішню адресу, що маршрутизується.

Термінологія NAT

У термінології NAT внутрішня мережа є набір мереж, що підлягають перекладу. Зовнішня мережа відноситься до всіх інших мереж.

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

NAT включає чотири типи адрес:

  • Внутрішня локальна адреса (Inside local address);
  • Внутрішня глобальна адреса (Inside global address);
  • Зовнішня місцева адреса (Outside local address);
  • Зовнішня глобальна адреса (Outside global address);

При визначенні того, який тип адреси використовується, важливо пам'ятати, що термінологія NAT завжди застосовується з точки зору пристрою з адресою трансльованої:

  • Внутрішня адреса (Inside address)- адресу пристрою, що транслюється NAT;
  • Зовнішня адреса (Outside address)- адресу пристрою призначення;
  • Локальна адреса (Local address)- це будь-яка адреса, яка відображається у внутрішній частині мережі;
  • Глобальна адреса (Global address)- це будь-яка адреса, яка відображається у зовнішній частині мережі;

Розглянемо це з прикладу схеми.


На малюнку ПК має внутрішній локальний ( Inside local) адресу 192.168.1.5 та з його точки зору веб-сервер має зовнішній ( outside) адресу 208.141.17.4. Коли з ПК відправляються пакети на глобальну адресу веб-сервера, внутрішній локальний ( Inside local) адреса ПК транслюється у 208.141.16.5 ( inside global). Адреса зовнішнього пристроюзазвичай не перекладається, оскільки він є загальнодоступною адресою IPv4.

Варто зауважити, що ПК має різні локальні та глобальні адреси, тоді як веб-сервер має однакову публічну IP адресу. На його думку трафік, що виходить з ПК надходить з внутрішньої глобальної адреси 208.141.16.5. Маршрутизатор з NAT є точкою демаркації між внутрішньою та зовнішньою мережами та між локальними та глобальними адресами.

Терміни, insideі outside, поєднані з термінами localі global, щоб посилатися на конкретні адреси. На малюнку маршрутизатор налаштований на надання NAT і має пул загальнодоступних адрес для призначення внутрішнім хостам.

На малюнку показано як трафік відправляється з внутрішнього ПК на зовнішній веб-сервер, через маршрутизатор з підтримкою NAT, і надсилається і перетворюється на зворотний бік.


Внутрішня локальна адреса ( Inside local address) - адреса джерела, видимий із внутрішньої мережі. На малюнку адресу 192.168.1.5 присвоєно ПК – це і є його внутрішня локальна адреса.

Внутрішня глобальна адреса ( Inside global address) - адреса джерела, видимий із зовнішньої мережі. На малюнку, коли трафік з ПК відправляється на веб-сервер за адресою 208.141.17.4, маршрутизатор переводить внутрішню локальну адресу ( Inside local address) на внутрішню глобальну адресу ( Inside global address). У цьому випадку роутер змінює адресу IPv4 з 192.168.1.5 на 208.141.16.5.

Зовнішня глобальна адреса ( Outside Global address) - адреса адресата, видима із зовнішньої мережі. Це IPv4-адреса, що глобально маршрутизується, призначена хосту в Інтернеті. На схемі веб-сервер доступний за адресою: 208.141.17.4. Найчастіше зовнішні локальні та зовнішні глобальні адреси однакові.

Зовнішня локальна адреса ( Outside local address) - адреса одержувача, видимий із внутрішньої мережі. У цьому прикладі ПК надсилає трафік на веб-сервер за адресою 208.141.17.4

Розглянемо весь шлях проходження пакета. ПК із адресою 192.168.1.5 намагається встановити зв'язок із веб-сервером 208.141.17.4. Коли пакет прибуває в маршрутизатор з підтримкою NAT, він зчитує IPv4 адресу призначення пакета, щоб визначити, чи пакет відповідає критеріям, зазначеним для перекладу. У цьому прикладі вихідна адреса відповідає критеріям і перекладається з 192.168.1.5 ( Inside local address) на 208.141.16.5. ( Inside global address). Роутер додає це зіставлення локального в глобальну адресу таблицю NAT і відправляє пакет з переведеним адресою джерела до пункту призначення. Веб-сервер відповідає пакетом, адресованим внутрішній глобальній адресі ПК (208.141.16.5). Роутер отримує пакет з адресою призначення 208.141.16.5 і перевіряє таблицю NAT, у якій знаходить запис цього зіставлення. Він використовує цю інформацію і переводить назад внутрішню глобальну адресу (208.141.16.5) на внутрішню локальну адресу (192.168.1.5), і пакет перенаправляється у бік ПК.

Типи NAT

Існує три типи трансляції NAT:

  • Статична адресна трансляція (Static NAT)- зіставлення адрес один до одного між локальними та глобальними адресами;
  • Динамічна адресна трансляція (Dynamic NAT)- зіставлення адрес “багато до багатьох” між локальними та глобальними адресами;
  • Port Address Translation (NAT)- багатоадресне зіставлення адрес між локальними та глобальними адресами з використанням портів. Також цей метод відомий як NAT Overload;

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

Статична NAT таблиця виглядає так:


Динамічний NAT використовує пул публічних адрес та призначає їх за принципом «першим прийшов, першим обслужений». Коли внутрішній пристрій вимагає доступу до зовнішньої мережі, динамічний NAT призначає доступну загальнодоступну IPv4-адресу з пулу. Подібно до статичного NAT, динамічний NAT вимагає наявності достатньої кількості загальнодоступних адрес для задоволення загальної кількості одночасних сеансів користувача.

Динамічна NAT таблиця виглядає так:


Port Address Translation (PAT)

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

За допомогою PAT кілька адрес можуть бути зіставлені з однією або декількома адресами, оскільки кожна приватна адреса також відстежується номером порту. Коли пристрій ініціює сеанс TCP/IP, воно генерує значення порту джерела TCPабо UDPдля унікальної ідентифікації сеансу Коли NAT-маршрутизатор отримує пакет від клієнта, він використовує номер свого порту, щоб однозначно ідентифікувати конкретний переклад NAT. PAT гарантує, що пристрої використовують різні номери порту TCP для кожного сеансу. Коли відповідь повертається з сервера, номер порту джерела, який стає номером порту призначення назад, визначає, який пристрій маршрутизатор перенаправляє пакети.

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


Оскільки маршрутизатор обробляє кожен пакет, він використовує номер порту (1331 і 1555, у цьому прикладі), щоб ідентифікувати пристрій, з якого пакет відправлений.

Адреса джерела ( Source Address) - це внутрішній локальний адресу з доданим номером порту, призначеним TCP/IP. Адреса призначення ( Destination Address) - це зовнішня локальна адреса з доданим номером службового порту. У цьому прикладі порт служби 80: HTTP.

Для вихідної адреси маршрутизатор переводить внутрішню локальну адресу у внутрішню глобальну адресу з доданим номером порту. Адреса призначення не змінюється, але тепер вона називається зовнішньою глобальною IP-адресою. Коли веб-сервер відповідає, зворотний шлях.

У цьому прикладі номери портів клієнта 1331 та 1555 не змінювалися на маршрутизаторі з NAT. Це не дуже ймовірний сценарій, тому що є хороша ймовірність того, що ці номери портів вже були прикріплені до інших активних сеансів. PAT намагається зберегти вихідний джерело порту. Однак, якщо вихідний порт джерела вже використовується, PAT призначає перший доступний номер порту, починаючи з початку відповідної групи портів 0-511, 512-1023 або 1024-65535 . Коли портів більше немає, і в пулі адрес є більше однієї зовнішньої адреси, PAT переходить на наступну адресу, щоб спробувати виділити вихідний порт джерела. Цей процес триває, доки не буде доступних портів або зовнішніх IP-адрес.

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

Підіб'ємо підсумки в порівнянні NAT і PAT. Як видно з таблиць, NAT перекладає IPv4-адреси на основі 1:1 між приватними IPv4 адресами і загальнодоступними IPv4-адресами. Однак PAT змінює як саму адресу, так і номер порту. NAT перенаправляє вхідні пакети на їх внутрішню адресу, орієнтуючись на вхідну IP адресу джерела, заданий хостом у загальнодоступній мережі, а з PAT зазвичай є лише один або дуже мало публічно відкритих IPv4-адрес, і вхідні пакети перенаправляються, орієнтуючись на таблицю NAT маршрутизатора.

А щодо пакетів IPv4, які містять дані, відмінні від TCP чи UDP? Ці пакети не містять номер порту рівня 4. PAT перекладає найпоширеніші протоколи, що переносяться IPv4, які використовують TCP чи UDP як протокол транспортного рівня. Найбільш поширеними є ICMPv4. Кожен із цих типів протоколів по-різному обробляється PAT. Наприклад, повідомлення запиту ICMPv4, відлуння запитів та відповіді включають ідентифікатор запиту Query ID. ICMPv4 використовує ID Query. для ідентифікації луна-запиту з відповідною відповіддю. Ідентифікатор запиту збільшується з кожним надісланим відлунням. PAT використовує ідентифікатор запиту замість порту рівня 4.

Переваги та недоліки NAT

NAT надає безліч переваг, у тому числі:

  • NAT зберігає зареєстровану схему адресації, дозволяючи приватизацію інтрамереж. При PAT внутрішні хости можуть спільно використовувати одну загальнодоступну IPv4-адресу для всіх зовнішніх комунікацій. У цьому типі конфігурації потрібно дуже мало зовнішніх адрес для підтримки багатьох внутрішніх хостів;
  • NAT підвищує гнучкість з'єднань із загальнодоступною мережею. Численні пули, пули резервного копіюванняпули балансування навантаження можуть бути реалізовані для забезпечення надійних загальнодоступних мережевих підключень;
  • NAT забезпечує узгодженість внутрішніх схем адресації мережі. У мережі, що не використовує приватні IPv4-адреси та NAT, зміна загальної схемиадрес IPv4 вимагає переадресації всіх хостів в існуючої мережі. Вартість переадресації хостів може бути значною. NAT дозволяє існуючій приватній схемі IPv4 залишатися, дозволяючи легко змінювати нову схему загальнодоступної адресації. Це означає, що організація може змінювати провайдерів і не потрібно змінювати жодного зі своїх внутрішніх клієнтів;

  • NAT забезпечує безпеку мережі. Оскільки приватні мережі не рекламують свої адреси або внутрішню топологію, вони залишаються досить надійними під час використання разом із NAT щоб одержати контрольованого зовнішнього доступу. Однак слід розуміти, що NAT не замінює фаєрволи;

Але NAT має деякі недоліки. Той факт, що хости в Інтернеті, мабуть, безпосередньо взаємодіють із пристроєм з підтримкою NAT, а не з фактичним хостом усередині приватної мережі, створює ряд проблем:

  • Один із недоліків використання NAT пов'язаний із продуктивністю мережі, особливо для протоколів реального часу, таких як VoIP. NAT збільшує затримки перемикання, тому що переклад кожної IPv4 адреси в заголовках пакетів вимагає часу;
  • Іншим недоліком використання NAT є те, що наскрізна адресація втрачається. Багато інтернет-протоколів та програм залежать від наскрізної адресації від джерела до місця призначення. Деякі програми не працюють із NAT. Програми, які використовують фізичні адреси, а не кваліфіковане доменне ім'я, не доходять до адресатів, які транслюються через маршрутизатор NAT. Іноді цієї проблеми можна уникнути, реалізуючи статичні зіставлення NAT;
  • Також втрачається наскрізне трасування IPv4. Складніше трасувати пакети, які зазнають численних змін адрес пакетів протягом декількох NAT-переходів, що ускладнює пошук та усунення несправностей;
  • Використання NAT також ускладнює протоколи тунелювання, такі як IPsec, оскільки NAT змінює значення в заголовках, які заважають перевіркам цілісності, що виконуються IPsec та іншими протоколами тунелювання;
  • Служби, що вимагають ініціювання TCP-з'єднань із зовнішньої мережі, або stateless протоколи, наприклад, що використовують UDP, можуть бути порушені. Якщо маршрутизатор NAT не налаштований для підтримки таких протоколів, вхідні пакети не можуть досягти свого адресата;

Чи корисна вам ця стаття?

Будь ласка, розкажіть чому?

Нам шкода, що стаття не була корисна для вас: (Будь ласка, якщо не утруднить, вкажіть з якої причини? Ми будемо дуже вдячні за докладну відповідь. Дякую, що допомагаєте нам стати кращими!

Доброго часу доби, дорогі читачі! Ну, що давайте про NAT.

Сьогодні торкнемося докладніше тему дещо болісну і досить незрозумілу, але більш незрозумілу, ніж болісну.

Більшою мірою ця проблема стосується тих, хто грає в розраховані на багато користувачів ігри і коротко ця проблема звучить приблизно так: "ЧОМУ ДО МЕНІ НІХТО НЕ ЗАХОДИТЬ?". Для інших ця проблема виглядає дещо інакше, а саме:

  • Чому не хитає торрент?
  • Чому користувачі/друзі/знайомі/невідомі особи не можуть підключитися до FTP, WEB, VOIP (TS, Mamble, відро) та інших серверів, які ви так довго намагалися налаштувати і навіть перевіряли, що у вас все працює?
  • Чому ваш особистий домашній сервер пустує? Може це всесвітня змова?

Але, однак, немає ніякої змови, винуватець усіх цих бід знаходиться поруч з вами і хитро підморгує вам лампочками, а звуть його... роутер, так-так, той самий, що роздає вам інтернет на всі ваші (і може бути сусідські) девайси.

Якщо коротко, то користувачі з інтернету просто не можуть підключитися до вас, тому що ваш роутер їх не пускає, але він робить це не просто з забаганки, а тому, що не знає про те, що всі ці люди хочуть підключитися саме до вас. Ось він і думає, що вони чогось хочуть від нього самого.

Так, щойно я вам описав для чого потрібний NAT. А тепер про те, що це таке.

Загальне визначення

NAT (Network Address Translation) - це такий механізм, який дозволяє роутеру визначати які сервіси знаходяться за роутером і повинні бути доступні з інтернету, щоб користувачі звідти могли цими сервісами користуватися (визначення з вікі я брати не став, тому що воно химерне і не всім зрозуміле).

NAT є у всіх роутерах і серверних операційних системах у тому чи іншому вигляді. У роутерах це зазвичай називається port forwarding, у лінуксах iptables, на віндових серверах – у спеціальному оснащенні. А тепер давайте поговоримо про різних типах NAT.

Тип перший, Static NAT

Static NAT не потрібно для дому, а потрібен у тому випадку, якщо провайдер виділив кілька IP адрес (зовнішні або "білі" адреси) вашої компанії, і вам потрібно, щоб деякі сервери завжди були видні з інтернету, при цьому їх адреси не змінювалися .

Тобто. відбувається перетворення адрес 1-1 (один зовнішній IP призначається одному внутрішньому серверу). При такому налаштуванні ваші сервери завжди будуть доступні з Інтернету на будь-якому порту.

  • Перевага такого методу в тому, що ви відкриваєте доступ з інтернету саме для певної програми на певному комп'ютері/сервері, решта портів комп'ютера/сервера залишаються закритими;
  • Недолік у тому, що потрібно всі порти відкривати вручну (іноді програми роблять це за вас за допомогою технології UPnP, але таке буває не завжди).

Післямова

Вийшло дещо сумбурно, та й тема досить непроста, але сподіваюся тепер при слові NAT вас не кидатиме в тремтіння:)

Як і завжди, якщо є якісь питання, думки, доповнення і таке інше, то ласкаво просимо в коментарі до цього запису.

PS: За існування статті окреме спасибі другові проекту та члену нашої команди під ніком “barn4k“

Принцип роботи роутера (маршрутизатора)

Читаючи цю статтю, я думаю, всі розуміють, що таке роутер і навіщо він потрібен, але чи хтось замислювався - як він працює? У цій статті я постараюся максимально доступною мовою розповісти про основні принципи роботи маршрутизатора. Ця стаття буде корисною і системним адміністраторамта простим користувачам.

Основна функція, яка працює у будь-якому роутері - NAT

NAT- Network Address Translation служить заміни IP адрес. У локальних мережах в основному використовуються адреси типу 192.168.1.XXX або подібні, і це породжує проблему маршрутизації в глобальної мережіінтернет, оскільки IP адреси в мережі не повинні дублюватися. Вирішенням цієї проблеми є NAT - комп'ютери локальної мережі підключаються до локального інтерфейсуроутера, отримують від нього IP-адреси та шлюз (шлюзом служить роутер), а WAN інтерфейс роутера підключається до інтернету.

Тепер розглянемо принцип NAT трансляції:

  • З будь-якого комп'ютера в локальній мережі робиться запит, наприклад, ви намагаєтеся вийти на будь-який сайт - комп'ютер надсилає цей запит на адресу шлюзу, тобто нашого роутера;
  • Роутер, отримавши цей запит, записує ваш комп'ютер як ініціатор з'єднання, після чого створюється копія вашого пакета і відправляється на адресу призначення, але вже від імені роутера, і з його IP адресою, а ваш пакет просто знищується;
  • Сервер, якому було надіслано запит, обробляє його та відправляє відповідь, природно на адресу роутера. А роутер цього вже чекав, оскільки створив запис про те, що на запит вашого комп'ютера має прийти відповідь, і направляє його на ваш комп'ютер. Як видно, за даною схемою - ініціатором з'єднання може бути тільки комп'ютер з локальної мережі, а відповідь від сервера потрапить на комп'ютер, тільки якщо роутер цього чекатиме (відповідь на запит). Іншими словами, всі спроби з'єднатися з поза зупинятимуться на роутері, і буде вдалими лише якщо роутер надає ресурс за запитаним портом або в нього налаштовані правила Port Forwarding, про які ми зараз поговоримо.

Port Forwarding

Port Forwarding- це по суті те саме, що і NAT, але в інший бік, а отже тільки статичний NAT, тобто певні запити тільки на певні комп'ютери, адже в глобальній мережі не можуть знати IP адрес за роутером. Наприклад, ви створили FTP або HTTP сервер на комп'ютері і хочете надати доступ до даних ресурсів, для цього потрібно прописати дане правило в роутері, в якому буде вказано, що всі пакети на потрібний порт (21 або 80 в нашому випадку) будуть передані на IP-адреса нашого комп'ютера на певний порт (порт можна поміняти).

NAT-DMZ

NAT-DMZ- це абсолютно теж, що і Port Forwarding, але з тією різницею, що не потрібно прописувати правило для кожного порту, досить просто налаштувати NAT – DMZ, який передаватиме на потрібний комп'ютервсі запити, що входять на WAN роутера. Змінити порти звичайно вже не можна.

Маршрутизація

Для спрощення уявлення про те, що це таке, можна сказати, що це те саме, що і NAT, але тільки в обох напрямках. При даній схемі у роутера має бути більше 2-х LAN інтерфейсів (не портів, а інтерфейсів), з різними адресними просторами, наприклад, у одного інтерфейсу IP - 192.168.0.1, а в іншого - 192.168.1.1. Отже, комп'ютери однієї мережі отримуватимуть IP типу 192.168.0.XXX, а інший мережі 192.168.0.XXX, а шлюзи вони будуть відповідно 192.168.0.1 і 192.168.1.1. Ось таким чином вийде двостороння маршрутизація.

Не забуваємо залишати

Інтернет-маршрутизатором, сервером доступу, міжмережевим екраном. Найбільш популярним є Source NAT(SNAT), суть механізму якого полягає в заміні адреси джерела (source) при проходженні пакета в один бік і зворотній заміні адреси призначення (destination) в пакеті у відповідь. Поряд із адресами джерела/призначення можуть також замінюватися номери портів джерела та призначення.

Крім SNAT, тобто. надання користувачам локальної мережі з внутрішніми адресами доступу до мережі Інтернет, часто застосовується також Destination NAT, коли звернення ззовні транслюються міжмережевим екраном на сервер у локальній мережі, що має внутрішню адресу і тому недоступний із зовнішньої мережі безпосередньо (без NAT).

На рисунках нижче наведено приклад дії механізму NAT.


Мал. 7.1.

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

Пристрій NAT отримує пакет і робить запис у таблиці відстеження з'єднань, яка керує перетворенням адрес.

Потім підміняє адресу джерела пакета власною зовнішньою загальнодоступною IP-адресою і посилає пакет за місцем призначення в Інтернет.

Вузол призначення отримує пакет і передає відповідь пристрою NAT .

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

Існує 3 базові концепціїтрансляції адрес:

  • статична (SAT, Static Network Address Translation),
  • динамічна (DAT, Dynamic Address Translation),
  • маскарадна (NAPT, NAT Overload, PAT).

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

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

Маскарадний NAT(NAPT, NAT Overload, PAT, маскарадинг) – форма динамічного NAT, який відображає кілька приватних адрес в єдину публічну IP-адресу, використовуючи різні порти. Відомий також як PAT (Port Address Translation).

Механізмів взаємодії внутрішньої локальної мережі із зовнішньою загальнодоступною мережею може бути декілька – це залежить від конкретного завдання щодо забезпечення доступу до зовнішньої мережі та назад і прописується певними правилами. Визначено 4 типи трансляції мережевих адрес:

  • Full Cone (Повний конус)
  • Restricted Cone (Обмежений конус)
  • Port Restricted Cone (Порт обмеженого конуса)
  • Symmetric (Симетричний)

У перших трьох типах NAT для взаємодії різних IP-адрес зовнішньої мережі з адресами з локальної мережі використовується той самий зовнішній порт . Четвертий тип – симетричний – для кожної адреси та порту використовує окремий зовнішній порт.

Full Cone, зовнішній порт пристрою (маршрутизатора, сервера доступу, міжмережевого екрану) відкритий для запитів, що надходять з будь-яких адрес. Якщо користувачеві з Інтернету потрібно надіслати пакет клієнту, розташованому за NAT 'ом, йому необхідно знати тільки зовнішній порт пристрою, через який встановлено з'єднання. Наприклад, комп'ютер за NAT 'ом з IP-адресою 192.168.0.4 посилає та отримує пакети через порт 8000, які відображаються на зовнішній IP-адресу та порт, як 10.1.1.1:12345. Пакети із зовнішньої мережі приходять на пристрій з IP-адресою: портом 10.1.1.1:12345 і далі відправляються на клієнтський комп'ютер 192.168.0.4:8000.

У вхідних пакетах перевіряється лише транспортний протокол; адреса та порт призначення, адреса та порт джерела значення не мають.

При використанні NAT, що працює за типом Restricted Cone, зовнішній порт пристрою (маршрутизатора, сервера доступу, міжмережевого екрану) відкритий для будь-якого пакета, надісланого з клієнтського комп'ютера, у нашому прикладі: 192.168.0.4:8000. А пакет, що надійшов із зовнішньої мережі (наприклад, від комп'ютера 172.16.0.5:4000) на пристрій з адресою: портом 10.1.1.1:12345, буде відправлений на комп'ютер 192.168.0.4:8000 тільки в тому випадку, якщо 192.168.0.4. попередньо надсилав запит на IP-адресу зовнішнього хоста (у нашому випадку – на комп'ютер 172.16.0.5:4000). Тобто маршрутизатор транслюватиме вхідні пакети тільки з певної адреси джерела (у нашому випадку комп'ютер 172.16.0.5:4000), але номер порту джерела може бути будь-яким. Інакше NAT блокує пакети, що прийшли з хостів, на які 192.168.0.4:8000 не надсилав запиту.

Механізм NAT Port Restricted Coneмайже аналогічний механізму NAT Restricted Cone. Тільки в даному випадку NAT блокує всі пакети, що прийшли з хостів, на які клієнтський комп'ютер 192.168.0.4:8000 не надсилав запиту за якоюсь IP-адресою та портом. Маршрутизатор звертає увагу на відповідність номера порту джерела та не звертає уваги на адресу джерела. У нашому прикладі маршрутизатор транслюватиме вхідні пакети з будь-якою адресою джерела, але порт джерела при цьому має бути 4000. Якщо клієнт відправив запити до зовнішньої мережі до кількох IP-адрес та портів, то вони зможуть посилати пакети клієнту на IP-адресу: порт 10.1 .1.1:12345.

Symmetric NATістотно відрізняється від перших трьох механізмів способом відображення внутрішньої IP-адреси: порту на зовнішню адресу: порт. Це відображення залежить від IP-адреси: порту комп'ютера, якому призначено надісланий запит. Наприклад, якщо клієнтський комп'ютер 192.168.0.4:8000 посилає запит комп'ютеру №1 (172.16.0.5:4000), він може бути відображений як 10.1.1.1:12345, в той же час, якщо він посилає з того ж порту (192.168. 0.4:8000) на іншу IP-адресу, він відображається по-іншому (10.1.1.1:12346).

  • Дозволяє запобігти або обмежити звернення зовні до внутрішніх хостів, залишаючи можливість звернення з внутрішньої мережі до зовнішньої. При ініціації з'єднання зсередини мережі створюється трансляція. Паки у відповідь, що надходять зовні, відповідають створеної трансляції і тому пропускаються. Якщо для пакетів, що надходять із зовнішньої мережі, відповідної трансляції не існує (а вона може бути створена при ініціації з'єднання або статичної), вони не пропускаються.
  • Дозволяє приховати певні внутрішні послуги внутрішніх хостів/серверів. По суті, виконується та ж зазначена вище трансляція на певний порт, але можна підмінити внутрішній порт офіційно зареєстрованої служби (наприклад, 80-й порт TCP (HTTP-сервер) на зовнішній 54055-й). Тим самим, зовні, на зовнішній IP-адресі після трансляції адрес на сайт (або форум) для поінформованих відвідувачів можна буде потрапити за адресою http://dlink.ru:54055, але на внутрішньому сервері, що знаходиться за NAT, він працюватиме на звичайному 80-му порту.
  • Однак слід згадати і про недоліки цієї технології:

    1. Не всі протоколи можуть подолати NAT. Деякі не можуть працювати, якщо на шляху між взаємодіючими хостами є трансляція адрес. Виділені міжмережові екрани, що здійснюють трансляцію IP-адрес, можуть виправити цей недолік, відповідним чином замінюючи IP-адреси не тільки в заголовках IP, але і на більш високих рівнях (наприклад, у командах протоколу FTP).
    2. Через трансляцію адрес "багато в один" з'являються додаткові складності з ідентифікацією користувачів та необхідність зберігати повні логи трансляцій.
    3. Атака DoS з боку вузла, що здійснює NAT – якщо NAT використовується для підключення багатьох користувачів до одного і того ж сервісу, це може викликати ілюзію DoS-атаки на сервіс (безліч успішних та неуспішних спроб). Наприклад, надмірна кількість користувачів ICQ за NAT призводить до проблеми з підключенням до сервера деяких користувачів через перевищення допустимої швидкості підключення.
    2021 wisemotors.ru. Як це працює. Залізо. Майнінг. Криптовалюта.