DNAT используется для перенаправления трафика, идущего на некоторый «виртуальный» адрес в публичной сети, на «реальный» сервер в локальной сети, находящийся за сетевым шлюзом. Эту функцию можно использовать для организации публичного доступа к серверам, находящимся в частной сети и не имеющим публичного сетевого адреса.
Задача: Организовать доступ из публичной сети, относящейся к зоне «UNTRUST», к серверу локальной сети в зоне «TRUST». Адрес сервера в локальной сети - 10.1.1.100. Сервер должен быть доступным извне по адресу 1.2.3.4, доступный порт 80.
Решение:
Создадим зоны безопасности «UNTRUST» и «TRUST». Установим принадлежность используемых сетевых интерфейсов к зонам. Одновременно назначим IP-адреса интерфейсам.
esr# configureesr(config)# security zone UNTRUSTesr(config-zone)# exitesr(config)# security zone TRUSTesr(config-zone)# exitesr(config)# interface gigabitethernet 1/0/1esr(config-if-gi)# security-zone TRUSTesr(config-if-gi)# ip address 10.1.1.1/25esr(config-if-gi)# exitesr(config)# interface tengigabitethernet 1/0/1esr(config-if-te)# ip address 1.2.3.4/29esr(config-if-te)# security-zone UNTRUSTesr(config-if-te)# exit
Создадим профили IP-адресов и портов, которые потребуются для настройки правил Firewall и правил DNAT.
- NET_UPLINK – профиль адресов публичной сети;
- SERVER_IP – профиль адресов локальной сети;
- SRV_HTTP – профиль портов.
esr(config)# object-group network NET_UPLINKesr(config-object-group-network)# ip address 1.2.3.4esr(config-object-group-network)# exitesr(config)# object-group service SRV_HTTPesr(config-object-group-network)# port 80esr(config-object-group-network)# exitesr(config)# object-group network SERVER_IPesr(config-object-group-network)# ip address 10.1.1.100esr(config-object-group-network)# exit
Войдем в режим конфигурирования функции DNAT и создадим пул адресов и портов назначения, в которые будут транслироваться адреса пакетов, поступающие на адрес 1.2.3.4 из внешней сети.
esr(config)# nat destinationesr(config-dnat)# pool SERVER_POOLesr(config-dnat-pool)# ip address 10.1.1.100esr(config-dnat-pool)# ip port 80esr(config-dnat-pool)# exit
Создадим набор правил «DNAT», в соответствии с которыми будет производиться трансляция адресов. В атрибутах набора укажем, что правила применяются только для пакетов, пришедших из зоны «UNTRUST». Набор правил включает в себя требования соответствия данных по адресу и порту назначения (match destination-address, match destination-port) и по протоколу. Кроме этого в наборе задано действие, применяемое к данным, удовлетворяющим всем правилам (action destination-nat). Набор правил вводится в действие командой «enable».
esr(config-dnat)# ruleset DNATesr(config-dnat-ruleset)# from zone UNTRUSTesr(config-dnat-ruleset)# rule 1esr(config-dnat-rule)# match destination-address NET_UPLINKesr(config-dnat-rule)# match protocol tcpesr(config-dnat-rule)# match destination-port SERV_HTTPesr(config-dnat-rule)# action destination-nat pool SERVER_POOLesr(config-dnat-rule)# enableesr(config-dnat-rule)# exitesr(config-dnat-ruleset)# exitesr(config-dnat)# exit
Для пропуска трафика, идущего из зоны «UNTRUST» в «TRUST», создадим соответствующую пару зон. Пропускать следует только трафик с адресом назначения, соответствующим заданному в профиле «SERVER_IP», и прошедший преобразование DNAT.
esr(config)# security zone-pair UNTRUST TRUSTesr(config-zone-pair)# rule 1esr(config-zone-rule)# match source-address anyesr(config-zone-rule)# match destination-address SERVER_IPesr(config-zone-rule)# match protocol anyesr(config-zone-rule)# match destination-natesr(config-zone-rule)# action permitesr(config-zone-rule)# enableesr(config-zone-rule)# exitesr(config-zone-pair)# exitesr(config)# exit
Изменения конфигурации вступят в действие после применения:
esr# commitConfiguration has been successfully committedesr# confirmConfiguration has been successfully confirmed
Произведенные настройки можно посмотреть с помощью команд:
esr# show ip nat destination poolsesr# show ip nat destination rulesetsesr# show ip nat proxy-arpesr# show ip nat translations
Комментарии ()