Настройка VLAN в ESR-200 - АлтунинВВ.Блог - всё об IT-технологиях!
Четверг, 03 сентября 2020 18:05

Настройка 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.

Соединим, как указано на рисунке:

2020-09-02_15-47-43.png

Откроем консоль 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 в наш проект и соединим как показано на рисунке

2020-09-02_15-44-09.png

Запустим проект

Откроем консоль 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.

У нас получиться вот такой проект:

2020-09-02_16-29-37.png

Несмотря на то, что у нас каждый сегмент подключен к разным облакам, физически они все подключены к интерфейсу 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 и соединим как показано на рисунке

2020-09-02_17-13-06.png

Запустим 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 пропускать.

У нас получился такой проект:

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

Заключение

Сегодня мы рассмотрели настройку VLAN на ESR-200.

Настроили транк порт и добавили бриджи для разных VLAN.

Создали проект в GNS3 и протестировали различные сценарии соединения сетей с VLAN.

Прочитано 165 раз Последнее изменение Понедельник, 07 сентября 2020 11:32