Материал просмотрен 12,693 раз(а)

В общем виде схема будет выглядеть вот так:

Две сети, 192.168.0.0/24 и 10.0.0.0/24. Одна названа локальной, вторая – чужой.

В локальной сети есть коммутатор, к которому подключено 3 узла. Их IP-адреса обозначены на схеме, шлюз по-умолчанию – 192.168.0.1 – это внутренний “хвост” маршрутизатора между сетями. Так же есть сервер 10.0.0.100, который находится в чужой сети, настройки аналогичные хостовым.

Задача:

Научиться делать трансляцию сетевых адресов тремя способами.

Поднимаем интерфейсы с обозначенными на схеме адресами. Ничего сложного в этом нет, задача много раз рассматривалась.

Router>en

Router#conf t

Router(config)#int fa0/0

Router(config-if)#ip addr 192.168.0.1 255.255.255.0

Router(config-if)#no shutRouter(config-if)#exit

Router(config)#int fa0/1

Router(config-if)#ip addr 10.0.0.1 255.255.255.0

Router(config-if)#no shut

Хостам назначаем подписанные IP адреса и не забываем указать адресом шлюза по-умолчанию внутренний адрес маршрутизатора (192.168.0.1). Проверяем доступность сервера с хостов.

PC>tracert 10.0.0.100

Tracing route to 10.0.0.100 over a maximum of 30 hops:

1 8 ms 8 ms 9 ms 192.168.0.1

2 16 ms 15 ms 16 ms 10.0.0.100

Trace complete.

PC>

Как видим, трафик прошёл через маршрутизатор, а следующим хопом – непосредственно уже на сервер. Значит схема работает!

Попутно заловим пакет, чтобы увидеть, что после маршрутизатора поля IP-пакета содержат истинный IP-адрес источника.

Способ 1. Статическая трансляция сетевых адресов (Static NAT)

Задача. Организовать трансляцию адресов по следующей схеме:

Source
New
192.168.0.11 10.0.0.11
192.168.0.12 10.0.0.12
192.168.0.13 10.0.0.11

Да вот так вот, 11-ый и 13-ый адреса маскируются в один, 11-ый.

Router(config)#ip nat inside source static 192.168.0.11 10.0.0.11

Router(config)#ip nat inside source static 192.168.0.12 10.0.0.12

Router(config)#ip nat inside source static 192.168.0.13 10.0.0.11

Router(config)#int fa0/0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#int fa0/1

Router(config-if)#ip nat outside

Router(config-if)#exit

Проверяем. Посылаем пинг-запрос с 11-го компьютера и смотрим.

P.S. Обратите внимание не демаскирущее поле TTL. Равно 127. Изначально равнялось 128, что даёт понять, что здесь возможен NAT.

Способ 2. Динамическая трансляция сетевых адресов.

Для этого будем создавать пул адресов.

Router>en

Router#conf t

Router(config)#access-list 15 permit 192.168.0.0 0.0.0.255

Router(config)#ip nat pool MY_NAT 10.0.0.11 10.0.0.15 netmask 255.255.255.0

Router(config)#ip nat inside source list 15 pool MY_NAT

Router(config)#int fa0/0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#int fa0/1

Router(config-if)#ip nat outside

Router(config-if)#exit

Всё. Итак, разбор конфига:

  • Создали список доступа ACL, по которому разрешается ходить сети 192.168.0.0/24 (обратите внимание, что используется инверсная маска, то есть не 255.255.255.0, а 0.0.0.255, это фишка ACL).
  • Создали пул с именем MY_NAT, в который выделяются адреса с 10.0.0.11 по 10.0.0.15 при маске /24, применили этот пул на правило ACL.
  • Настройки интерфейсов остались такие же.

Способ 3. Overload NAT или NAT с перегрузкой.

Этот способ не прокатит в Cisco Packet Tracer моей версии, можно заюзать GNS. Привожу код. В общем-то это разновидность второго способа:

Router>en

Router#conf t

Router(config)#access-list 15 permit 192.168.0.0 0.0.0.255

Router(config)#ip nat source list 15 fastEthernet0/1 overload

Router(config)#int fa0/0

Router(config-if)#ip nat inside

Router(config-if)#exit

Router(config)#int fa0/1

Router(config-if)#ip nat outside

Router(config-if)#exit

Таким образом пакеты будут иметь адрес IP SRC равный адресу внешнего интерфейса (fa0/1), что, в общем-то часто и встречается.