Настройка VLAN в ESR-200
Почти все ЛВС так или иначе используют технологию VLAN. Здесь мы не будем рассматривать плюсы данной технологии, для ознакомления могу порекомендовать эту статью.
В этой статье мы рассмотрим, как получить доступ к устройству, находящемуся в VLAN из GNS3 и наоборот.
Присоединим наш ПК к порту 1 на ESR-200.
Сам ESR-200 предварительно настроен, вот его конфигурация:
hostname esr101
clock timezone gmt +11
syslog file ESR debug
syslog monitor debug
security zone LAN
description "LAN"
exit
object-group service SSH
description "SSH"
port-range 22
exit
object-group network MYLAN
description "MYLAN "
ip prefix 172.16.1.0/24
exit
interface gigabitethernet 1/0/1
description "LAN"
security-zone LAN
ip address 172.16.1.101/24
no shutdown
exit
interface gigabitethernet 1/0/2
shutdown
exit
interface gigabitethernet 1/0/4
shutdown
exit
interface gigabitethernet 1/0/5
shutdown
exit
interface gigabitethernet 1/0/6
shutdown
exit
interface gigabitethernet 1/0/7
shutdown
exit
interface gigabitethernet 1/0/8
shutdown
exit
security zone-pair LAN self
rule 1
description "ICMP"
action permit
match protocol icmp
match source-address any
match destination-address any
enable
exit
rule 2
description "SSH"
action permit
match protocol tcp
match source-address MYLAN
match destination-address any
match source-port any
match destination-port SSH
enable
exit
exit
ip ssh server
Откроем в GNS3 новый проект. Добавим в него Cloud и VPCS.
Соединим, как указано на рисунке:
Откроем консоль PC1 и пропишем ему ip-адрес:
PC1> ip 172.16.1.100/24
Checking for duplicate address...
PC1 : 172.16.1.100 255.255.255.0
PC1> save
Проверим связь до ESR-200
PC1> ping 172.16.1.101
84 bytes from 172.16.1.101 icmp_seq=1 ttl=64 time=2.504 ms
84 bytes from 172.16.1.101 icmp_seq=2 ttl=64 time=2.311 ms
84 bytes from 172.16.1.101 icmp_seq=3 ttl=64 time=2.408 ms
Для этой статьи нам понадобиться Open vSwitch (OvS), как добавить его в GNS3 рассмотрено в этой статье.
Добавим OvS в наш проект и соединим как показано на рисунке
Запустим проект
Откроем консоль PC1 и пропишем ему ip-адрес:
PC1> ip 172.16.200.2/28
Checking for duplicate address...
PC1 : 172.16.200.2 255.255.255.240
PC1> save
Откроем консоль OvS
Для начала удалим все бриджи:
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
Добавим в этот бридж порты eth0 и eth1
Порт eth0 у нас trunk, а eth1 access
ovs-vsctl add-port br0 eth0 trunks=2
ovs-vsctl add-port br0 eth1 tag=2
Проверим настройки:
ovs-vsctl list port
_uuid : 40346808-000c-4c5a-83d6-700cc74cef3a
bond_active_slave : []
bond_downdelay : 0
bond_fake_iface : false
bond_mode : []
bond_updelay : 0
external_ids : {}
fake_bridge : false
interfaces : [b9201bdd-9444-454e-8c50-4e190f38b3b4]
lacp : []
mac : []
name : "br0"
other_config : {}
qos : []
rstp_statistics : {}
rstp_status : {}
statistics : {}
status : {}
tag : []
trunks : []
vlan_mode : []
_uuid : 292d2ef7-c915-4229-9a44-4799562a8988
bond_active_slave : []
bond_downdelay : 0
bond_fake_iface : false
bond_mode : []
bond_updelay : 0
external_ids : {}
fake_bridge : false
interfaces : [9c103cf5-d283-451c-8710-3d9daa412721]
lacp : []
mac : []
name : "eth1"
other_config : {}
qos : []
rstp_statistics : {}
rstp_status : {}
statistics : {}
status : {}
tag : 2
trunks : []
vlan_mode : []
_uuid : c96f1517-4d13-4054-afaf-a2a149cea8e3
bond_active_slave : []
bond_downdelay : 0
bond_fake_iface : false
bond_mode : []
bond_updelay : 0
external_ids : {}
fake_bridge : false
interfaces : [f219f5bc-5f16-483b-994a-b2170c980dac]
lacp : []
mac : []
name : "eth0"
other_config : {}
qos : []
rstp_statistics : {}
rstp_status : {}
statistics : {}
status : {}
tag : []
trunks : [2]
vlan_mode : []
eth0 стал транком:
trunks : [2]
eth1 стал портом доступа:
tag : 2
На этом настройка OvS завершена.
Настроим ESR-200 для работы с VLAN
Переведём порт gi1/0/1 в режим транка
interface gigabitethernet 1/0/1
no security-zone
no ip address 172.16.1.101/24
switchport
switchport mode trunk
switchport trunk allowed vlan add 2
exit
Так как мы перевели порт в режим транка, и в этом режиме порту не может быть назначен адрес или зона безопасности, нам нужно добавить бридж, для восстановления доступа по старому ip-адресу.
Добавим бриджи:
bridge 1
vlan 1
description "LAN"
security-zone LAN
ip address 172.16.1.101/24
enable
exit
Добавим vlan 2
vlan 2
exit
Для каждого создаваемого VLAN вы должны создавать бридж.
bridge 2
vlan 2
ip address 172.16.200.1/28
security-zone LAN
enable
exit
do com
do con
Проверим пинг с PC1
Если вы работаете под Windows, далее может быть два варианта, либо всё сразу будет пинговаться, либо нет.
Если не работает, то читаем дальше, если всё работает, то пропускаем.
PC1> ping 172.16.200.1
host (172.16.200.1) not reachable
Связи нет.
Всё дело в том, что по умолчанию под Windows сетевой адаптер вырезает VLAN-теги из пакетов, поэтому нам нужно дополнительно настроить этот адаптер, как это сделать описано в предыдущей статье.
После перезагрузки ПК проверим доступность ESR-200:
PC2> ping 172.16.200.252
84 bytes from 172.16.200.252 icmp_seq=1 ttl=64 time=2.380 ms
84 bytes from 172.16.200.252 icmp_seq=2 ttl=64 time=2.258 ms
84 bytes from 172.16.200.252 icmp_seq=3 ttl=64 time=2.336 ms
84 bytes from 172.16.200.252 icmp_seq=4 ttl=64 time=2.338 ms
И с ESR-200
esr:esr101(config)# do ping 172.16.200.2
PING 172.16.200.2 (172.16.200.2) 56(84) bytes of data.
!!!!!
--- 172.16.200.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 2.329/3.298/6.762/1.735 ms
Давайте усложним задачу, например, у нас есть ВОЛС на GPON и нам нужно подключить еще два подразделения
Добавим в проект Cloud, два OvS, два VPCS и один Ethernet switch. В данному случае, коммутатор нужен нам, чтобы не плодить кучу узлов cloud, он будет выступать в роли обычного коммутатора.
Переименуем OpenvSwitch-1 в SW1, OpenvSwitch-2 в SW2, OpenvSwitch-3 в SW3.
У нас получиться вот такой проект:
Несмотря на то, что у нас каждый сегмент подключен к разным облакам, физически они все подключены к интерфейсу eth1 сервера GNS3.
Настроим 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 trunks=2
ovs-vsctl add-port br0 eth1 tag=2
Настроим PC2
PC2> ip 172.16.200.3/28
Checking for duplicate address...
PC1 : 172.16.200.3 255.255.255.240
Проверим связь:
PC2> ping 172.16.200.1
84 bytes from 172.16.200.1 icmp_seq=1 ttl=64 time=3.508 ms
84 bytes from 172.16.200.1 icmp_seq=2 ttl=64 time=3.125 ms
84 bytes from 172.16.200.1 icmp_seq=3 ttl=64 time=3.925 ms
Допустим мы не хотим, чтобы остальная сеть видела PC3, для этого спрячем его в отдельный VLAN
Настроим ESR-200
ОБЯЗАТЕЛЬНО не забываем разрешить VLAN на транк порту!
interface gigabitethernet 1/0/1
switchport trunk allowed vlan add 3
exit
vlan 3
exit
bridge 3
vlan 3
ip address 172.16.201.1/28
security-zone LAN
enable
exit
do com
do con
Настроим SW3
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 trunks=3
ovs-vsctl add-port br0 eth1 tag=3
Настроим PC3
PC3> ip 172.16.201.2/28
Checking for duplicate address...
PC1 : 172.16.201.2 255.255.255.240
PC3> save
Проверим связь:
PC3> ping 172.16.201.1
84 bytes from 172.16.201.1 icmp_seq=1 ttl=64 time=12.158 ms
84 bytes from 172.16.201.1 icmp_seq=2 ttl=64 time=3.411 ms
84 bytes from 172.16.201.1 icmp_seq=3 ttl=64 time=5.267 ms
Усложним схему, оставим всего одно облако:
Добавим еще один OvS в проект GNS3
Переименуем его в WAN
Удалим Cloud2 и соединим как показано на рисунке
Запустим WAN
Проверим пинг со всех узлов до ESR-200
Связь есть.
Теперь еще больше усложним задачу
Добавим еще один VPCS и соединим его к SW1 через порт eth2
Настроим PC4
PC4> ip 172.16.201.3/28
Checking for duplicate address...
PC1 : 172.16.201.3 255.255.255.240
PC4> save
Поместим его в VLAN 3
Настроим SW1
ovs-vsctl set port eth0 trunks=2,3
ovs-vsctl add-port br0 eth2 tag=3
Здесь мы обновили разрешенные VLAN на транковом порту.
Проверяем пинг до ESR-200
PC4> ping 172.16.201.1
84 bytes from 172.16.201.1 icmp_seq=1 ttl=64 time=4.780 ms
84 bytes from 172.16.201.1 icmp_seq=2 ttl=64 time=2.728 ms
84 bytes from 172.16.201.1 icmp_seq=3 ttl=64 time=2.775 ms
Проверяем пинг до PC3
PC4> ping 172.16.201.2
84 bytes from 172.16.201.2 icmp_seq=1 ttl=64 time=1.217 ms
84 bytes from 172.16.201.2 icmp_seq=2 ttl=64 time=0.278 ms
84 bytes from 172.16.201.2 icmp_seq=3 ttl=64 time=0.356 ms
Мы можем даже разрешить какие VLAN пропускать через коммутатор WAN
Допустим мы ходит пропускать только VLAN 2 через eth1 и VLAN 2 и 3 через eth3 на WAN
Для этого настроим WAN
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 trunks=2,3
ovs-vsctl add-port br0 eth1 trunks=2,3
ovs-vsctl add-port br0 eth2 trunks=2
ovs-vsctl add-port br0 eth3 trunks=2,3
Проверим пинг до ESR-200
PC4> ping 172.16.201.1
host (172.16.201.1) not reachable
Как и ожидалось, связи нет. Теперь переключим SW1 в WAN через порт eth3
Проверим пинг до ESR-200
PC4> ping 172.16.201.1
84 bytes from 172.16.201.1 icmp_seq=1 ttl=64 time=2.840 ms
84 bytes from 172.16.201.1 icmp_seq=2 ttl=64 time=2.561 ms
84 bytes from 172.16.201.1 icmp_seq=3 ttl=64 time=2.593 ms
Таким образом вы можете контролировать куда и какой VLAN пропускать.
У нас получился такой проект:
Заключение
Сегодня мы рассмотрели настройку VLAN на ESR-200.
Настроили транк порт и добавили бриджи для разных VLAN.
Создали проект в GNS3 и протестировали различные сценарии соединения сетей с VLAN.
Добавить комментарий