Cisco NAT

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

Автор: Наташа Самойленко (и другие)

Содержание

[править] Трансляция адресов (NAT)

[править] Статическая трансляция адресов

Внутренний интерфейс:

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

[править] Static PAT

Внутренний интерфейс:

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

[править] Динамическая трансляция адресов

[править] С использованием обычного пула адресов

[править] С использованием пула адресов, который сохраняет в IP-адресе часть хоста

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 Load Distribution

TCP Load Distribution for NAT

Можно настроить балансировку нагрузки между несколькими серверами для TCP-трафика. Не-TCP трафик транслироваться не будет (если только для него не указаны другие правила трансляции).

NAT rotary.png

Создание пула адресов (таким образом указываются адреса реальных хостов между которыми балансируется нагрузка):

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

[править] PAT

Создание 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

[править] NAT и HSRP

[править] Пример топологии

HSRP NAT.png

На маршрутизаторах 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

Настройки 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

[править] Настройка NAT

Настройка интерфейсов для трансляции адресов (одинаково на 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 -