Добрый день, уважаемые!
Необходима помощь опытных людей в понимании работы правил NAT на Cisco ASA в версии софта ниже 8.3.
Есть простая стандартная схема.
ASA. На ней три интерфейса:
— inside. 192.168.1.0/24. security-level 100
— outside. 100.100.100.2/30. secity-level 0. Для упрощения возьмём, что смотрит сразу в провайдера с ip-адресом 100.100.100.1/30
— DMZ. 172.16.1.0./24. security-level 50.
Дефолтный маршрут — в outside.
Допустим, хочу выпустить всех из inside в Интернет через динамический PAT в адрес интерфейса. Делаю:
nat (inside) 1 192.168.1.0 255.255.255.0
global (outiside) 1 interface
Как я понимаю это правило. Если пакет с src ip из сетки 192.168.1.0/24 в dst ip имеет что-либо лежащее за outside снатить его в 100.100.100.2.
Всё работает — в интернет пакеты бегают. Но пакеты не бегают при таких настройках из inside в DMZ. nat-corntrol отключен.
Пакеты начинают бегать в том случае, если я добавляю nat (inside) 0 с соответствующим ACL типа pemit ip 192.168.1.0/24 172.16.1.0/24. Ну то бишь явно указываю в каком случае NAT не нужен.
Очевидно, созданное выше правило NAT я понимаю не верно, и его нужно понимать так — Если пакет с src ip из сетки 192.168.1.0/24 бежит куда угодно снатить его в 100.100.100.2.
Это мне кажется несколько нелогичным, иначе зачем указывать в global имя интерфейса (outisde)?
Внимание вопрос. Как всё-таки правильно понимать описанное nat-правило? И есть ли возможность сделать схему работоспособной без «nat 0»-правил?
NAT control requires that packets traversing from an inside interface to an outside interface match a NAT rule; for any host on the inside network to access a host on the outside network, you must configure NAT to translate the inside host address.
When NAT control is disabled with the no-nat control command, and a NAT and a global command pair are configured for an interface, the real IP addresses cannot go out on other interfaces unless you define those destinations with the nat 0 access-list command.