Лабораторная работа NAT








Скачать лабораторную работу можно по ссылке: https://yadi.sk/d/QEUl2HOhcmQS8 (открывать в GNS3)

Образ ios http://commonerrors.blogspot.ru/2013/10/download-cisco-7200-series-router-ios.html

В лабораторной работе будет рассмотрен самый простой пример настройки NAT - Overloading, также известен как PAT (Port Address Translation).

1. Т.к. в лабораторной работе в качестве компьютера и в качестве облака используются маршрутизаторы cisco (просто логотип изменен). То на PC1 необходимо прописать маршрут по умолчанию:

PC1#conf t
PC1(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.1


(на R1 ничего настраивать не надо - в лабораторной работе маршрут на R1 уже прописан.)


2. Теперь, до настройки NAT, проверим как ведет себя наша сеть:

идем на R2 и включим там дебаг icmp пакетов, чтобы видеть с какого адреса к нам приходят пакеты.

R2#debug ip icmp
ICMP packet debugging is on



и с PC1 попробуем попинговать R2:

PC1#ping 208.92.153.1

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 208.92.153.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)



где 208.92.153.1 интерфейс f0/1 на R2


Возникает вопрос: если на PC1 у нас прописан маршрут по умолчанию для всех пакетов на R1, а на R1 маршрут по умолчанию - на R2, почему пинги не ходят?

Давайте сейчас посмотрим на вывод debug'a на R2:

R2#
*Nov 17 20:15:08.291: ICMP: echo reply sent, src 208.92.153.1, dst 192.168.1.2
R2#
*Nov 17 20:15:10.283: ICMP: echo reply sent, src 208.92.153.1, dst 192.168.1.2
R2#
*Nov 17 20:15:12.287: ICMP: echo reply sent, src 208.92.153.1, dst 192.168.1.2
R2#

Мы видим что R2 пытается посылать echo reply с адреса 153.1 на 192.168.1.2, но т.к. R2 у нас ничего не знает про сеть 192.168.1.0/24 то и не может отправить туда пакеты.

Давайте на R1 настроим NAT, и посмотрим что получится:
Определить и настроить интерфейсы как входящий и исходящий

R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int fa
R1(config)#int fastEthernet 0/1
R1(config-if)#
R1(config-if)#
R1(config-if)#ip nat
R1(config-if)#ip nat ou
R1(config-if)#ip nat outside
R1(config-if)#
*Nov 17 20:21:00.703: %LINEPROTO-5-UPDOWN: Line protocol on Interface NVI0, changed state to up
R1(config-if)#
R1(config-if)#exit
R1(config)#
R1(config)#
R1(config)#int fa
R1(config)#int fastEthernet 0/0
R1(config-if)#ip nat
R1(config-if)#ip nat ou
R1(config-if)#ip nat in
R1(config-if)#ip nat inside


2. Определить наши исходящие ip адреса.

Для этого мы используем ACL, мы помним, что с помощью ACL мы можем не просто ограничивать доступ, но и выбирать нужный нам трафик. Создадим ACL, и выберем трафик исходящий из нашей локальной сети:
R1(config)#ip access-list st
R1(config)#ip access-list standard IN_NAT_ADDR
R1(config-std-nacl)#
R1(config-std-nacl)#permit 192.168.1.0 0.0.0.255


3. Последняя команда: указать откуда и куда натить.

R1#conf t

R1(config)#ip nat inside source list IN_NAT_ADDR interface fastEthernet 0/1 overload


После третьего пункта настройку NAT можно считать законченной. Давайте проверим что у нас получилось:

PC1#ping 208.92.153.1

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


И что мы видим на R2:

R2#
*Nov 17 20:29:08.487: ICMP: echo reply sent, src 208.92.153.1, dst 208.92.153.6
*Nov 17 20:29:08.527: ICMP: echo reply sent, src 208.92.153.1, dst 208.92.153.6
*Nov 17 20:29:08.567: ICMP: echo reply sent, src 208.92.153.1, dst 208.92.153.6
*Nov 17 20:29:08.611: ICMP: echo reply sent, src 208.92.153.1, dst 208.92.153.6
*Nov 17 20:29:08.655: ICMP: echo reply sent, src 208.92.153.1, dst 208.92.153.6



Почему так происходит?
Потому что после настройки ната у всех пакетов выходящих из внутренней сети в заголовке меняется поле "src" с (в данном примере) адреса 192.168.1.2 на адрес 208.92.153.6 (fa0/1 на R1) . Соответственно и ответ на эти пакеты будет направляться на адрес 208.92.153.6.


После этого debug на R2 можно отключить, это можно сделать либо командой

R2#no debug ip icmp
ICMP packet debugging is off


которая отключит именно дебаг ip icmp пакетов, либо отключить вообще весь дебаг командой:

R2#u all
All possible debugging has been turned off



Это все что я хотел вам показать в этой лабораторной.
Больше информации, и видео по этой лекции вы можете найти в группе вконтакте: https://vk.com/shkola_sysadm

Так же вы можете посмотреть статьи на хабре, например вот эти:
NAT на Cisco. Часть 1
NAT на Cisco. Часть 2

Комментарии

Популярные сообщения из этого блога

How to work with authentication in Zookeeper?

How-to use cUrl for work with ZKUI.

Consul-template: how to run exec command, if file changed? Create a "watcher" via consul-template.