Протокол IP : Технология NAT

Одновременная настройка статического и динамического NAT

20 октября 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Перевод, выполненный профессиональным переводчиком (23 марта 2008) | Английский (19 декабря 2015) | Отзыв


Содержание


Введение

В некоторых ситуациях, возможно, окажется необходимой одновременная настройка команд статического и динамического преобразования сетевых адресов (NAT) в маршрутизаторе Cisco. Этот документ объясняет, как можно это сделать, и дает эталонный сценарий.

Предварительные условия

Требования

Знание основ понятия NAT и операции полезно.

Используемые компоненты

Сведения, содержащиеся в данном документе, касаются следующих версий программного обеспечения и оборудования:

  • Маршрутизаторы Cisco серии 3600

  • Cisco выпуск ПО IOS� 12.3 (3)

Сведения, представленные в этом документе, были получены от устройств, работающих в специальной лабораторной среде. Все устройства, описанные в этом документе, были запущены с чистой (стандартной) конфигурацией. В рабочей сети необходимо изучить потенциальное воздействие всех команд до их использования.

Условные обозначения

Дополнительные сведения об условных обозначениях см. в документе Технические рекомендации Cisco. Условные обозначения.

Настройка NAT

При динамическом преобразовании NAT таблица NAT не содержит данных, пока маршрутизатор не получит трафик, требующий преобразования. Динамические преобразования характеризуются временем ожидания, после которого они удаляются из таблицы преобразований.

При статическом NAT преобразования существуют в таблице NAT при условии, что настроены команды статического NAT, и они остаются в таблице преобразований, пока пользователь не удалит команды статического NAT.

Следующая схема сети служит примером:

http://www.cisco.com/c/dam/en/us/support/docs/ip/network-address-translation-nat/13778-9a.gif

Эти команды сконфигурированы на маршрутизаторе NAT показанном выше:

Маршрутизатор NAT
version 12.3

ip nat pool test 172.16.131.2 172.16.131.10 netmask 255.255.255.0
 


!--- Refer to 
ip nat pool
 for more details on the command.
.

ip nat inside source list 7 pool test  


!--- Refer to 
ip nat inside source
 for more details on the command.


ip nat inside source static 10.10.10.1 172.16.131.1

 interface e 0

 ip address 10.10.10.254 255.255.255.0

 ip nat inside

 interface s 0

 ip address 172.16.130.2 255.255.255.0

 ip nat outside

ip route 192.168.1.0 255.255.255.0 172.16.130.1

 access-list 7 permit 10.10.10.0 0.0.0.255

Конфигурация устройства OutsideA:

Маршрутизатор OutsideA
version 12.3
hostname outsideA

!
!
!
interface Serial1/0

ip address 172.16.130.1 255.255.255.0

serial restart-delay 0

clockrate 64000

!

interface FastEthernet2/0

ip address 192.168.1.1 255.255.255.0

speed auto

half-duplex

ip route 172.16.131.0 255.255.255.0 172.16.130.2

Конфигурация на устройстве InsideA:

Маршрутизатор InsideA
version 12.3

!
interface Ethernet1/0
 ip address 10.10.10.1 255.255.255.0
 half-duplex
!
ip route 0.0.0.0 0.0.0.0 10.10.10.254
!
!

Использование команды show ip nat translations, вы видите содержание таблицы преобразования:

NATrouter#show ip nat translations
Pro Inside global    Inside local    Outside local    Outside global
--- 172.16.131.1     10.10.10.1      ---              ---

Обратите внимание, что в таблице представлена только статическая трансляция. Эта запись преобразовывает внутренний глобальный адрес обратно во внутренний локальный адрес, это означает, что устройства внешнего облака могут передавать пакеты по глобальному адресу 172.16.131.1 и связываться с устройством во внутреннем облаке с локальным адресом 10.10.10.1.

См. пример ниже:

outsideA#ping 172.16.131.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.131.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/32/32 ms

 

NATrouter#debug ip nat 

18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1005]
18:12:06: NAT: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1005]
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1006]
18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1006]
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1007]
18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1007]
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1008]
18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1008]
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1009]
18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1009]

В таблицу преобразований больше не вносится других преобразований и другие преобразования не генерируются пока маршрутизатор не получит пакет на внутренний интерфейс с исходным адресом, разрешенным списком управления доступом (ACL) 7.

Однако поскольку пока не введено ни одного динамического преобразования, внешние устройства не могут связаться с внутренними (за исключением 10.10.10.1), даже если отправляют пакеты на глобальные адреса (от 172.16.131.2 до 172.16.131.10). Когда маршрутизатор получает пакет, предназначенный одному из этих глобальных адресов, он проверяет таблицу преобразования адресов на наличие существующего преобразования. Если его нет, он пытается маршрутизировать пакет. Это поведение NAT описано далее в разделах "Пример конфигурации с помощью команды ip nat outside source list" и "Пример конфигурации с помощью команды ip nat outside source static".

По топологии, изложенной выше, если связь между устройствами внутренней и внешней сети только образована внутренними устройствами, динамическое преобразование функционирует нормально. Но что, если почтовый сервер добавлен к внутренней сети, которая должна получить пакеты, созданные снаружи? Теперь следует настроить статическое правило NAT, чтобы внешние почтовые серверы могли устанавливать соединение с внутренним почтовым сервером. Если в приведенном выше примере почтовый сервер является устройством с локальным адресом 10.10.10.1, то уже имеется статическое преобразование.

Однако в тех случаях, когда в резерве нет большого количества глобальных адресов и нужно статически настроить одно устройство для NAT, можно использовать конфигурацию, подобную приведенной ниже:

Маршрутизатор NAT
ip nat inside source list 7 interface serial 0 overload


ip nat inside source static tcp 10.10.10.1 25 172.16.130.2 25

!--- Refer to 
ip nat inside source
 for more details on the command.


 interface e 0

 ip address 10.10.10.254 255.255.255.0

 ip nat inside 

!--- For more details the ip nat inside|outside command,
!--- please refer to 
ip nat inside
.


 interface s 0

ip address 172.16.130.2 255.255.255.0

ip nat outside 

 access-list 7 permit 10.10.10.0 0.0.0.255

 ip route 0.0.0.0 0.0.0.0 172.16.130.1

В примере выше NAT настроен для перегрузки IP-адреса на последовательном порте 0. Это означает, что можно динамически преобразовать несколько внутренних локальных адресов на те же глобальные адреса; в данном случае - это адрес, назначенный Serial 0. Кроме того, преобразование NAT настроено статически и пакеты, исходящие из локального адреса 10.10.10.1 с портом TCP 25 (SMTP) транслируются в IP-адрес TCP порта 25 Serial 0. Поскольку это запись статического NAT, почтовые серверы извне могут создавать пакеты SMTP (TCP порт 25) для глобального адреса 172.16.131.254.

Примечание: Несмотря на то, что возможно использовать тот же глобальный адрес и для Динамического и для Статического NAT, каждый раз, когда возможный лучше использовать другие глобальные адреса.

В таблице преобразования NAT присутствует следующая запись:

NATRouter#show ip nat translations

   Pro Inside global    Inside local   Outside local Outside global

   tcp 172.16.130.2:25  10.10.10.1:25      ---          --- 

Выходные данные debug ip nat иллюстрируют преобразование NAT при доступе устройства outsideA к InsideA:

04:21:16: NAT: s=192.168.1.3, d=172.16.130.2->10.10.10.1    [9919]

   04:21:16: NAT: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [0]

   04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9922]

   04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9923]

   04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [1]

   04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [2]

   04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [3]

   04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9927]

   04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [4]

   04:21:16: NAT: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [5]

   04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9931]

   04:21:17: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9934]

   04:21:17: NAT: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9935]

   04:21:17: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [6]

Таким образом, при динамической трансляции сетевых адресов (NAT) необходима коммутация пакетов через маршрутизатор NAT, чтобы генерировать трансляции NAT в таблице трансляций. Если используется команда ip nat inside , эти пакеты должны создаваться внутри. Если используется команда ip nat outside, эти пакеты должны создаваться вовне.

Статическая NAT не требует коммутации пакетов через маршрутизатор, а все преобразования вводятся в таблицу преобразования статически.


Дополнительные сведения


Document ID: 13778