Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
R3>en
R3#conf t
R3(config)#hostname Switch
Switch(config)#int vlan 1
Switch(config-if)#ip address 192.168.1.2 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#vlan 2
Switch(config-vlan)#name vlan_2
Switch(config-vlan)#exit
Switch(config)#vlan 3
Switch(config-vlan)#name vlan_3
Switch(config-vlan)#exit
Switch(config)#vlan 4
Switch(config-vlan)#name vlan_4
Switch(config-vlan)#exit
Switch(config)#exit
Switch(config)#int range f1/4 - 7
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 2
Switch(config-if-range)#exit
Switch(config)#int range f1/8 - 11
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 3
Switch(config-if-range)#exit
Switch(config)#int range f1/12 - 15
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 4
Switch(config-if-range)#exit
Switch(config)#int fa 1/0
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk encapsulation dot1q
Switch(config-if)#exit
Switch(config)#exit
Switch#wr
Switch#
R2>en
R2#conf t
R2(config)#hostname ISP
ISP(config)#int serial 0/0
ISP(config-if)#ip address 192.168.10.2 255.255.255.252 – в сторону роутера Corp
ISP(config-if)#no shutdown
ISP(config-if)#exit
ISP(config)#int loopback 0
ISP(config-if)#ip address 172.16.1.1 255.255.255.255 – имитируем «интернет»
ISP(config)#exit
ISP#wr
ISP#
R1>en
R1#conf t
R1(config)#hostname Corp
Corp(config)#int serial 0/0
Corp(config-if)#ip address 192.168.10.1 255.255.255.252 – в сторону «интернета»
Corp(config-if)#no shutdown
Corp(config-if)#exit
Corp(config)#int fa 0/0
Corp(config-if)#no shutdown
Corp(config-if)#exit
Corp(config)#int fa 0/0.1 – настраиваем субинтерфейс для каждого vlan
Corp(config-subif)#description For Manage
Corp(config-subif)#encapsulation dot1Q 1 native – прописываем режим
инкапсуляции (в данном случае еще дописываем, что этот vlan будет native
Corp(config-subif)#ip address 192.168.1.1 255.255.255.0 – назначаем IP-адрес,
который будет являться шлюзом по умолчанию для соответствующего vlan
Corp(config-subif)#exit
Corp(config)#int fa 0/0.2
Corp(config-subif)#encapsulation dot1Q 2 – обращаю внимание, что цифра должна
совпадать с номером (tag) vlan-а
Corp(config-subif)#ip address 192.168.2.1 255.255.255.0
Corp(config-subif)#exit
Corp(config)#int fa 0/0.3
Corp(config-subif)#encapsulation dot1Q 3
Corp(config-subif)#ip address 192.168.3.1 255.255.255.0
Corp(config-subif)#exit
Corp(config)#int fa 0/0.4
Corp(config-subif)#encapsulation dot1Q 4
Corp(config-subif)#ip address 192.168.4.1 255.255.255.0
Corp(config-subif)#exit
Corp(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.2 – прописываем маршрут по
умолчанию
Corp(config)#exit
Corp#wr
Corp#
где:
1- роутер ISP;
2- «интернет»;
3- коммутатор Switch;
4- хост №1 (vlan_2);
5- хост №2 (vlan_3);
6- хост №3 (vlan_4).
Видно, что сетевая доступность присутствует. На данный момент, хосты из разных vlan
тоже ping-уют друг друга, но пока не имеют доступа к «интернет».
Для устранения этой проблемы нам необходимо настроить NAT на роутере Copr.
Network address translation бывает трех видов:
Corp#
Corp#conf t
Corp(config)#int fa 0/0.2
Corp(config-subif)#ip nat inside – определяем интерфейс для NAT, за которым
находится хост(ы) с внутренним(и) IP-адресами;
Corp(config-subif)#exit
Corp(config)#int fa 0/0.4
Corp(config-subif)#ip nat inside – определяем интерфейс для NAT, за которым
находится хост(ы) с внутренним(и) IP-адресами;
Corp(config-subif)#exit
Corp(config)#int serial 0/0
Corp(config-if)#ip nat outside – определяем интерфейс для NAT, который
является внешним и имеет внешний (зарегистрированный) IP-адрес;
Corp(config-if)#exit
Corp(config)#ip nat inside source static 192.168.2.20 192.168.10.1 – прописываем
соответствие одного внутреннего IP-адреса одному внешнему. Для хоста из
vlan_4 мы не сможем этого прописать, так как внешний IP-адрес только один;
Corp(config)#exit
Corp#wr
Corp#conf t
Corp(config)#ip access-list extended ACL_NAT – создаем расширенный список
доступа (ACL) для определения тех сетей, которые будут подпадать под NAT;
Corp(config-ext-nacl)#permit ip 192.168.2.0 0.0.0.255 any – определяем сеть для
NAT (согласно нашему условию в начале поста);
Corp(config-ext-nacl)#permit ip 192.168.4.0 0.0.0.255 any – определяем сеть для
NAT (согласно нашему условию в начале поста);
Corp(config-ext-nacl)#exit
Corp(config)#no ip nat inside source static 192.168.2.20 192.168.10.1 – удаляем
статический NAT;
Corp(config)#ip nat pool NAT_POOL 192.168.10.1 192.168.10.1 netmask
255.255.255.0 – определяем pool внешних IP-адресов;
Corp(config)#ip nat inside source list ACL_NAT pool NAT_POOL – включаем
динамический NAT;
Corp(config)#exit
Corp#wr
Corp#
Если сейчас мы вернемся на Host 1 и сделаем ping на «интернет» у нас все удачно
пройдет, но если сразу после этого мы попробуем сделать это с Host 3, то нас ждет
неудача. Это связано с тем, что у нас только один внешний адрес (192.168.10.1/30) и кто
первый займет его, тот и будет иметь доступ в «интернет» :). Чтобы дать возможность
поработать и Host 3, надо отчистить таблицу трансляций командой Corp#clear ip nat
translation * и сделать ping с Host 3 еще раз:
Все работает. Так что, если вы хотите применять динамический NAT, то лучше вам иметь
целый pool зарегистрированных IP-адресов.
Но самым распространенным видом NAT, который используется практически везде,
является PAT (Port Address Translation). Его мы, в итоге, и оставим для нашей схемы. Он
даст возможность одновременно работать с «внешним миром» всем заинтересованным
хостам :).
Вновь возвращаемся на наш роутер Corp и немного переделаем конфигурацию:
Corp#conf t
Corp(config)#no ip nat inside source list ACL_NAT pool NAT_POOL – отключаем
динамический NAT;
Corp(config)#no ip nat pool NAT_POOL 192.168.10.1 192.168.10.1 netmask
255.255.255.0 – убираем наш pool адресов (он нам больше не понадобиться);
Corp(config)#ip nat inside source list ACL_NAT interface serial 0/0 overload –
включаем PAT;
Corp(config)#exit
Corp#wr
Corp#
где:
1- IP-адрес «интернет»;
2- IP-адрес Host 2 из vlan_3;
3- IP-адрес Host 3 из vlan_4;
где:
1- IP-адрес «интернет»;
2- IP-адрес Host 1 из vlan_2;
3- IP-адрес Host 3 из vlan_4;
где:
1- IP-адрес «интернет»;
2- IP-адрес Host 1 из vlan_2;
3- IP-адрес Host 2 из vlan_3;
Как видно из рисунков, у нас все получилось. Все условия выполнены (хосты пингуют
друг друга, а в «интернет» имеют доступ только vlan_2 и vlan_4). Из последнего рисунка
видно, что трансляция адресов работает корректно (два внутренних IP-адреса (Inside local)
транслируются в один внешний IP-адрес (Inside global), но в разные порты).