Работа с VLAN в GNS3 с использованием Open vSwitch - АлтунинВВ.Блог - всё об IT-технологиях!
Среда, 02 сентября 2020 17:40

Работа с VLAN в GNS3 с использованием Open vSwitch

Россия
Оцените материал
(0 голосов)

Сегодня мы рассмотрим работу с VLAN в GNS3 с использованием Open vSwitch, кстати, Eltex использует их в своих устройствах, если вы включите режим отладки на ESR вы сможете увидеть подобные строки:

2020-01-14T05:33:33+11:00 ovs|00001|vsctl|DBG|Called as ovs-vsctl set Port gi1_2 trunks=2,
2020-01-14T05:33:33+11:00 ovs|00001|vsctl|DBG|Called as ovs-vsctl set Port gi1_2 trunks=2,

Создадим новый проект в GNS3 и добавим новый шаблон – Open vSwitch. Шаблон добавляется так же, как и для Mikrotik, подробнее вы можете прочитать в этой статье. Для добавления Open vSwitch даже не придется ничего скачивать вручную, GNS3 сам скачает и настроит образ для Docker:

Pulling 'gns3/openvswitch:latest' from docker hub
Pulling image gns3/openvswitch:latest:207e252fc310: [> ] 25.16kB/2.402MB
Pulling image gns3/openvswitch:latest:9d73033ac1a1: [========================> ] 425B/856B
Pulling image gns3/openvswitch:latest:9d73033ac1a1: [==================================================>] 856B/856B
Pulling image gns3/openvswitch:latest:207e252fc310: [=> ] 49.71kB/2.402MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [> ] 42.66kB/4.148MB
Pulling image gns3/openvswitch:latest:207e252fc310: [==> ] 102.3kB/2.402MB
Pulling image gns3/openvswitch:latest:207e252fc310: [====> ] 200.6kB/2.402MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [==> ] 175.5kB/4.148MB
Pulling image gns3/openvswitch:latest:207e252fc310: [======> ] 326.9kB/2.402MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [====> ] 375.8kB/4.148MB
Pulling image gns3/openvswitch:latest:207e252fc310: [==========> ] 490.7kB/2.402MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [========> ] 727.5kB/4.148MB
Pulling image gns3/openvswitch:latest:207e252fc310: [================> ] 785.6kB/2.402MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [==========> ] 874.9kB/4.148MB
Pulling image gns3/openvswitch:latest:207e252fc310: [=========================> ] 1.212MB/2.402MB
Pulling image gns3/openvswitch:latest:207e252fc310: [=======================================> ] 1.899MB/2.402MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [===============> ] 1.272MB/4.148MB
Pulling image gns3/openvswitch:latest:207e252fc310: [========================================> ] 1.964MB/2.402MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [===============> ] 1.321MB/4.148MB
Pulling image gns3/openvswitch:latest:207e252fc310: [> ] 32.77kB/2.402MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [==================================> ] 2.861MB/4.148MB
Pulling image gns3/openvswitch:latest:207e252fc310: [==> ] 98.3kB/2.402MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [=====================================> ] 3.115MB/4.148MB
Pulling image gns3/openvswitch:latest:207e252fc310: [============================> ] 1.376MB/2.402MB
Pulling image gns3/openvswitch:latest:207e252fc310: [==================================================>] 2.402MB/2.402MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [======================================> ] 3.165MB/4.148MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [> ] 65.54kB/4.148MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [========================> ] 2.032MB/4.148MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [============================================> ] 3.67MB/4.148MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [==============================================> ] 3.867MB/4.148MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [===============================================> ] 3.932MB/4.148MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [================================================> ] 3.998MB/4.148MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [================================================> ] 4.063MB/4.148MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [=================================================> ] 4.129MB/4.148MB
Pulling image gns3/openvswitch:latest:25b93f8a41b7: [==================================================>] 4.148MB/4.148MB
Pulling image gns3/openvswitch:latest:9d73033ac1a1: [==================================================>] 856B/856B
Pulling image gns3/openvswitch:latest:9d73033ac1a1: [==================================================>] 856B/856B
Success pulling image gns3/openvswitch:latest

Так что, единственным требованием, является наличие на самом сервере доступа к сети Интернет.

Добавим 4 VPCS и соединим, как показано на рисунке:

2020-09-01_18-04-41.png

Настроим ip – адреса на PC1-4

PC1:

ip 172.16.200.1/28
save

PC2:

ip 172.16.200.2/28
save

PC3:

ip 172.16.200.3/28
save

PC4:

ip 172.16.200.4/28
save

Переименуем openvswitch-1 в SW1 и запустим его

Откроем консоль коммутатора sw1

Посмотрим список сетевых мостов (bridge - далее бридж):

# ovs-vsctl list-br
br0
br1
br2
br3

Удалим все бриджи:

ovs-vsctl  del-br br0
ovs-vsctl  del-br br1
ovs-vsctl  del-br br2
ovs-vsctl  del-br br3

Создадим новый мост

ovs-vsctl add-br br0

Добавим все порты в этот мост:

ovs-vsctl add-port br0 eth0
ovs-vsctl add-port br0 eth1
ovs-vsctl add-port br0 eth2
ovs-vsctl add-port br0 eth3

Пропингуем PC1 с PC2-4 – связь есть!

Наш коммутатор работает корректно и есть связь между узлами.

Снова удалим бридж, это быстрее чем удалять порты по одному:

ovs-vsctl  del-br br0

И теперь создадим бридж заново и добавим каждый порт в свой VLAN, для PC1-2 это будет VLAN 100, для PC3-4 VLAN 200:

ovs-vsctl add-br br0
ovs-vsctl add-port br0 eth0 tag=100
ovs-vsctl add-port br0 eth1 tag=100
ovs-vsctl add-port br0 eth2 tag=200
ovs-vsctl add-port br0 eth3 tag=200

Проверяем пинг между узлами:

PC1 и PC2 видят друг друга, но не видят PC3 и PC4 и наоборот!

Вот мы и изолировали устройства с помощью VLAN

Добавим еще один Open vSwitch, назовем его SW2 и настроим транк между SW1 и SW2.

Добавляем в проект Open vSwitch и 2 VPCS и соединяем, как показано на рисунке:

2020-09-02_17-47-57.png

Добавим транк порт на SW1

ovs-vsctl add-port br0 eth15 trunks=100,200

Настроим SW2

ovs-vsctl  del-br br0
ovs-vsctl  del-br br1
ovs-vsctl  del-br br2
ovs-vsctl  del-br br3
ovs-vsctl add-br br0
ovs-vsctl add-port br0 eth0 tag=100
ovs-vsctl add-port br0 eth1 tag=200
ovs-vsctl add-port br0 eth15 trunks=100,200

 Настроим ip-адреса на PC5 и PC6

PC5:

ip 172.16.200.5/28
save

PC6:

ip 172.16.200.6/28
save

Пингуем 172.16.200.1 с PC5

PC5> ping 172.16.200.1
84 bytes from 172.16.200.1 icmp_seq=1 ttl=64 time=0.347 ms
84 bytes from 172.16.200.1 icmp_seq=2 ttl=64 time=0.367 ms
84 bytes from 172.16.200.1 icmp_seq=3 ttl=64 time=0.366 ms

Пингуем 172.16.200.4 с PC5

PC5> ping 172.16.200.4
host (172.16.200.4) not reachable

И наоборот с PC6 доступны только PC3 и PC4

Вот и всё! Мы настроили VLAN в GN3!

Заключение

Сегодня мы рассмотрели использование Open vSwitch для работы с VLAN в GNS3.

Добавили OvS в наш проект GNS3, настроили на нем бридж и добавили в него порты с указанием какие VLAN использовать на каждом из портов.

Подключили к OvS виртуальные ПК и проверили доступность каждого из ПК в VLAN.

Добавили еще один OvS и соединили оба коммутатора транками.

Настроили порты на втором OvS и проверили связь между узлами VLAN.

Прочитано 186 раз Последнее изменение Среда, 02 сентября 2020 18:07