Ниже показан процесс, выполняемый маршрутизатором в сети на Рисунок 2. Узлы В и С обращаются к одному узлу 2.2.2.2. На самом же деле они общаются с разными узлами во внутренней сети. Разделителем адресов этих узлов служит номер порта TCP. Фактически получается, что довольно большое количество внутренних узлов могут разделять один внутренний глобальный адрес IP, используя для этого разные порты TCP.
Если в таблице нет записей о трансляции, то маршрутизатор определяет, что адрес 1.1.1.1 должен быть транслирован, и устанавливает трансляцию внутреннего локального адреса 1.1.1.1 в имеющийся глобальный адрес. Если включен режим использования одного внутреннего глобального адреса и в настоящий момент работает другая процедура трансляции, то маршрутизатор забирает у этой процедуры данный глобальный адрес, обеспечивая при этом сохранение всей необходимой для обратной трансляции информации. Такой тип записи называется расширенной записью (Extended Entry).
Для конфигурирования режима использования одного внутреннего глобального адреса необходимо выполнить следующие шаги:
Действие | Команда |
Определить пул глобальных адресов | ip nat pool <имя> <первый адрес> <последний адрес> [netmask <маска подсети> или prefix-length <длина префикса>] |
Определить стандартный список доступа | access-list <номер> permit <внутренний адрес или блок адресов> |
Установить режим динамической трансляции адресов, разрешенных в списке доступа, определенном на предыдущем шаге | ip nat inside source list <номер списка доступа> pool <имя> overload |
Указать внутренний интерфейс | interface <тип> <номер> |
Пометить данный интерфейс, как принадлежащий внутренней сети | ip nat inside |
Указать внешний интерфейс | interface <тип> <номер> |
Пометить данный интерфейс, как принадлежащий внешней сети | ip nat outside |
Замечание
Замечание
Список доступа должен разрешать только те адреса, которые действительно необходимо транслировать (Необходимо помнить, что последней строкой любого списка доступа является deny all). Список доступа, разрешающий более широкий блок адресов может привести к непредсказуемым результатам.
Приведенный ниже пример создает пул адресов, названный net-208. Данный пул содержит адреса с 171.69.233.208 по 171.69.233.233. Список доступа 1 разрешает пакеты, имеющие адрес отправителя с 192.168.1.0 по 192.168.1.255. Если в данный момент не производится процедур трансляции, то адреса в пакетах, соответствующих условиям списка доступа 1, транслируются в адрес из указанного пула. Маршрутизатор позволяет нескольким внутренним адресам (с 192.168.1.0 по 192.168.1.255) использовать один глобальный адрес. Для определения того или иного соединения маршрутизатор использует номера портов.
ip nat pool net-208 171.69.233.208 171.69.233.233 netmask 255.255.255.240
ip nat inside source list 1 pool net-208 overload
!
interface serial0
ip address 171.69.232.182 255.255.255.240
ip nat outside
!
interface ethernet0
ip address 192.168.1.94 255.255.255.0
ip nat inside
!
access-list 1 permit 192.168.1.0 0.0.0.255