У меня возникла необходимость подключить GNS3 к физическим маршрутизаторам. В процессе изучения MPLS я проверял работу функционала bfd, который отказался работать внутри dynamips.
Для построения моей схемы мне нужно было не менее четырех интерфейсов. На моем ноуте только один сетевой порт под rj45. Очевидно, что нужно использовать dot1q. Откровенно говоря, раньше я не подключал сетку GNS к живой сети, но мне попадалась статейка о том, как это делается.
Тут проблем никаких не возникло. В GNS есть элемент "облако". Именно с помощью него можно подключиться к миру.
В настройках облака выбираем нужный ethernet-адаптер и делаем линк между элементами.
1. I updated my drivers to the latest: http://www.realtek.com.tw/downloads/dow ... Down=false
2. Once installed, went to my regedit in: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\00nn
Where nn is the physical instance of the network port where you want to capture the VLAN tags.
3. Added / Edited the following DWORDS:
MonitorModeEnabled - 1
MonitorMode - 1
*PriorityVLANTag - 0
SkDisableVlanStrip - 1
4. Restarted my machine, and voila! Working router on a switch! No need to use Linux!
Вот с реального коммутатора:
cat2960#show mac address-table dynamic interface fastEthernet 0/6
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
3 060a.7b64.eaf7 DYNAMIC Fa0/6
3 ca00.17a4.0008 DYNAMIC Fa0/6
8 0a12.7b64.eaf7 DYNAMIC Fa0/6
8 ca00.17a4.0008 DYNAMIC Fa0/6
Total Mac Addresses for this criterion: 4
Видны мак адреса виртуальных интерфейсов ноутбука и адрес виртуального маршрутизатора в разных vlan.
Посмотрим на физический интерфейс ноутбука через Wireshark.
В настройках облака выбираем нужный ethernet-адаптер и делаем линк между элементами.
У меня реальная сетка - это 192.168.3.0 с шлюзом .1. Настраиваем интерфейс маршрутизатора, проверяем доступность интернетов.
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#inte
Router(config)#interface fas
Router(config)#interface fastEthernet 0/0
Router(config-if)#ip add
Router(config-if)#ip address 192.168.3.7 255.255.255.0
Router(config-if)#no shu
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#ip route 0.0.0.0 0.0.0.0 192.168.3.1
Router(config)#end
Router#
Router#ping 8.8.8.8
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 8.8.8.8, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 112/140/192 ms
Миссия выполнена. Если в сети есть маршрутизатор, можно настраивать OSPF и прочее взаимодействие.
Как я уже говорил, для моей схемы мне нужны четыре интерфейса. Не так давно я заказал себе в Китае usb-rj45 сетевухи, но им ехать ещё пару месяцев. Их я заказывал для других целей, но можно было использовать и для этого. Тем не менее, если мне понадобится 20 интерфейсов, не подключать же мне 20 переходников usb-rj45. Все верно, нужно использовать dot1q инкапсуляцию. На моем ноуте установлена WIndows 7. В linux с vlaa никаких проблем бы не возникло, заводится с пол пинка. У большинства дистрибутивов поддержка dot1q уже есть в ядре и нужно установить лишь пакет vlan.
Я установил ubuntu на флешку, поставил туда gns3, загрузил свою схему, но меня взяло любопытство. Как же научить винду работать с dot1q. Это я решил вынести отдельной заметкой тут - http://www.k4route.ru/2014/11/windows-7-dot1q-tagged-port-trunk.html.
На коммутаторе, к которому подключен ноутбук, порт настроен так:
!
interface FastEthernet0/6
switchport trunk native vlan 4
switchport trunk allowed vlan 3,4,8
switchport mode trunk
end
!
На ноуте я создал виртуальные интерфейсы VLAN.
Для подключения маршрутизатора в GNS создаем два облака. Одно цепляем к VLAN3, другое - VLAN8.
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#inte
R1(config)#interface fas
R1(config)#interface fastEthernet 0/0
R1(config-if)#ip address 192.168.247.243 255.255.252.0
R1(config-if)#no shutdown
R1(config)#interface fastEthernet 0/1
R1(config-if)#ip address 192.168.253.18 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#end
R1#
R1#ping 192.168.244.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.244.5, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 4/9/12 ms
Success rate is 60 percent (3/5), round-trip min/avg/max = 56/72/84 ms
R1#ping 192.168.253.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.253.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 4/33/92 ms
R1#
R1#show ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.244.5 0 0050.56b4.45de ARPA FastEthernet0/0
Internet 192.168.253.1 0 0004.968b.f19c ARPA FastEthernet0/1
Давайте посмотрим в каком виде это все передается в интерфейсах. Запускаем Wireshark.
Интерфейс LAN (физический интерфейс):
Как видно, трафик на физическом интерфейсе идет с тегами 802.1q. Если посмотреть трафик на виртуально интерфейсе, видим следующее:
Входящий трафик от виртуального маршрутизатора ещё не содержит метки.
Надо заметить, что изначально GNS не видел виртуальных сетевых интерфейсов VLAN3 и VLAN8, несмотря на то, что они исправно работали.
Поиск в интернетах вывел меня на форум GNS - http://forum.gns3.net/topic7559.html. Последнее сообщение является решением этой проблемы.
Here's how:
1. I updated my drivers to the latest: http://www.realtek.com.tw/downloads/dow ... Down=false
2. Once installed, went to my regedit in: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\00nn
Where nn is the physical instance of the network port where you want to capture the VLAN tags.
3. Added / Edited the following DWORDS:
MonitorModeEnabled - 1
MonitorMode - 1
*PriorityVLANTag - 0
SkDisableVlanStrip - 1
4. Restarted my machine, and voila! Working router on a switch! No need to use Linux!
В реестре моей ОС вообще не было пунктов MonitorModeEnabled, MonitorMode и SkDisableVlanStrip.
Собственно, когда я прописал эти параметры в ветке физического интерфейса, виртуальные интерфейсы появились в GNS, но они перестали работать. В общем, чтобы все было так, как описано выше, SkDisableVlanStrip должен быть 1, остальные - 0.
Если сделать именно так:
MonitorModeEnabled - 1
MonitorMode - 1
*PriorityVLANTag - 0
SkDisableVlanStrip - 1,
то мы получаем другую схему, для которой вовсе и не нужны были все эти шаманства с тегированными интерфейсами в винде.
Эти настройки говорят системе, чтобы она не снимала метки dot1q с входящих пакетов и не отбрасывала их. Для этой схемы интерфейсы виртуального маршрутизатора нужно настроить тегированными.
!
interface FastEthernet0/0
no ip address
speed auto
duplex auto
!
interface FastEthernet0/0.3
encapsulation dot1Q 3
ip address 192.168.247.247 255.255.252.0
!
interface FastEthernet0/0.8
encapsulation dot1Q 8
ip address 192.168.253.12 255.255.255.0
!
Router#ping 192.168.244.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.244.5, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 24/39/44 ms
Router#ping 192.168.253.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.253.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 36/39/48 ms
Router#
Router#show ip arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet 192.168.244.5 0 0050.56b4.45de ARPA FastEthernet0/0.3
Internet 192.168.253.1 0 0004.968b.f19c ARPA FastEthernet0/0.8
cat2960#show mac address-table dynamic interface fastEthernet 0/6
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
3 060a.7b64.eaf7 DYNAMIC Fa0/6
3 ca00.17a4.0008 DYNAMIC Fa0/6
8 0a12.7b64.eaf7 DYNAMIC Fa0/6
8 ca00.17a4.0008 DYNAMIC Fa0/6
Total Mac Addresses for this criterion: 4
Видны мак адреса виртуальных интерфейсов ноутбука и адрес виртуального маршрутизатора в разных vlan.
Посмотрим на физический интерфейс ноутбука через Wireshark.
Трафик ходит с тегами 802.1q. Таким образом мы получили возможность собрать схему "Router on a stick" с использованием реальных машин и виртуального маршрутизатора в среде GNS3.
Рассмотрим случай, когда нам нужно подключить несколько виртуальных маршрутизаторов к реальной сети. К одному облаку не подключить два рутера. Нужно создать два облака, которыу привязать к одному и тому же физическому интерфейсу LAN. Не самый красивый вариант. Это можно реализовать с использованием виртуальных коммутаторов. В GNS есть generic switch и маршрутизаторы 7200 или 7300 с платой NM-16ESW. Тут очень подробно расписано - http://commonerrors.blogspot.ru/2011/05/how-to-use-cisco-switch-in-gns3.html.
Рассмотрим первый вариант с платой коммутации в маршрутизаторе 3700 (рекомендуется именно эта линейка, а не 3600).
Адреса на порту реального коммутатора.
cat2960#show mac address-table dynamic interface fastEthernet 0/6
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
3 060a.7b64.eaf7 DYNAMIC Fa0/6
3 ca00.1ce8.0008 DYNAMIC Fa0/6
8 0a12.7b64.eaf7 DYNAMIC Fa0/6
Total Mac Addresses for this criterion: 3
Wireshark показывает наличие 8021q.
Последний вариант, наиболее быстрый в реализации - использование generic switch.
Рассмотрим случай, когда нам нужно подключить несколько виртуальных маршрутизаторов к реальной сети. К одному облаку не подключить два рутера. Нужно создать два облака, которыу привязать к одному и тому же физическому интерфейсу LAN. Не самый красивый вариант. Это можно реализовать с использованием виртуальных коммутаторов. В GNS есть generic switch и маршрутизаторы 7200 или 7300 с платой NM-16ESW. Тут очень подробно расписано - http://commonerrors.blogspot.ru/2011/05/how-to-use-cisco-switch-in-gns3.html.
Рассмотрим первый вариант с платой коммутации в маршрутизаторе 3700 (рекомендуется именно эта линейка, а не 3600).
Настраиваем виртуальные маршрутизаторы:
R3#conf t
R3(config)#interface FastEthernet0/0
R3(config-if)#no shutdown
R3(config)#interface fastEthernet 0/0.3
R3(config-subif)#encapsulation dot1Q 3
R3(config-subif)#ip address 192.168.247.242 255.255.252.0
R3(config-subif)#no shutdown
R3(config-subif)#end
R1#conf t
R1(config)#interface fastEthernet 0/0
R1(config-if)#no shutdown
R1(config)#interface fastEthernet 0/0.8
R1(config-subif)#encapsulation dot1Q 8
R1(config-subif)#ip address 192.168.253.44 255.255.255.0
R1(config-subif)#no shutdown
R1(config-subif)#end
Настраиваем маршрутизатор с платой коммутатора:
VLAN настраивается по старославянски ещё :)
SWITCH1#vlan database
SWITCH1(vlan)#vlan 3
VLAN 3 added:
Name: VLAN0003
SWITCH1(vlan)#vlan 8
VLAN 8 added:
Name: VLAN0008
SWITCH1(vlan)#exit
APPLY completed.
Exiting....
SWITCH1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
SWITCH1(config)#interface fastEthernet 1/0
SWITCH1(config-if)#switchport mode trunk
*Mar 1 00:06:27.151: %DTP-5-TRUNKPORTON: Port Fa1/0 has become dot1q trunk
SWITCH1(config-if)#switchport trunk allowed vlan 3,8
Command rejected: Bad VLAN allowed list. You have to include all default vlans, e.g. 1-2,1002-1005.
SWITCH1(config-if)#switchport trunk allowed vlan 1,3,8,1002-1005
SWITCH1(config-if)#no shutdown
*Mar 1 00:06:47.299: %CDP-4-NATIVE_VLAN_MISMATCH: Native VLAN mismatch discovered on FastEthernet1/2 (1), with cat2960 FastEthernet0/6 (4).
SWITCH1(config)#interface fastEthernet 1/1
SWITCH1(config-if-range)#switchport mode trunk
SWITCH1(config-if-range)#no shutdown
*Mar 1 00:07:14.511: %DTP-5-TRUNKPORTON: Port Fa1/1 has becomeswitchport trunk allowed vlan 1,3,8,1002-1005
SWITCH1(config-if-range)#switchport trunk allowed vlan 1,3,8,1002-1005
SWITCH1(config)#interface fastEthernet 1/2
SWITCH1(config-if-range)#switchport mode trunk
SWITCH1(config-if-range)#switchport trunk allowed vlan 1,3,8,1002-1005
*Mar 1 00:07:34.427: %DTP-5-TRUNKPORTON: Port Fa1/2 has become dot1q trunk
SWITCH1(config-if-range)#switchport trunk allowed vlan 1,3,8,1002-1005
SWITCH1(config-if-range)#no shutdown
SWITCH1(config-if-range)#end
SWITCH1#show vlan-switch
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa1/3, Fa1/4, Fa1/5, Fa1/6
Fa1/7, Fa1/8, Fa1/9, Fa1/10
Fa1/11, Fa1/12, Fa1/13, Fa1/14
Fa1/15
3 VLAN0003 active
8 VLAN0008 active
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
SWITCH1#show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater
Device ID Local Intrfce Holdtme Capability Platform Port ID
cat2960
Fas 1/2 175 S WS-C2960- Fas 0/6
Router Fas 1/1 171 R 7206VXR Fas 0/0
Router Fas 1/0 135 R 7206VXR Fas 0/0
Обращу внимание на то, что иногда порты коммутатора находятся в состоянии down несмотря на наличие линка. По ссылке выше можно найти инфу, что в этом случае порту нужно дать shutdown, потом no shutdown. Если не сработает сразу - повторить ещё раз. Мне тогда это помогло.
Проверяем доступность реальной сети с виртуальных маршрутизаторов.
R1#ping 192.168.244.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.244.5, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/61/172 ms
R2#ping 192.168.253.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.253.1, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 12/34/64 ms
Адреса на порту реального коммутатора.
cat2960#show mac address-table dynamic interface fastEthernet 0/6
Mac Address Table
-------------------------------------------
Vlan Mac Address Type Ports
---- ----------- -------- -----
3 060a.7b64.eaf7 DYNAMIC Fa0/6
3 ca00.1ce8.0008 DYNAMIC Fa0/6
8 0a12.7b64.eaf7 DYNAMIC Fa0/6
Total Mac Addresses for this criterion: 3
Wireshark показывает наличие 8021q.
Последний вариант, наиболее быстрый в реализации - использование generic switch.
Стоит отметить, что тут все три порта настроены на транк (tagged port). Да, в generic switch так обозначается транк - VLAN=1, TYPE=DOT1Q.
Пожалуй, на этом всё.
Комментариев нет:
Отправить комментарий