Нетегированный VLAN в транковом порту свича Cisco
В свич Cisco 3750 включен клиент, порт на свиче настроен в аксес-режиме, т.е. передаёт нетегированные пакеты. Возникла необходимость добавить клиенту ещё один VLAN, но при этом первый оставить нетегированным. Решается это при помощи «родных» VLAN-ов (native vlan), который и будет передаваться нетегированным при том, что порт будет в режиме транка. Вот простой пример, в котором VLAN 500 объявлен родным и передаётся нетегированным, а 100-й передаётся тегированным:
interface FastEthernet0/1
description Test
switchport trunk encapsulation dot1q
switchport trunk native vlan 500
switchport trunk allowed vlan 100,500
switchport mode trunk
Обратите внимание, что родной VLAN тоже надо указывать в списке разрешённых в транке.
При переключении порта в транк связь прерывается секунд на 5-10, но при этом клиенту для продолжения работы с нетегированными пакетами перенастраивать ничего не нужно (понятно, что для использования второго VLAN-а перенастройка необходима).
Посмотреть эти настройки можно командами «show int f0/1 switchport» и «show int f0/1 trunk». Кстати, в выводе первой команды можно увидеть строчку, в которой говорится, что на родном VLAN-е включено тегирование:
cs#sh int f0/1 switchport
...
Administrative Native VLAN tagging: enabled
...
Однако, работает всё нормально и в Интернете люди склонны считать, что это просто глюк и ссылаются на вывод другой команды:
cs#sh vlan dot1q tag native
dot1q native vlan tagging is disabled
Если на другой стороне тоже свич Cisco, то там также нужно указать родной влан, транк и т.п. Однако, если на той стороне будет стоять, например, компьютер с FreeBSD, то родной VLAN настраивается и работает как обычный, нетегированный линк, например:
ifconfig xl0 10.0.1.2 netmask 255.255.255.0
Ну и интерфейс для тегированного VLAN-а настраивается как обычно в таких случаях, например:
ifconfig vlan100 create vlan 100 vlandev xl0
ifconfig vlan100 192.168.1.2 netmask 255.255.255.0
Указание родного VLAN-а для создания подинтерфейса на роутере Cisco я не проверял, но вроде должно быть как-то так:
cs(config)# int f0/1.500
cs(config-subif)# encapsulation dot1q 500 native
cs(config-subif)# ip address 10.0.1.2 255.255.255.0