Почему больше организаций не используют внутреннюю NAT или аналогичные решения для разрешения шпилек NAT?


22

Внутренний NAT, известный как петлевая петля NAT, решает проблемы NAT-шпилек при обращении к веб-серверу на внешнем интерфейсе ASA или аналогичного устройства с компьютеров на внутреннем интерфейсе. Это не позволяет администраторам DNS поддерживать дублирующуюся внутреннюю зону DNS, имеющую соответствующие адреса RFC1918 для своих серверов, которые NAT-адресации являются общедоступными. Я не сетевой инженер, так что я мог бы что-то упустить, но это кажется легким для настройки и реализации. Асимметричная маршрутизация может быть проблемой, но ее легко устранить.

По моему опыту, сетевые администраторы / инженеры предпочитают, чтобы системные пользователи просто запускали split-dns, а не настраивали свои брандмауэры для правильной обработки шпилек NAT. Почему это?


Может быть, потому что DNS-представления легче устранять неполадки?
NickW

2
Возможно, но при использовании DNS на контроллерах домена AD (общий сценарий) представления не существуют.
MDMarra

2
Зачем вам нужно публиковать свою зону AD в Интернете? Если ваша AD ad.example.comили похожа (как должно быть!), То эта проблема будет существовать для всех общедоступных example.comзаписей DNS, и ничего внутреннего не публикуется извне. Конечно, если вы назвали свой AD таким же, как и ваше общедоступное присутствие, вы должны использовать split-DNS, но это не лучший способ разработки AD.
MDMarra

5
Я бы добавил, что DNS-представления легче устранять, если клиенты никогда не перемещаются между ними . Все может пойти как-то не так, когда клиенты извлекают кэшированный внутренний результат.
LapTop006

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

Ответы:


11

Есть несколько причин, по которым я бы этого не делал:

  • Зачем создавать дополнительную нагрузку на маршрутизаторы и межсетевой экран DMZ, если вам это не нужно? Большинство наших внутренних служб находятся не в демилитаризованной зоне, а в общем корпоративном пространстве, с услугами прокси в демилитаризованной зоне для периодического удаленного доступа. Выполнение nat изнутри-внутрь увеличивает нагрузку на 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 Domain Controllers для DNS для внутренних целей. Windows DNS не поддерживает представления. Кроме того, я обнаружил, что большинство современных прошивок маршрутизатора / брандмауэра так или иначе поддерживают закрепление NAT.
MDMarra

1
@MDMarra несколько замечаний: 1. - «я бы хотел иметь в виду, что на одну странность NAT нужно обращать меньше внимания» - это то, что я в основном имел в виду, 2. - ваш вопрос прямо не говорит об этом, но с одним маршрутизатором, очевидно, будет легче справиться 4. При наличии внутреннего DNS, который является обязательным для всех клиентов, вам не нужны представления - вы просто создадите внутреннюю зону и получите тот же эффект, который вы упомянули в своем вопросе, рассуждения выше остаются в силе.
The Wabbit

1
Что за странность NAT? Какое специфическое поведение это может вызвать проблемы? Я работал в университете, в котором была настроена привязка NAT для кластера Netscreen для 100+ внешних хостов, и у нас никогда не было проблем.
MDMarra

Также обратите внимание, что использование шпильки NAT в этом сценарии фактически делает его более похожим на решение IPv6, потому что в IPv6 система будет иметь один глобально достижимый адрес; шпилька NAT имитирует такое поведение.
Пол Гир

@MDMarra Самая выдающаяся «странность NAT» для случая «шпильки NAT» - это неоптимальный путь маршрутизации, то есть переписанные пакеты должны будут пройти большую часть пути назад, через который они прошли. Видя это в дампе пакетов при устранении неполадок с подключением, в лучшем случае сбивает с толку. Я полагаю, что другие уже упоминали проблему асимметричной маршрутизации в своих ответах, которая связана. Нет никаких сомнений в том, что вы можете сделать это просто отлично. Но это не стоит усилий в большинстве случаев ИМО.
The Wabbit

7

Отказ от ответственности - это флеймбайт-ответ.

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

Из того, что я могу сказать, большая часть этого страха проистекает из плохой реализации Cisco NAT (так что в этом смысле это не может быть иррационально), но, на мой взгляд, «классический» сетевой инженер так хорошо обучен в «NAT is плохое мировоззрение, что он или она не может видеть очевидные примеры, подобные этому, где это имеет смысл и фактически упрощает решение.

Вот и все - понизь голос до глубины души! :-)


1
Я не знаю, считаю ли я это иррациональным страхом. Опыт научил меня, что NAT может ломать или делать странные вещи с большим количеством вещей.

1
@Kce Но если вы уже используете NAT на своем внешнем интерфейсе, какая разница в настройке обратной связи NAT?
MDMarra

@MDMarra - Нет, правда. Я делал довольно педантичный вывод, что иногда команда сетевых сервисов боится NAT.

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

1
Отредактированный пост, чтобы включить ненависть. :-)
Пол Гир

3

Мое предположение:

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

С положительной стороны для шпильки NAT,

  • Как только он настроен, он просто работает.
  • Никаких проблем с кэшем DNS для ноутбуков, перемещенных между рабочей сетью и общедоступным Интернетом.
  • DNS для сервера управляется только в одном месте.

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


2

С моей точки зрения, это немного изменилось между переходом Cisco Pix на ASA. Потерял aliasкоманду. И вообще, доступ к внешнему адресу из внутреннего интерфейса на брандмауэре Cisco требует некоторой хитрости. Смотрите: Как мне добраться до моего внутреннего сервера по внешнему IP?

Нам не всегда нужно поддерживать дублированную внутреннюю DNS-зону. Cisco ASA может перенаправлять запросы DNS для внешних адресов на внутренние адреса, если это настроено в инструкции NAT. Но я предпочитаю оставить внутреннюю зону для общедоступной зоны DNS, чтобы иметь такую ​​степень детализации и иметь возможность управлять этим в одном месте, а не шагать к брандмауэру.

Как правило, есть только несколько серверов, которые могут требовать этого в среде (почта, Интернет, несколько общедоступных служб), поэтому это не было огромной проблемой.


Это обман, если его поддерживает и документирует Cisco ? Конечно, это немного больше работы, но это делает это хитрым или хакерским?
MDMarra

Обман, в том, что люди не знают / не ожидают / не думают об этом, если они еще не знают. Это общий вопрос: как мне получить внешний IP-адрес изнутри моего межсетевого экрана Cisco .
2013 года

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

Если серверы находятся в демилитаризованной зоне, это не проблема, верно?
Ewwhite

В данном случае «DMZ» означает подключение к внешнему интерфейсу указанного межсетевого экрана с правилами запрета по умолчанию между зонами на месте.
MDMarra

2

Я могу придумать несколько причин:

  1. Многие организации уже разделили DNS из-за того, что не хотят публиковать всю свою внутреннюю информацию DNS в мире, поэтому не требуется особых усилий для обработки нескольких серверов, которые также доступны через публичный IP.
  2. Поскольку организация и ее сеть становятся все больше, они часто отделяют системы, обслуживающие внутренних пользователей, от серверов, обслуживающих внешние, поэтому маршрутизация на внешние для внутреннего использования может оказаться гораздо более продолжительным сетевым путем.
  3. Чем меньше модификаций, которые промежуточные устройства вносят в пакеты, тем лучше, когда речь идет о задержке, времени отклика, загрузке устройства и устранении неполадок.
  4. (очень незначительно, по общему признанию) Существуют протоколы, которые NAT будет по-прежнему нарушать, если устройство NATing не выходит за пределы заголовков пакета и не изменяет данные в нем с новым IP-адресом (ами). Даже если это просто случай институциональной памяти, у людей все еще есть веская причина избегать этого, особенно если они имеют дело с протоколом, в котором они не уверены на 100%.

0

Если бы я собирался использовать петлю NAT, я бы немного беспокоился о том, как устройство NAT будет обрабатывать поддельные адреса источников. Если он не проверяет, через какой интерфейс поступил пакет, я мог бы подделать внутренние адреса из глобальной сети и отправить пакеты на сервер с внутренними адресами. Я не мог получить ответы, но мог бы скомпрометировать сервер, используя внутренний адрес.

Я бы настроил NAT loopback, подключился к коммутатору DMZ и отправлял пакеты с поддельными внутренними адресами источника. Проверьте журнал сервера, чтобы увидеть, были ли они получены. Затем я пошел в кафе и посмотрел, не блокирует ли мой провайдер поддельные адреса. Если бы я обнаружил, что мой маршрутизатор NAT не проверяет исходный интерфейс, я бы, вероятно, не использовал обратную связь NAT, даже если мой провайдер проверяет.


Извините, возможно, я неправильно понимаю, что вы говорите, но адреса RFC1918 не маршрутизируются через Интернет, поэтому я не понимаю, что будет делать попытка подделать их через глобальную сеть. Они даже не сделают первый прыжок.
MDMarra

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