Вы здесь

Cisco ASA 8.4.2 с нуля. Часть 4. NAT

NAT - пожалуй одно из самых важных вещей в ASA, и для уверенной работы с ASA нужно чётко понимать принципы работы NAT.
cisco_asa_8.4.2_s_nulya._chast_3._asa_i_asdm_10_scheme_ciscomaster.ru.jpg

В предыдущей части мы построили сеть с ASA, которая соединяет внутреннюю и внешниюю подсети двумя интерфейсами: inside и outside.
Здесь к нашей сети мы добавим сеть DMZ, а также интерфейс dmz.
Также мы рассмотрим собственно реализацию NAT как для версий ASA prior_8.3, так и для версий post_8.3.

Настройка интерфейса dmz

Для начала проверим наши соединения, настроенные в прошлой части:

show interface ip brief
ping 8.8.8.8
ping tcp 195.112.100.134 80

cisco_asa_8.4.2_s_nulya._chast_4._nat_01_ciscomaster.ru.jpg

Судя по всему все работает и мы можем приступить к настройке интерфейса dmz.
ASDM > Configuration > Device Setup > Interfaces
cisco_asa_8.4.2_s_nulya._chast_4._nat_02_ciscomaster.ru.jpg

CLI

Interface GigabitEthernet3 no shutdown nameif dmz security-level 50 ip address 192.168.253.1 255.255.255.0

Проверка

show ip
show interface ip brief
show running-config interface gigabitEthernet 3
ping 192.168.253.10

Старый NAT

Поскольку еще есть масса устройств работающих со старыми версиями IOS (pre8.3), мы обязаны уметь настраивать и "Старый NAT".

Во первых в старой версии была следующая команда:
nat-control - пакеты изнутри наружу всегда должны натиться. Т.е. если не настроен NAT пакет не пойдёт в интернет.
no nat-control - пакетам изнутри наружу разрешается хотить без ната, используя чистый роутинг.

Новые версии себя ведут как будто всегда "no nat-control", т.е. подобно IOS маршрутизаторам: если настроен NAT то происходит трансляция в соответствии с правилами. Пакеты, не попавшие под трансляцию просто маршрутизируются согласно таблице маршрутизации.

Давайте теперь рассмотрим настройки NAT:

nat (inside) 1 192.168.2.0 255.255.255.0 global (outside) 1 62.105.149.230 - 62.105.149.235 global (outside) 1 62.105.149.236 global (dmz) 1
access-list NONAT permit ip (source net to dest net) nat (inside) 0 acces-lst NONAT
static (dmz,outside) 62.105.149.237 192.168.253.10 static (dmz,inside) 192.168.253.10 192.168.253.10

Принцип работы близок к логике IF > Then. Рассмотрим всё по порядку
Предположим что пошёл пакет в сторону интернет.
nat (inside) 1 192.168.2.0 255.255.255.0
"Если трафик проходит через интерфейс inside, а также его source является адрес из подсети 192.168.2.0/24.
То пусть он будет принадлежать процессу NAT с номером 1"

Далее ASA делает Routing Desision, и выясняется что пакеты должны выходить через интерфейс ouside:
global (outside) 1 62.105.149.230 - 62.105.149.235
"Если трафик выходит через интерфейс outside, а также его NAT id =1,
То пусть source address данного пакета будет заменяться на внешние адреса из пула 62.105.149.230 - 62.105.149.235"

В данном случае мы имеем пул белых адресов, т.е. мы имеем дело с Dynamic NAT.

global (outside) 1 62.105.149.236
Данная директива очень похожа на предыдущую, с той лишь разницей, что здесь применяется PAT.
При PAT все внутренние адреса натятся в единственный белый IP адрес. В нашем случае это 192.168.1.101
Т.е. в случае когда все адреса для Dynamic NAT уже были розданы и не свободных не осталось, активируется PAT,- такая конструкция называется NAT with a backup PAT.

global (dmz) 1 interface
Данная команда осуществляет PAT в случае если трафик выходит из интерфейса dmz, а также его NAT id =1.
При этом директива interface, говорит что натить система будет на белый адрес интерфейса DMZ.

Таким образом, как видно, для каждого интерфейса, для каждой зоны необходимо прописать свой NAT или PAT, и это может стать действительно сложной задачей в крупной сети, когда таких интерфейсов(виртуальных) десятки.

access-list NONAT permit ip (source net to dest net)
nat (inside) 0 acces-lst NONAT

Данная конструкция используется для запрещения NAT для определённого трафика.
Это необходимо например при построении туннеля site-to-site. В туннеле никакой трансляции быть не должно.
Идентификатор "0" есть зарезервированный номер, который говорит системе, что NAT с таким номером реально натить не будет.

static (dmz,outside) 62.105.149.237 192.168.253.10
Это статическая трансяция. Статическая потому, что она заточена только на один хост и работает только для него.
Данная трансляция транслирует внутренний адрес сервера на соответствующий белый адрес.

static (dmz,inside) 192.168.253.10 192.168.253.10
Это тоже статическая трансляция, но при трансляции адрес не меняется. Такой нат называется Identity NAT.
Для работы клиентов зоны inside и dmz никакой трансляции не нужно, но поскольку без трансляции ничего ходить не будет, приходится использовать Identity NAT.

Новый NAT

По сра