Назад | Перейти на главную страницу

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

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

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

Очевидно, не может быть однозначный ответ для этого, но я мог придумать несколько причин:

  1. Элегантность: NAT изначально не очень элегантен, но необходим в условиях ограниченного адресного пространства IPv4. Если мне удастся избежать NAT, я это сделаю. С IPv6 проблема в любом случае исчезнет.
  2. Сложность: особенно в случае, когда у вас нет одного единственного «основного» маршрутизатора, создающего все ваши границы безопасности, настройка фильтров может стать довольно сложной. Либо так, либо вам придется распространять и поддерживать правила NAT почти на всех ваших маршрутизаторах.
  3. Справка: если администраторы брандмауэра не являются людьми, чем остальная часть команды администраторов сервера, с ними может быть трудно связаться. Чтобы гарантировать, что изменения не откладываются из-за отставания (или отпуска) администратора брандмауэра, выбран вариант сохранения ответственности в той же команде.
  4. Переносимость и общепринятая практика: использование представлений DNS - это «как раз то, что все знают, что сделано» для решения этой проблемы. Не каждый граничный маршрутизатор будет поддерживать NAT с обратной связью напрямую, меньше людей, вероятно, будут знать, как правильно настроить его в вашей конкретной среде. При устранении проблем с сетью экипажу необходимо знать конфигурацию жесткого NAT и все ее последствия - даже если они преследуют явно не связанную проблему.

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

  • Зачем увеличивать нагрузку на маршрутизаторы DMZ и межсетевой экран, если в этом нет необходимости? Большинство наших внутренних сервисов находится не в DMZ, а в общей корпоративной зоне, с прокси-сервисами в DMZ для случайного удаленного доступа. Выполнение nat "изнутри внутрь" увеличивает нагрузку на DMZ, что в нашем случае было бы значительным.
  • Если вы не сделаете DNAT + SNAT, вы получите асимметричную маршрутизацию, которую, как известно, сложно сделать правильно. Таким образом, вы SNAT теряете информацию об исходном IP. Тем не менее, чертовски полезно связывать исходные IP-адреса с людьми для устранения неполадок. Или изредка нерфишинг в случаях глупости. «Привет, этот IP-адрес делает что-то непонятное на неаутентифицированном сервисе X» «О, давайте посмотрим в журналах сервера imap, кто это».

Отказ от ответственности - это ответ на приманку.

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

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

Вот и все - проголосуйте, сколько душе угодно! :-)

Я предполагаю:

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

Из плюсов для шпильки NAT,

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

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

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

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

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

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

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

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

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