...
- Net_pub – профиль адресов публичной сети;
- Srv_http – профиль портов;
- Server_ip – профиль адресов локальной сети.
...
esr
...
(config)#
...
object-group
...
network
...
Net_pub
...
esr(config-object-group-network)#
...
ip
...
address
...
185.185.11.54
...
esr(config-object-group-network)#
...
exit
...
esr(config)#
...
object-group
...
service
...
Srv_http
...
esr(config-object-group-service)#
...
port-range
...
80
...
esr(config-object-group-service)#
...
exit
...
esr(config)#
...
object-group
...
network
...
Server_ip
...
esr(config-object-group-network)#
...
ip
...
address
...
192.168.0.5
...
esr(config-object-group-network)#
...
exit
...
Далее приступим к настройке самого NAT. Войдем в режим конфигурирования функции DNAT и создадим пул адресов и портов назначения, в которые будут транслироваться адреса пакетов, поступающие на адрес 185.185.11.54 из внешней сети.
...
esr
...
(config)#
...
nat
...
destination
...
esr(config-dnat)#
...
pool
...
Server_ip
...
esr(config-dnat-pool)#
...
ip
...
address
...
192.168.0.5
...
esr(config-dnat-pool)#
...
ip
...
port
...
80
...
esr(config-dnat-pool)#
...
exit
...
Создадим набор правил «DNAT», в соответствии с которыми будет производиться трансляция адресов. В атрибутах набора укажем, что правила применяются только для пакетов, пришедших из зоны «untrusted». Набор правил включает в себя требования соответствия данных по адресу и порту назначения (match destination-address, match destination-port) и по протоколу. Кроме этого в наборе задано действие, применяемое к данным, удовлетворяющим всем правилам (action destination-nat). Набор правил вводится в действие командой «enable».
...
esr
...
(config-dnat)#
...
ruleset
...
DNAT
...
esr(config-dnat-ruleset)#
...
from
...
zone
...
untrusted
...
esr(config-dnat-ruleset)#
...
rule
...
1
...
esr(config-dnat-rule)#
...
match
...
destination-address
...
Net_pub
...
esr(config-dnat-rule)#
...
match
...
protocol
...
tcp
...
esr(config-dnat-rule)#
...
match
...
destination-port
...
Srv_http
...
esr(config-dnat-rule)#
...
action
...
destination-nat
...
pool
...
Server_ip
...
esr(config-dnat-rule)#
...
enable
...
esr(config-dnat-rule)#
...
exit
...
esr(config-dnat-ruleset)#
...
exit
...
esr(config-dnat)#
...
exit
...
Для пропуска трафика, идущего из зоны «untrusted» в «trusted», создадим соответствующее правило. Пропускать следует только трафик с адресом назначения, соответствующим заданному в профиле «SERVER_IP» и прошедший преобразование DNAT.
...
esr
...
(config)#
...
security
...
zone-pair
...
untrusted
...
trusted
...
esr(config-zone-pair)#
...
rule
...
1
...
esr(config-zone-pair-rule)#
...
match
...
destination-address
...
Server_ip
...
esr(config-zone-pair-rule)#
...
match
...
destination-nat
...
esr(config-zone-pair-rule)#
...
action
...
permit
...
esr(config-zone-pair-rule)#
...
enable
...
esr(config-zone-pair-rule)#
...
exit
...
esr(config-zone-pair)#
...
exit
esr# commit
esr# confirm
Теперь R1 будет перенаправлять обращегия обращения как требуется. Команды для просмотра состояния и настройки NAT:
...
esr# show ip nat destination pools
esr# show ip nat destination rulesets
esr# show ip nat proxy-arp
esr# show ip nat translations
NAT Hairpinning
На рисунке в начале статьи видно, что в локальной сети R1 имеются свои клиенты(client), которые тоже пользуются web-сервером. Однако когда client введет в браузере доменное имя сервера, DNS перенаправит его на адрес 185.185.11.54. Для этого настроим NAT Hairpinning.
Добавим еще один профиль для внутренней сети.
...
esr
...
(config)#
...
object-group
...
network
...
LAN
...
esr(config-object-group-network)#
...
ip
...
prefix
...
192.168.0.0/24
...
esr(config-object-group-network)#
...
exit
...
Добавим еще один ruleset в конфигурацию DNAT.
...
esr
...
(config)#
...
nat
...
destination
...
esr(config-dnat)#
...
ruleset
...
loopback
...
esr(config-dnat-ruleset)#
...
from
...
zone
...
trusted
...
esr(config-dnat-ruleset)#
...
rule
...
10
...
esr(config-dnat-rule)#
...
match
...
protocol
...
tcp
...
esr(config-dnat-rule)#
...
match
...
destination-address
...
Net_pub
...
esr(config-dnat-rule)#
...
match
...
destination-port
...
Srv_http
...
esr(config-dnat-rule)#
...
action
...
destination-nat
...
pool
...
Server_ip
...
esr(config-dnat-rule)#
...
enable
...
esr(config-dnat-rule)#
...
exit
...
esr(config-dnat-ruleset)#
...
exit
...
esr(config-dnat)#
...
exit
...
Сконфигурируем Source NAT.
...
esr
...
(config)#
...
nat
...
source
...
esr(config-snat)#
...
ruleset
...
loopback
...
esr(config-snat-ruleset)#
...
to
...
zone
...
trusted
...
esr(config-snat-ruleset)#
...
rule
...
10
...
esr(config-snat-rule)#
...
match
...
source-address
...
LAN
...
esr(config-snat-rule)#
...
action
...
source-nat
...
interface
...
esr(config-snat-rule)#
...
enable
...
esr(config-snat-rule)#
...
exit
...
esr(config-snat-ruleset)#
...
exit
...
esr(config-snat)#
...
exit
...
esr(config)#
...
exit
esr# commit
esr# confirm
Теперь пользователи локальной сети R1 будут попадать на web-сервер по внутреннему адресу.