Сделать домашней|Добавить в избранное
 

CCIENetLab - Подготовка к экзаменам
CCNA, CCNP и CCIE

 
» » Конфигурация Twice NAT на ASA 9.x

Конфигурация Twice NAT на ASA 9.x

Автор: Sauron от 28-10-2015, 16:49
В данной статье мы рассмотрим принципы работы и конфигурации Twice NAT. При помощи данного типа NAT можно сделать две принципиальные вещи, которые нельзя сделать при помощи object NAT:

  1. Трансляции одной и той же сети в разные адреса в зависимости от того, в какую сеть идет пакет.
  2. Статическая трансляция диапазона (или группы) портов кучкой. Например, пробросить целиком диапазон с 1024 по 65535.
Так же все, что можно сделать с помощью Object NAT делается и с помощью Twice NAT. Однако, последний требует, чтобы правила были сконфигурированы в правильном порядке, для того, чтобы обеспечить ожидаемое поведение. При Object NAT, ASA автоматизирует порядок обработки NAT правил, чтобы избежать конфликтов.

Twice NAT. Source

Рассмотрим формат команды для динамических трансляций NAT пока без указания сети назначения:

nat [(SOURCE_INT,DEST_INT)] source dynamic SOURCE MAPPED_SOURCE [interface] [dns]

Эта команда позволяет сделать в точности то же самое, что и object NAT для NAT-трансляции адресов источника. И работают ровно те же правила: интерфейсы можно явно не указывать, можно не указывать один интерфейс, заменив его словом any, указание ключевого слова dns включает ДНС-докторинг, указание ключевого слова interface позволяет при исчерпании пула SOURCE_MAPPED использовать для РАТ трансляции адрес соответствующего интерфейса.

Пример:

nat (inside,outside) source dynamic LAN MAPPED_LAN_POOL interface

Аналогичная ситуация с динамическим РАТ, но добавляется возможность указать не просто конкретный сервис, а соответствующий объект типа «сервис»

nat [(SOURCE_INT,DEST_INT)] source dynamic  SOURCE  MAPPED_SOURCE  service  LOCAL_SERVICE MAPPED_SERVICE

В качестве группы для динамической трансляции нельзя использовать объекты, содержащие сеть. Только хост или диапазон.

Пример (порт источника не меняем):

nat (inside,outside) source dynamic  LAN  MAPPED_LAN service SERVICE_LOCAL SERVICE_LOCAL

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

object service SMALL
  service tcp source eq 2048
!
object service BIG
  service tcp source range 1024 65535
!
nat (inside,outside) source dynamic LAN MAPPED_LAN  service  BIG  SMALL

И эти диапазоны могут отличаться по «мощности» (количеству портов).

Аналогично формируются правила для статических трансляции NAT:
nat (inside,outside) source static  SERVER_LCOAL  SERVER_GLOBAL 


И статические трансляциями с портами:
nat (inside,outside)  source static  SERVER_LOCAL SERVER_GLOBAL service SERVICE_LOCAL SERVICE_GLOBAL


Twice NAT. Destination

Основное преимущество Twice NAT это возможность указать Destination в правилах. Таким образом мы можем производить или не производить NAT над трафиком в зависимости от того куда он направляется.

Рассмотрим для начала формат команды:

nat [(SOURCE_INT,DEST_INT)] source {dynamic|static} SOURCE MAPPED_SOURCE  destination static MAPPED_DEST  DEST

Где SOURCE, MAPPED_SOURCE, MAPPED_DEST, DEST соответствующие объекты. Я обращаю ваше внимание на то, что группы для адресов назначения имеют обратный порядок.

Читать это надо так:

  • Если пакет идет с интерфейса SOURCE_INT на интерфейс DEST_INT, адрес источника пакета из группы SOURCE, а адрес назначения из группы DEST, то адрес источника меняется с SOURCE на MAPPED_SOURCE, а адрес назначения меняется с MAPPED_DEST на DEST.
  • Обратный пакет, обращенный на адрес MAPPED_SOURCE пройдет внутрь, его адрес назначения сменится обратно с MAPPED_SOURCE на SOURCE. Но такая трансляция будет выполнена только если адрес источника пакета будет из группы DEST, и в этом случае адрес источника сменится обратно на MAPPED_DEST.

В случае создания статической трансляции можно будет обращаться (инициировать сессию) снаружи внутрь, а в случае динамической – нет. Рассмотрим топологию из трех сетевых сегментов к которым подключены интерфейсы ASA.

Конфигурация Twice NAT на ASA 9.x

Сегмент сети ISP подключен к интерфейсу G0/0 и назван как outside, внутренняя LAN сеть подключена интерфейсу inside и сегмент DMZ, где размещены веб-сервер и Email сервер к интерфейсу dmz.

Конфигурация интерфейсов и адресов показана на примере ниже.

interface GigabitEthernet0/0
 nameif outside
 security-level 0
 ip address 136.1.121.21 255.255.255.0 
 no shut
!
interface GigabitEthernet0/1
 nameif inside
 security-level 100
 ip address 10.0.0.21 255.255.255.0 
 no shut
!
interface GigabitEthernet0/2
 nameif dmz
 security-level 50
 ip address 192.168.1.21 255.255.255.0
 no shut
!
route outside 0.0.0.0 0.0.0.0 136.1.121.2
!


Теперь попробуем выполнить следующую задачу:

  1. Транслировать адреса сети 10.0.0.0/24 в адрес 136.1.121.10,только если трафик идет в сеть 136.1.124.0/24, если трафик идет в сеть 150.1.2.0/24, то транслировать его в группу адресов из пула 136.1.121.101-136.1.121.110.
  2. Если идет в сеть 136.1.121.0/24 из внутренней сети то не транслировать его.
  3. Опубликовать Web сервер 192.168.1.91 и Email сервер 192.168.1.81 только во внешней сети 136.1.124.0/24 (транслировать) под одним адресом 136.1.121.91. Публикацию будем проводить под своими сервисами (т.е номера портов не транслируем)
  4. Весь остальной трафик из сети 10.0.0.0/24 идущий, в сторону Интернет, транслировать в адрес внешнего интерфейса.

Static Policy NAT

Для реализации первой части нам необходимо создать следующие сетевые объекты:

  • объект, представляющий подсеть inside
  • объекты, представляющие собой транслированный адрес 136.1.121.10 и пул транслированных адресов 136.1.121.101-136.1.121.110
  • объекты, представляющие собой подсети 136.1.124.0/24, 136.1.121.0/24 и 150.1.2.0/24

object network LAN_INSIDE
  subnet 10.0.0.0 255.255.255.0
!
object network MAPPED_HOST
 host 136.1.121.10
!
object network MAPPED_POOL
 range 136.1.121.101 136.1.121.110
!
object network RNET_136.1.124
  subnet 136.1.124.0 255.255.255.0
!
object network RNET_136.1.121
  subnet 136.1.121.0 255.255.255.0
!
object network RNET_150.1.2
  subnet 150.1.2.0 255.255.255.0
!

После того, как все объекты определены, мы можем их использовать для построения NAT правил.

Сначала мы строим NAT правила для трансляции внутренних адресов в адреса из группы MAPPED_HOST или MAPPED_POOL в зависимости от того куда направляется трафик

nat (inside,outside) source dynamic LAN_INSIDE MAPPED_HOST  destination static  RNET_136.1.124 RNET_136.1.124

Довольно трудно читаемая конструкция. Все из-за того, что в одной команде указание destination работает не только как сеть назначения (критерий), но и как указание на то, во что ее транслировать. Как правило, нам не надо транслировать адрес назначения, но написать, что мы не будем транслировать его, можно только указав две одинаковые группы.

Команда транслирует адрес источника пакета в адрес MAPPED_HOST , а адрес назначения пакета, если он попадает в RNET_136.1.124, транслируется сам в себя. Аналогично создадим правило для сети RNET_150.1.2

nat (inside,outside) source dynamic LAN_INSIDE MAPPED_POOL  destination static  RNET_150.1.2 RNET_150.1.2

Здесь команда транслирует адрес источника пакета в адрес из пула , и адрес назначения пакета, если он попадает в RNET_150.1.2, транслируется сам в себя.

NAT 0

Далее, что касается второй задачи: НЕ транслировать трафик, если он идет в сеть RNET_136.1.121. Начиная с версии ASA 8.3 - отсутствует такое понятие как NAT 0, которое было в версиях 8.2 и ниже. Как же быть, когда нам не требуется выполнять трансляцию адресов для определенного типа трафика. Иначе говоря, для данного типа трафика, его IP адреса не должны меняться.

Для того, чтобы адреса не менялись необходимо выполнить частный случай трансляции сам в себя, так называемый Identity NAT, используя ключевое слово static.

nat (inside,outside) source  static LAN_INSIDE LAN_INSIDE  destination static  RNET_136.1.121 RNET_136.1.121

Обратите внимание, что группа, содержащая транслированные адреса должна в точности совпадать с группой адресов подлежащих трансляции. В данном случае, в качестве источника для транслированных адресов мы указываем LAN_INSIDE, а в качестве адресов назначения RNET_136.1.121.

Работает так: Если трафик идет из сети LAN_INSIDE в сеть RNET_136.1.121, то выполняется трансляция один в один для IP SRC в адреса из группы LAN_INSIDE, а для IP DST в адреса из группы RNET_136.1.121. Как результат адреса в IP пакете не меняются.

Выполнив команду show xlate мы увидим двойную трансляцию на ASA (обратите внимание на букву Т, обозначающую, что это Twice NAT).

Конфигурация Twice NAT на ASA 9.x

Одна трансляция для source адресов, а другая для destination. Причем они созданы в разных направлениях и у каждой свой таймаут, но они связаны друг с другом.

Static Policy PAT

Теперь попробуем выполнить третью часть задачи, а именно опубликовать сервисы в зависимости от сетей, в которых данные сервисы будут видны, т.е опубликовать Web сервер 192.168.1.91 и Email сервер 192.168.1.81 во внешней сети 136.1.124.0/24 под одним адресом 136.1.121.91
Создаем объекты, содержащие хосты, транслированный адрес и сервисы.

object network DMZ_WEBHOST
 host 192.168.1.91
object network DMZ_EMAILHOST
 host 192.168.1.81
object network DMZ_MAPPED_HOST
 host 136.1.121.91
!
object service HTTP
  service tcp source eq www
object service SMTP
  service tcp source eq smtp
!

После создания объектов мы применяем из NAT правиле.

nat (dmz,outside) source  static  DMZ_WEBHOST  DMZ_MAPPED_HOST destination static  RNET_136.1.124 RNET_136.1.124 service HTTP HTTP

Обратите внимание, что объект соответствующего сервиса, мы создаем как “tcp source”, а не “tcp destination”. Помните, что правила статического NAT двунаправленные по природе. Поэтому для трафика, который идет из outside в dmz, поля source и destination в TCP пакете поменяются местами.

Аналогично создадим правило для трансляции DMZ_EMAILHOST

nat (dmz,outside) source  static  DMZ_EMAILHOST  DMZ_MAPPED_HOST destination static  RNET_136.1.124 RNET_136.1.124 service SMTP SMTP


Twice NAT и Object NAT.

Последнюю, четвертую часть задания, можно выполнить, используя обычный Object NAT

object network LAN_INSIDE
  nat (inside,outside) dynamic interface.

Если мы выполним команду show nat, то увидим, что сначала обрабатывается правила Twice NAT, а потом только правила Obect NAT.

Конфигурация Twice NAT на ASA 9.x

В большинстве случаев правила Twice NAT всегда занимают первую секцию NAT-правил, а Object NAT – вторую. Однако иногда может потребоваться выполнить правила Twice NAT после Object NAT. Для этого есть третья секция, в которую можно поместить правило Twice NAT принудительно, указав ключевое слово after-auto, например

nat (inside,outside) after-auto  source static  SERVER_LCOAL  SERVER_GLOBAL 

В этом случае, данное правило статической трансляции будет помещено после всех правил Obect NAT.скачать dle 10.6фильмы бесплатно
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий
 

CCIENetLab (C)