Чому більшість організацій не використовують NAT «всередині-всередині» NAT або подібні рішення, щоб дозволити NAT шпильки?


22

Внутрішня всередині NAT ака петля NAT вирішує проблеми зі шпильками NAT під час доступу до веб-сервера на зовнішньому інтерфейсі ASA або подібного пристрою з комп'ютерів у внутрішньому інтерфейсі. Це заважає адміністраторам DNS не підтримувати дублюючу внутрішню зону DNS, яка має відповідні адреси RFC1918 для своїх серверів, які NATET для загальнодоступних адрес. Я не мережевий інженер, тому, можливо, мені щось не вистачає, але це, здається, не налаштовує на налаштування та реалізацію. Асиметрична маршрутизація може бути проблемою, але її легко пом’якшити.

На мій досвід, мережеві адміністратори / інженери віддають перевагу, що люди з системи просто запускають спліт-dns, а не конфігурують свої брандмауери для належної обробки шпильок NAT. Чому це?


Можливо, тому, що перегляди DNS легше усунути?
NickW

2
Можливо, але при використанні DNS на контролерах домену AD (загальний сценарій) представлення не існує.
MDMarra

2
Навіщо вам потрібно публікувати вашу зону реклами в Інтернеті? Якщо ваша AD є ad.example.comподібною (як це має бути!), Ця проблема буде існувати для всіх публічних example.comзаписів DNS, і нічого внутрішнього не публікується зовні. Звичайно, якщо ви назвали свою рекламу такою самою, як і ваша громадська присутність, ви повинні використовувати split-DNS, але це не найкраща практика розробки AD.
MDMarra

5
Додам, що вигляд DNS вирішується лише простіше, якщо клієнти ніколи не переходять між ними . Щось може піти не так, коли клієнти виводять кешований внутрішній результат зовні.
LapTop006

3
Клієнти не повинні кешувати відповіді DNS, саме для цього потрібні сервери DNS . Я знаю, що Windows дуже любить мовчазне (і смертельне) кешування, але це одна з багатьох причин, чому я вважаю, що це непридатно для використання у виробництві.
MadHatter підтримує Моніку

Відповіді:


11

Є кілька причин, чому я цього не роблю:

  • Навіщо надто напружувати маршрутизатори та брандмауер DMZ, якщо цього не потрібно? Більшість наших внутрішніх сервісів знаходяться не в DMZ, а в загальній корпоративній зоні, а в ДМЗ - проміжні послуги для епізодичного віддаленого доступу. Виконання нат всередині-всередині додає більше навантаження на DMZ, що в нашому випадку було б суттєвим.
  • Якщо ви не зробите DNAT + SNAT, ви отримаєте асиметричну маршрутизацію, що, як відомо, складно отримати правильно. Таким чином, ви SNAT і втрачаєте інформацію про вихідну IP-адресу. Однак, корисно пов'язувати вихідні IP-адреси з людьми для усунення несправностей. Або періодично з метою глупоти у випадках глупоти. "Привіт, цей IP робить щось химерке на неавторизованому сервісі X" "О, давайте подивимось у журнал сервера Imap, хто це".

2
Лише зауважте, якщо ваш брандмауер здійснює маршрутизацію L3 і у вас маршрути для зовнішніх і внутрішніх клієнтів приймають скачок на брандмауер, вам не доведеться турбуватися про асиметричну маршрутизацію, правда?
MDMarra

12

Очевидно, на це не може бути однозначної відповіді , але я можу подумати з кількох причин:

  1. Елегантність: NAT не дуже елегантний для початку, але необхідність з обмеженим адресним простором IPv4. Якщо я зможу уникнути NAT, я зроблю. З IPv6 проблема усувається в будь-якому випадку.
  2. Складність: особливо у випадку, коли у вас немає лише одного "основного" маршрутизатора, який створює всі ваші межі безпеки, конфігурації фільтрів можуть стати досить складними. Або це, або вам доведеться поширювати та підтримувати правила NAT майже на всіх ваших пристроях маршрутизаторів.
  3. Довідка: де адміністратори брандмауера не відрізняються від решти команди адміністратора сервера, до них може бути важко дістатися. Для того, щоб зміни не затягувались через відставання адміністратора брандмауера (або відпустки), обирається можливість зберігати відповідальність в одній команді.
  4. Переносимість та поширена практика: Використання поглядів DNS - це "лише те, що всі знають, робиться" для вирішення цієї проблеми. Не кожен прикордонний маршрутизатор прямо підтримує циклічний NAT, менше людей, ймовірно, знає, як правильно його налаштувати у вашому конкретному середовищі. Під час вирішення проблем із мережею, екіпажу необхідно знати про конфігурацію шпильки NAT та всі її наслідки - навіть коли вони переслідують, мабуть, незв'язану проблему.

1
1. У цій ситуації NAT все одно використовується. Це не додає NAT там, де раніше не було NAT. У моєму прикладі всі вони обробляються одним і тим же пристроєм або кластером пристроїв. 4. Як зазначено в моєму коментарі вище, дуже поширеним сценарієм є використання AD-контролерів домену для DNS внутрішньо. Windows DNS не підтримує перегляди. Крім того, я виявив, що більшість сучасних прошивок / маршрутизаторів / брандмауерів підтримують NAT-стрижку так чи інакше.
MDMarra

1
@MDMarra деякі зауваження: 1. - "було б одне дивовижність NAT, на яке менше піклуватися", - це те, що я в основному мав на увазі, 2. - ваше запитання прямо не говорить про це, але з одним лише маршрутизатором, очевидно, буде простіше впоратися. , 4. із внутрішнім DNS на місці, який є обов'язковим для всіх клієнтів, вам не потрібні перегляди - ви просто створили б внутрішню зону і отримаєте той самий ефект, який ви згадали у своєму запитанні, і вищезазначені міркування все ще застосовуються.
Вабіт

1
Яка НАТ дивність? Яку конкретну поведінку це введе, що спричиняє проблеми? Я працював в університеті, в якому була закріплена NAT-стрижка на кластері Netscreen для 100+ зовнішніх хостів, і у нас ніколи не було проблем.
MDMarra

Також зверніть увагу , що з допомогою шпильок NAT в цьому випадку насправді роблять його виглядати більш як рішення IPv6, оскільки в відповідності з IPv6 системи матиме один глобально доступний адреса; шпилька NAT імітує таку поведінку.
Пол Гір

@MDMarra найвидатнішим "дивацтвом NAT" для випадку "шпильки NAT" був би неоптимальний шлях маршрутизації, тобто переписані пакети повинні були пройти більшу частину шляху назад, через який вони пройшли. Бачачи це на дамп пакетів, коли усунення несправностей у кращому випадку заплутано. Я вважаю, що інші вже згадували про несиметричне питання маршрутизації у своїх відповідях, що пов'язано. Немає сумнівів, що ви можете змусити його працювати просто чудово. Але не варто докладати зусиль у більшості випадків ІМО.
Вабіт

7

Відмова - це відповідь полум'я.

Поширена причина, на яку я думаю, уникають таких рішень, - це ірраціональний страх / ненависть до NAT з боку мережевих інженерів . Якщо ви хочете побачити кілька прикладів обговорення цього питання, перегляньте такі:

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

Там ви йдете - знижуйте зміст свого серця! :-)


1
Я не знаю, чи вважав би це ірраціональним страхом. Досвід навчив мене, що NAT може зламати чи робити дивні речі з великою кількістю речей.

1
@Kce Але якщо ви вже використовуєте NAT у своєму зовнішньому інтерфейсі, яку різницю робить налаштування NAT-циклу?
MDMarra

@MDMarra - насправді немає. Я зазначав досить педантичний момент, що іноді страх команди NAT щодо NAT не є нераціональним.

Я не боюся NAT, я ненавиджу його.
Майкл Хемптон

1
Відредагована публікація, щоб включити ненависть. :-)
Пол Гір

3

Я здогадуюсь:

  1. Спліт DNS легше зрозуміти.
  2. NAT Hairpin використовує ресурси на маршрутизаторі, тоді як спліт-dns цього не робить.
  3. Маршрутизатори можуть мати обмеження пропускної здатності, яких ви не отримуєте через налаштування розділеного dns.
  4. Split-dns завжди буде ефективнішим, оскільки ви уникаєте кроків маршрутизації / NAT.

З плюсу для шпильки NAT,

  • Після налаштування це просто працює.
  • Немає проблем з кешами DNS для ноутбуків, переміщених між робочою мережею та загальнодоступним Інтернетом.
  • DNS для сервера керується лише в одному місці.

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


2

З моєї точки зору, це трохи змінилося між переходом Cisco Pix до ASA. Втратив aliasкоманду. І взагалі, доступ до зовнішньої адреси з внутрішнього інтерфейсу на брандмауері Cisco вимагає певної хитрості. Див. Як я можу отримати доступ до свого внутрішнього сервера на зовнішній IP-адресі?

Нам не завжди потрібно підтримувати повторювану внутрішню зону DNS. Cisco ASA може перенаправляти запити DNS для зовнішніх адрес на внутрішні адреси, якщо вони налаштовані на оператор NAT. Але я вважаю за краще зберігати внутрішню зону для загальнодоступної зони DNS, щоб мати цю деталізацію та мати можливість керувати цим в одному місці, а не крокувати до брандмауера.

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


Це хитрість, якщо Cisco її підтримує та документує ? Впевнений, що це трохи більше роботи, але чи це робить це хитро або хитро?
MDMarra

Хитрість, оскільки люди не знають / очікують / не думають про це, якщо вони вже не знають. Це поширене запитання: як отримати зовнішній IP з внутрішньої сторони брандмауера Cisco .
ewwhite

Typically, there are only a few servers that may require this within an environmentможливо, в деяких місцях, але я працював в університеті зі 100+ серверами / пристроями в DMZ, а також працював у постачальника тестування / сертифікації з 40+ серверами, рознесеними на три DMZ. Для менших компаній у вас може бути лише один або два сервери, які знаходяться зовні, але це не обов'язково для всіх.
MDMarra

Якщо сервери знаходяться в DMZ, це менше проблеми, правда?
ewwhite

У цьому випадку "DMZ" означає підключений до зовнішньої поверхні згаданого брандмауера з правилами заборони за замовчуванням між наявними зонами.
MDMarra

2

Я можу придумати кілька причин:

  1. Багато організацій розділили DNS вже через те, що вони не бажають публікувати всю свою внутрішню інформацію про DNS у світі, тому це не великі додаткові зусилля для обробки кількох серверів, які також піддаються відкритому IP-адресу.
  2. Оскільки організація та її мережа зростають, вони часто відокремлюють системи, що обслуговують внутрішніх людей, від серверів, що обслуговують зовнішні, тому маршрутизація до зовнішніх для внутрішнього використання може бути набагато довшим мережевим шляхом.
  3. Чим менше модифікацій, які вносять посередницькі пристрої в пакети, тим краще це стосується затримки, часу відгуку, завантаження пристрою та усунення несправностей.
  4. (дуже незначно, правда, є) Існують протоколи, що NAT все-таки зламається, якщо пристрій NATing не вийде за межі заголовків пакету та змінить дані в ньому за допомогою нових IP-адрес. Навіть якщо це лише випадок інституційної пам’яті, це все ще є поважною причиною, щоб люди уникали цього, особливо якщо вони мають справу з протоколом, щодо якого вони не впевнені на 100%.

0

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

Я б встановив NAT-цикл, підключив до перемикача DMZ і надсилав би пакети із підробленими внутрішніми адресами джерела. Перевірте журнал сервера, щоб перевірити, чи були вони отримані. Тоді я б зайшов до кав’ярні і подивився, чи блокує мій провайдер підроблені адреси. Якби я виявив, що NAT-роутер не перевіряє джерело інтерфейсу, я, ймовірно, не використовував би NAT-цикл, навіть якщо мій провайдер перевіряє.


Вибачте, я можу нерозуміти те, що ви говорите, але адреси RFC1918 не маршрутизуються через Інтернет, тому я не бачу, що намагаються зробити їх підробкою через WAN. Вони навіть не зроблять перший скачок.
MDMarra

Адреса призначення - це загальнодоступна адреса NAT на порту, який відображається на сервері. Адреса джерела - одна з приватних IP-адрес на внутрішній стороні NAT. Адреси джерел не використовуються для маршрутизації та не перевіряються кожним загальнодоступним маршрутизатором. Єдина відмінність від законного внутрішнього запиту полягає в тому, що пакет надходить з WAN.
Кент Англія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.