Как сменить номер VLAN у трафика, проходящего через trunk в Cisco?

Задача

Как-то возникла задача поменять номер VLAN у трафика, проходящего между двумя коммутаторами через Trunk-канал. У Cisco есть такая вещь, как vlan mapping, но это на моделях вроде C6XXX и выше, а у меня C3560, этого нет.

План сети

Схема такая. Имеется фрагмент сети, там два коммутатора, соединённых Trunk-портом. На одном коммутаторе хосты, на втором – сервера.

Далее, Имеется три VLAN.

VLAN10 включает в себя один сервер и один хост. Тут проблем не возникает.

VLAN20 включает в себя другой сервер.

VLAN30 включает в себя ещё один хост. Теперь нужно помочь этому хосту достучаться до второго сервера.

2016-10-08_23-47-40

Как это сделать?

SW1:

vlan 10
!
vlan 30
!
interface FastEthernet0/1
switchport access vlan 10
!
interface FastEthernet0/2
switchport access vlan 30
!
interface GigabitEthernet0/1
switchport trunk encapsulation dot1q
switchport mode trunk
!

 

SW2:

vlan 10
!
vlan 20
!
interface FastEthernet0/1
switchport access vlan 10
!
interface FastEthernet0/2
switchport access vlan 20
!
interface GigabitEthernet0/1
switchport trunk encapsulation dot1q
switchport mode trunk
!

2016-10-09_00-01-39

Зачем это надо?

Причины такой сомнительной конфигурации таковы, что образован канал между двумя разными сетями, где существуют два разных админа. Хосту одного админа нужно получить доступ к сервису другого админа. Используемые в их сетях VLAN-ы частично пересекаются. Но сервисы на них пересекаться не должны. То есть изначально у первого админа для хоста выделен VLAN 30. Но этот номер у второго используется под другие нужды, свободен 20.

К соглашению они приходить не хотят, переделывать всё остальное тоже не собираются. Нужно организовать проход 30 VLAN в 20. Только и всего.

Как превратить один VLAN в другой?

На помощь приходит такое понятие как Native VLAN. Это так называемый “родной” VLAN, передаваемый без метки.

По умолчанию Native VLAN с номером 1. То есть если на access-порт с vid 1 пришёл кадр, то он передаётся без метки. И наоборот, если в коммутатор пришёл кадр без метки, то он получит метку vid 1. Самый, что ни на есть, “родной VLAN”.

Немного модернизируем нашу схему:

SW1:

interface GigabitEthernet0/1
switchport trunk native vlan 30
switchport trunk encapsulation dot1q
switchport mode trunk
spanning-tree portfast

SW2:

interface GigabitEthernet0/1
switchport trunk native vlan 20
switchport trunk encapsulation dot1q
switchport mode trunk
spanning-tree portfast

Что это нам даст?

Кадр данных, приходя с хоста в коммутатор пометится VID 30. Далее, для передачи по Trunk метка с него снимается вообще, так как 30-ый VLAN “родной” и метить этот трафик не надо.

Кадр, попадая во второй коммутатор (всё ещё без метки) заставляет коммутатор SW2 пометить его своим “родным” VLAN – 20-ым! Потому что любой нетегированный трафик должен быть помечен родным влан-ом. Кстати, если в этот порт попадёт трафик с меткой 20, такой кадр должен быть уничтожен.

Это тот ещё костыль, требует подстройки других протоколов. В частности начнёт ругаться CDP и STP. С STP я разобрался корявым portfast-режимом, а CDP лучше будет вообще отключить для безопасности!

2016-10-09_00-01-54

Интересно? Поделись с другом
Litl-Admin.ru

Comments:

Leave a Reply