100 подписчиков

Настройка NAT Overload в Cisco Packet Tracer

Разберем настройку Overload NAT или перегруженного NAT на примере CPT.

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

 Разберем настройку Overload NAT или перегруженного NAT на примере CPT.

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

Сам роутер ведет учет пакетов, и сопоставляет пары внутренний IP-адрес и TCP-порт (или UDP-порт, или номер ICMP-последовательности) и публичный IP-адрес, и также TCP-порт (или UDP, или номер ICMP).

Чтобы продемонстрировать, как это работает, соберем небольшую схему, где 192.168.1.0/24 -- частная сеть,

а 70.70.70.0/24 и 80.80.80.0/24 -- публичные адреса.

В схеме два роутера. Router0 выполняет роль NAT-шлюза, а Router1 - это тот роутер, за которым находится искомый сервер.

 Разберем настройку Overload NAT или перегруженного NAT на примере CPT.-2

Наша задача скрыть сеть 192.168.1.0/24 за NAT (NAT Overload), чтобы все пакеты во внешнюю сеть (например на 80.80.80.100) шли от адреса шлюза 70.70.70.70.

Сначала выполним настройки правого роутера Router1. На нем NAT не настраиваем.

Перейдем в привелигированный режим

Router>en

Перейдем в режим конфигурирования

Router#conf t

Enter configuration commands, one per line. End with CNTL/Z.

Настроим сетевые интерфейсы и включим их:

Router(config)#int fa0/0

Router(config-if)#ip addr 80.80.80.70 255.255.255.0

Router(config-if)#no shut

Router(config-if)#int fa5/0

Router(config-if)#ip addr 70.70.70.80 255.255.255.0

Router(config-if)#no shut

Для простоты настроим не статическую маршрутизацию (о ее настройке я написал в статье https://dzen.ru/a/Zfx2NbgccxBY1vX7 ), а в этот раз динамическую, с ипсользованием протокола RIP2.

Мы анонсируем обе сети и 70.70.70.0/24 и 80.80.80.0/24, так как нам нужно предоставить доступ к сети 80.80.80.0/24, в том числе к серверу 80.80.80.100, а сервер должен иметь возможность отправлять сообщения в сеть 70.70.70.0/24:

Router(config-if)#route rip

Router(config-router)#version 2

Router(config-router)#network 80.80.80.0

Router(config-router)#network 70.70.70.0

Router(config-router)#end

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

Теперь проверим таблицу маршрутизации:

Router#sh ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area

* - candidate default, U - per-user static route, o - ODR

P - periodic downloaded static route

Gateway of last resort is not set

70.0.0.0/24 is subnetted, 1 subnets

C 70.70.70.0 is directly connected, FastEthernet5/0

80.0.0.0/24 is subnetted, 1 subnets

C 80.80.80.0 is directly connected, FastEthernet0/0

Мы видим только непосредственно доступные сети (они обозначены как C - Connected).

Не видим маршрутов, "приехавших" от другого маршрутизатора, что и логично, он не настроен, по RIP2 (пока еще) не работает.

Поэтому настроим левый роутер Router0 (и на нем мы будем настраивать NAT).

Перейдем в привелегированный режим

Router>en

Перейдем в режим конфигурирования

Router#conf t

Enter configuration commands, one per line. End with CNTL/Z.

Настроим сетевые интерфейсы и включим:

Router(config)#int fa0/0

Router(config-if)#ip addr 192.168.1.1 255.255.255.0

Router(config-if)#no shut

%LINK-5-CHANGED: Interface FastEthernet0/0, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up

Router(config-if)#int fa5/0

Router(config-if)#ip addr 70.70.70.70 255.255.255.0

Router(config-if)#no shut

%LINK-5-CHANGED: Interface FastEthernet5/0, changed state to up

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet5/0, changed state to up

Итак, формально IP-адреса мы настроили, линки загорелись зеленым светом.

 Разберем настройку Overload NAT или перегруженного NAT на примере CPT.-3

На левом роутере нужно также настроить динамическую маршрутизацию, но с определенными особенностями. Мы будем работать по сети 70.70.70.0/24, отправлять по ней и принимать информацию о маршрутах, но мы не будем объявлять сеть 192.168.1.0/24 (так как она скрыта за NAT)

Router(config-if)#route rip

Router(config-router)#version 2

Router(config-router)#network 70.70.70.0

Router(config-router)#exit

Router(config)#exit

Еще раз повторюсь: мы не будем анонсировать сеть 192.168.1.0 (она скрыта будет за NAT), но нам необходимо анонсировать сеть 70.70.70.0, иначе мы не получим данные о сетях от маршрутизатора Router1.

Проверяем - смотрим таблицу маршрутов:

Router#sh ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area

* - candidate default, U - per-user static route, o - ODR

P - periodic downloaded static route

Gateway of last resort is not set

70.0.0.0/24 is subnetted, 1 subnets

C 70.70.70.0 is directly connected, FastEthernet5/0

R 80.0.0.0/8 [120/1] via 70.70.70.80, 00:00:12, FastEthernet5/0

C 192.168.1.0/24 is directly connected, FastEthernet0/0

Вуаля! Мы получили информацию от правого роутера - это запись R (RIP)

Сети 70.70.70.0 и 192.168.1.0 доступны напрямую через сетевые интерфейсы (C - Connected), а вот маршрут в сеть 80.0.0.0/8 доступен через шлюз 70.70.70.80 — эта информация получена нами по протоколу RIP2 от второго маршрутизатора.

Теперь пришел черед настроить NAT Overload (на левом роутере).

Сначала создаем список доступа, указывая, какие адреса могут использовать NAT:

Router#conf t

Enter configuration commands, one per line. End with CNTL/Z.

Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255

Обратите внимание на значение 0.0.0.255. Это wildcard, иногда называемым обратной маской. В данном случае это действительно, аналог маски 255.255.255.0, почему и говорят "обратная маска". Но wildcard не просто противоположность маски, это более гибкий инструмент, где 1 и 0 могут перемеживаться так, как администратору надо. Так можно пропустить четные или нечетные пакеты) В общем смысл wildcard в том, что где 0, там значение должно совпадать, а где 1 должно быть любым. Потому для wildcard 0.0.0.255 подходящими будут IP-адреса, в первых трех откетах будет 192.168.1., а четвертый -- любым числом.

Укажем, что пакеты клиентов с IP-адресов из списка 1 будут подвергаться преобразованию NAT Overload при следовании через интерфейс fa5/0:

Router(config)#ip nat inside source list 1 int fa5/0 overload

Укажем, что int fa0/0 — внутренний сетевой интерфейс для NAT:

Router(config)#int fa0/0

Router(config-if)#ip nat inside

Укажем что int fa5/0 — внешний сетевой интерфейс для NAT:

Router(config-if)#int fa5/0

Router(config-if)#ip nat outside

Router(config-if)#exit

Выполним ping c машины 192.168.1.2:

 Разберем настройку Overload NAT или перегруженного NAT на примере CPT.-4

В режиме симуляции удостоверимся, что IP-адрес действительно подменяется:

 Разберем настройку Overload NAT или перегруженного NAT на примере CPT.-5

Может возникнуть интересный вопрос: каким образом происходит трансляция ICMP, если в ICMP нет портов? Но в ICMP имеется номер последовательности, в трансляции он заменяется аналогично портам. Мы можем в этом убедиться, если посмотрим на маршрутизаторе таблицу трансляций:

Router# sh ip nat tr

 Разберем настройку Overload NAT или перегруженного NAT на примере CPT.-6

Подписывайтесь на мой канал в дзен https://dzen.ru/olinux и будете в курсе новых моих статей по компьютерным сетям и ОС GNU/Linux.

Всегда с вами, Сергей Кручинин преподаватель GNU/Linux и компьютерных сетей

 Разберем настройку Overload NAT или перегруженного NAT на примере CPT.-7