Содержание
|
dyn5(config)#ip nat inside source list natlist interface fa0/0 ? overload Overload an address translation reversible Allow out->in traffic vrf Specify vrf
Почитать про опцию reversible |
Внутренний интерфейс:
dyn3(config)# int fa0/0 dyn3(config-if)# ip nat inside
Внешний интерфейс:
dyn3(config)# int fa1/0 dyn3(config-if)# ip nat outside
Трансляция адреса в адрес:
dyn3(config)# ip nat inside source static 3.3.3.3 192.168.1.10
Трансляция адреса в адрес интерфейса:
dyn3(config)# ip nat inside source static 3.3.3.3 int fa0/0
Трансляция одной сети в другую (транслируется часть сети, а часть хоста сохраняется)
dyn3(config)# ip nat inside source static network 3.3.3.0 200.3.3.0 /24
Внутренний интерфейс:
dyn3(config)# int fa0/0 dyn3(config-if)# ip nat inside
Внешний интерфейс:
dyn3(config)# int fa1/0 dyn3(config-if)# ip nat outside
Правило трансляции:
dyn3(config)# ip nat inside source static tcp 192.168.2.1 23 interface fa1/0 23
ACL, который указывает какие адреса транслировать:
access-list 1 permit 10.3.3.0 0.0.0.255
Настройка интерфейсов:
interface Loopback0 ip address 10.3.3.2 255.255.255.255 secondary ip address 10.3.3.3 255.255.255.255 secondary ip address 10.3.3.4 255.255.255.255 secondary ip address 10.3.3.5 255.255.255.255 secondary ip address 10.3.3.7 255.255.255.255 secondary ip address 10.3.3.1 255.255.255.255 ip nat inside ip virtual-reassembly ! interface FastEthernet0/0 ip address 192.168.1.3 255.255.255.0 ip nat outside ip virtual-reassembly
Создание пула адресов (match-host указывает на то, что адрес хоста должен сохраниться):
ip nat pool DYN 200.2.2.1 200.2.2.5 netmask 255.255.255.0 type match-host
pool может состоять из изолированных частей
c1750-sm3(config)#ip nat pool xgu prefix-length 24 c1750-sm3(config-ipnat-pool)#address 10.84.10.2 10.84.10.4 c1750-sm3(config-ipnat-pool)#address 10.84.10.12 10.84.10.14
Правило трансляции:
ip nat inside source list 1 pool DYN
Проверка:
dyn3#ping 1.1.1.1 source 10.3.3.3 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds: Packet sent with a source address of 10.3.3.3 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 148/228/308 ms dyn3#ping 1.1.1.1 source 10.3.3.4 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds: Packet sent with a source address of 10.3.3.4 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 192/218/252 ms dyn3#ping 1.1.1.1 source 10.3.3.5 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds: Packet sent with a source address of 10.3.3.5 !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 112/192/220 ms
Таблица трансляций (часть хоста сохраняется):
dyn3#sh ip nat tran Pro Inside global Inside local Outside local Outside global icmp 200.2.2.3:17 10.3.3.3:17 1.1.1.1:17 1.1.1.1:17 --- 200.2.2.3 10.3.3.3 --- --- icmp 200.2.2.4:18 10.3.3.4:18 1.1.1.1:18 1.1.1.1:18 --- 200.2.2.4 10.3.3.4 --- --- icmp 200.2.2.5:19 10.3.3.5:19 1.1.1.1:19 1.1.1.1:19 --- 200.2.2.5 10.3.3.5 --- ---
IP-адреса хостов, для которых нет соответствия в пуле адресов, транслироваться не будут:
dyn3#deb ip nat det IP NAT detailed debugging is on dyn3#ping 1.1.1.1 source 10.3.3.7 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds: Packet sent with a source address of 10.3.3.7 *Sep 14 03:32:48.920: NAT: failed to allocate address for 10.3.3.7, list/map 1 *Sep 14 03:32:48.924: NAT: translation failed (E), dropping packet s=10.3.3.7 d=1.1.1.1. *Sep 14 03:32:50.920: NAT: failed to allocate address for 10.3.3.7, list/map 1 *Sep 14 03:32:50.920: NAT: translation failed (E), dropping packet s=10.3.3.7 d=1.1.1.1. *Sep 14 03:32:52.920: NAT: failed to allocate address for 10.3.3.7, list/map 1 *Sep 14 03:32:52.920: NAT: translation failed (E), dropping packet s=10.3.3.7 d=1.1.1.1. *Sep 14 03:32:54.920: NAT: failed to allocate address for 10.3.3.7, list/map 1 *Sep 14 03:32:54.920: NAT: translation failed (E), dropping packet s=10.3.3.7 d=1.1.1.1. *Sep 14 03:32:56.952: NAT: failed to allocate address for 10.3.3.7, list/map 1 *Sep 14 03:32:56.952: NAT: translation failed (E), dropping packet s=10.3.3.7 d=1.1.1.1. Success rate is 0 percent (0/5)
Можно настроить балансировку нагрузки между несколькими серверами для TCP-трафика. Не-TCP трафик транслироваться не будет (если только для него не указаны другие правила трансляции).
Создание пула адресов (таким образом указываются адреса реальных хостов между которыми балансируется нагрузка):
dyn3(config)# ip nat pool POOL6 10.3.3.1 10.3.3.5 prefix-length 24 type rotary
ACL, который разрешает виртуальный адрес выделенный для хостов (ACL заставляет правило трансляции срабатывать, когда маршрутизатор получает TCP-трафик на этот адрес):
dyn3(config)# access-list 6 permit 200.3.3.3
Правило трансляции (если с outside-интерфейса придет TCP-трафик с адресом получателя, который совпадает с ACL, то IP-адрес получателя будет транслирован в один из адресов указанного пула):
dyn3(config)# ip nat inside destination list 6 pool POOL6
Интерфейсы на dyn1:
dyn3(config)# int lo0 dyn3(config-if)# ip nat inside dyn3(config-if)# int fa0/0 dyn3(config-if)# ip nat outside
Проверка (два соединения telnet на адрес 200.3.3.3):
dyn1# telnet 200.3.3.3 Trying 200.3.3.3 ... Open User Access Verification Password: dyn3> dyn1#sh session Conn Host Address Byte Idle Conn Name 1 200.3.3.3 200.3.3.3 0 1 200.3.3.3 * 2 200.3.3.3 200.3.3.3 0 0
Таблица трансляций:
dyn3# sh ip nat trans Pro Inside global Inside local Outside local Outside global tcp 200.3.3.3:23 10.3.3.4:23 192.168.1.1:34506 192.168.1.1:34506 tcp 200.3.3.3:23 10.3.3.5:23 192.168.1.1:13040 192.168.1.1:13040
Если соединений больше, чем адресов в пуле, то снова используется первый адрес. Например, для указанного примера, для 6,7,8 подключения будут использоваться те же адреса:
dyn3#sh ip nat trans Pro Inside global Inside local Outside local Outside global tcp 200.3.3.3:23 10.3.3.1:23 192.168.1.1:12817 192.168.1.1:12817 tcp 200.3.3.3:23 10.3.3.1:23 192.168.1.1:28047 192.168.1.1:28047 tcp 200.3.3.3:23 10.3.3.2:23 192.168.1.1:24368 192.168.1.1:24368 tcp 200.3.3.3:23 10.3.3.2:23 192.168.1.1:55287 192.168.1.1:55287 tcp 200.3.3.3:23 10.3.3.3:23 192.168.1.1:17925 192.168.1.1:17925 tcp 200.3.3.3:23 10.3.3.3:23 192.168.1.1:19233 192.168.1.1:19233 tcp 200.3.3.3:23 10.3.3.4:23 192.168.1.1:18764 192.168.1.1:18764 tcp 200.3.3.3:23 10.3.3.5:23 192.168.1.1:16435 192.168.1.1:16435
Создание ACL:
dyn3(config)#access-list 7 permit 10.3.3.1 dyn3(config)#access-list 7 permit 10.3.3.2 dyn3(config)#access-list 7 permit 10.3.3.3 dyn3(config)#access-list 7 permit 10.3.3.4 dyn3(config)#access-list 7 permit 10.3.3.5
Первый вариант создания правила трансляции (параметр overload в конце команды добавится автоматически):
dyn3(config)#ip nat inside source list 7 interface fa0/0
Второй вариант требует создания пула адресов и соответствующего правила:
dyn3(config)# ip nat pool 7 192.168.1.7 192.168.1.7 prefix-length 24 dyn3(config)# ip nat inside source list 7 pool 7 overload
На маршрутизаторах dyn1 и dyn3 настроена трансляция адресов с привязкой к состоянию HSRP группы.
На qua2, qua4 настроен маршрут по умолчанию:
ip route 0.0.0.0/0 192.168.1.100
На dyn5 настроен маршрут по умолчанию:
ip route 0.0.0.0 0.0.0.0 192.168.2.100
Адреса интерфейсов dyn1:
interface FastEthernet0/0 ip address 192.168.1.1 255.255.255.0 ! interface FastEthernet1/0 ip address 192.168.2.1 255.255.255.0
Адреса интерфейсов dyn3:
interface FastEthernet0/0 ip address 192.168.1.3 255.255.255.0 ! interface FastEthernet1/0 ip address 192.168.2.3 255.255.255.0
Настройки HSRP на dyn1:
interface FastEthernet0/0 standby 1 ip 192.168.1.100 standby 1 priority 110 standby 1 preempt standby 1 name HSRP_NAT standby 1 track FastEthernet1/0 50 ! interface FastEthernet1/0 standby 2 ip 192.168.2.100 standby 2 priority 110 standby 2 preempt standby 2 track FastEthernet0/0 50
Настройки HSRP на dyn3:
interface FastEthernet0/0 standby 1 ip 192.168.1.100 standby 1 preempt standby 1 name HSRP_NAT ! interface FastEthernet1/0 standby 2 ip 192.168.2.100 standby 2 preempt
Настройка интерфейсов для трансляции адресов (одинаково на dyn1 и dyn3):
interface FastEthernet0/0 ip nat inside ! interface FastEthernet1/0 ip nat outside
Настройка правила трансляции адресов с учётом состояния HSRP (одинаково на dyn1 и dyn3):
ip nat inside source static 192.168.1.2 192.168.2.2 redundancy HSRP_NAT
Трансляция будет выполняться только в том случае, если статус HSRP группы HSRP_NAT -- Active.
На маршрутизаторах dyn1 и dyn3 настроена трансляция адресов с привязкой к состоянию HSRP группы.
На qua2, qua4 настроен маршрут по умолчанию:
ip route 0.0.0.0/0 192.168.1.100
На dyn5 настроен маршрут по умолчанию:
ip route 0.0.0.0 0.0.0.0 192.168.2.100
Адреса интерфейсов dyn1:
interface FastEthernet0/0 ip address 192.168.1.1 255.255.255.0 ! interface FastEthernet1/0 ip address 192.168.2.1 255.255.255.0
Адреса интерфейсов dyn3:
interface FastEthernet0/0 ip address 192.168.1.3 255.255.255.0 ! interface FastEthernet1/0 ip address 192.168.2.3 255.255.255.0
Настройки HSRP на dyn1:
interface FastEthernet0/0 standby 1 ip 192.168.1.100 standby 1 priority 110 standby 1 preempt standby 1 name HSRP_NAT standby 1 track FastEthernet1/0 50 ! interface FastEthernet1/0 standby 2 ip 192.168.2.100 standby 2 priority 110 standby 2 preempt standby 2 track FastEthernet0/0 50
Настройки HSRP на dyn3:
interface FastEthernet0/0 standby 1 ip 192.168.1.100 standby 1 preempt standby 1 name HSRP_NAT ! interface FastEthernet1/0 standby 2 ip 192.168.2.100 standby 2 preempt
! ip nat Stateful id 1 redundancy HSRP_NAT mapping-id 100 interface FastEthernet0/0 protocol udp ip nat pool SNAT 192.1.1.1 192.1.1.2 prefix-length 24 ip nat inside source list 1 pool SNAT mapping-id 100 !
Как уже было сказано, nat - ресурсопотребляющая операция, для оценки ситуации, может потребоваться просмотр статистики.
Показать статистику трансляций show ip nat statistics
Router#sh ip nat statistics Total active translations: 53161 (10 static, 53151 dynamic; 53151 extended) Outside interfaces: FastEthernet0/1 Inside interfaces: Virtual-Template1, Virtual-Access4, Virtual-Access8, Virtual-Access13 Virtual-Access25 Hits: 6890278 Misses: 135179 Expired translations: 82028 Dynamic mappings: -- Inside Source [Id: 1] access-list 11 interface FastEthernet0/1 refcount 53151
NAT - процесс, который сильно загружает процессорное время маршрутизатора. Очень часто возникает необходимость в ограничении временных или количественных характеристик данного процесса
Методы:
ip nat translation max-entries {number | all-vrf number | host ip-address number | list listname number | vrf name number}
Пример:
Router(config)# ip nat translation max-entries all-host 200 # 200 сессий на один адрес
Смена времени жизни (по умолчанию 24 часа)
Router(config)# ip nat translation timeout время
Смена времени жизни порта (tcp | udp), опять же значение по умолчанию 24 часа
Router(config)#ip nat translation tcp-timeout 1200 Router(config)#ip nat translation udp-timeout 30 Router(config)#ip nat translation icmp-timeout 5
Для определения порта, отличного от общепринятого используется команда ip nat service Пример:
Router(config)#ip nat service list 10 ftp tcp port 2021 Router(config)#access-list 10 permit 10.84.1.101
В этом примере ftp перебрасывается на нестандартный порт 2021
Порой необходимо отключить Nat, для обеспечения работоспособности того или иного сервиса. Делается это следующим образом:
c1750-sm3(config)#no ip nat service sip udp port 5060 c1750-sm3(config)#no ip nat service sip tcp port 5060
Протоколирование NAT translations включается или выключается с помощью команды syslog:
Router(config)# ip nat log translations syslog
Использование NAT - активирует NBAR (Network Based Application Recognition/ механизм распознавания потока данных) при этом выделяется ресурсы маршрутизатора под это приложение Пример
c871-tsum#sh ip nbar resources % Error: NBAR has not been activated c871-tsum#conf t c871-tsum(config)#int loopback 100 c871-tsum(config-if)#ip nat outside c871-tsum(config-if)#do show ip nbar resources NBAR memory usage for tracking Stateful sessions Max-age : 120 secs Initial memory : 2066 KBytes Max initial memory : 6886 KBytes Memory expansion : 68 KBytes Max memory expansion : 68 KBytes Memory in use : 2066 KBytes Max memory allowed : 13773 KBytes Active links : 0 Total links : 30383