Технология VLAN позволяет разделять сеть на логические сегменты. Каждый такой логический сегмент имеет свой широковещательный домен. Уникастовый, бродкастовый и мультикастовый трафик передается только между устройствами входящими в один VLAN. VLAN часто используется для разделения IP сегментов сети, с последующей маршрутизацией и фильтрацией трафика между разными VLAN на маршрутизаторе или на L3 коммутаторе.
Как настраивать VLAN на Cisco роутере можно посмотреть в статье Cisco VLAN — настройка vlan на маршрутизаторе Cisco. Здесь речь пойдёт о настройке VLAN на коммутаторах Cisco Catalyst.
Перед настройкой VLAN на коммутаторе, необходимо определиться будет ли в сети использоваться протокол VTP (VLAN Trunking Protocol) или нет. Использование VTP облегчает управление (создание, удаление, переименовывание) VLAN-ами в сети. В случае с VTP изменение (информацию о VLAN) можно внести централизованно, на одном коммутаторе, и эти изменения распространятся на другие коммутаторы в сети. Если не использовать VTP, то изменения нужно вносить на каждом коммутаторе.
VTP накладывает свои ограничения: протокол VTP версии 1 и 2 поддерживает только базовый диапазон VLAN (c 1 по 1005), поддержка расширенного диапазона (с 1006 по 4094) возможна только в версии протокола 3. Поддержка протокола VTP 3 версии начинается с Cisco IOS версии 12.2(52)SE и выше. Настройку протокола VTP рассмотрим в другой статье, а в этой будем подразумевать, что не используем VTP.
Настройку VLAN на коммутаторе можно выделить в три этапа: создание VLAN, настройка портов, проверка.
1. Создание VLAN на Cisco Catalyst
Номера VLAN (VLAN ID) могут быть в диапазоне от 1 до 4094:
1 — 1005 базовый диапазон (normal-range)
1002 — 1005 зарезервированы для Token Ring и FDDI VLAN
1006 — 4094 расширенный диапазон (extended-range)
При создании или изменении VLAN можно задать следующие параметры:
VLAN ID | Номер VLAN |
VLAN name (name) | Имя VLAN |
VLAN type (media) | Тип VLAN (Ethernet, Fiber Distributed Data Interface [FDDI], FDDI network entity title [NET], TrBRF, или TrCRF, Token Ring, Token Ring-Net) |
VLAN state (state) | Состояние VLAN (active или suspended) |
VLAN MTU (mtu) | Максимальный размер блока данных, который может быть передан на канальном уровне |
SAID (said) | Security Association Identifier — идентификатор ассоциации безопасности (стандарт IEEE 802.10) |
Remote SPAN (remote-span) | Создание VLAN для удаленного мониторинга трафика (В дальнейшем в такой VLAN можно зеркалировать трафик с какого-нибудь порта, и передать его через транк на другой коммутатор, в котором из этого VLAN трафик отправить на нужный порт с подключенным снифером) |
Bridge identification number для TrBRF VLAN (bridge) | Идентификатор номера моста для функции TrBRF (Token Ring Bridge Relay Function). Цель функции — создание моста из колец. |
Ring number для FDDI и TrCRF VLAN (ring) | Номер кольца для типов VLAN FDDI и TrCRF (Token Ring concentrator relay functions). TrCRF называют кольца, которые включены в мост. |
Parent VLAN number для TrCRF VLAN (parent) | Номер родительского VLAN для типа VLAN FDDI или Token Ring |
Spanning Tree Protocol (STP) type для TrCRF VLAN (stp type) | Тип протокола связующего дерева (STP) для VLAN типа TrCRF |
Translational VLAN number 1 (tb-vlan1) | Номер VLAN для первичного преобразования одного типа VLAN в другой |
Translational VLAN number 2 (tb-vlan2) | Номер VLAN для вторичного преобразования одного типа VLAN в другой |
На практике чаще всего, при создании VLAN задаётся только VLAN ID и VLAN name
Значения по умолчанию:
VLAN ID | 1 |
VLAN name | VLANxxxx, где xxxx четыре цифры номера VLAN (Например: VLAN0003, VLAN0200 и т.д.) |
SAID | 100000 плюс VLAN ID (Например: 100001 для VLAN 1, 100200 для VLAN 200 и т.д.) |
VLAN MTU | 1500 |
Translational VLAN number 1 | 0 |
Translational VLAN number 2 | 0 |
VLAN state | active |
Remote SPAN | disabled |
Для создания VLAN нужно:
1. Войти в привилегированный режим и ввести необходимый пароль (команда «enable«)
sw1> sw1>enable Password: sw1#
2. Переключиться в режим глобального конфигурирования (команда «configure terminal«)
sw1# sw1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. sw1(config)#
3. Создать VLAN командой «vlan id«, где id — номер VLAN (После создания, консоль окажется в режиме конфигурирования VLAN, где можно задать перечисленные выше параметры для VLAN)
sw1(config)# sw1(config)#vlan 200 sw1(config-vlan)#
4. Задать необходимые параметры, для созданного VLAN (например имя)
sw1(config-vlan)# sw1(config-vlan)#name TESTVLAN sw1(config-vlan)#
Если, в режиме конфигурирования VLAN, ввести знак вопроса, то отобразятся параметры, которые можно задать для данного VLAN:
sw1(config-vlan)#? VLAN configuration commands: are Maximum number of All Route Explorer hops for this VLAN (or zero if none specified) backupcrf Backup CRF mode of the VLAN bridge Bridging characteristics of the VLAN exit Apply changes, bump revision number, and exit mode media Media type of the VLAN mtu VLAN Maximum Transmission Unit name Ascii name of the VLAN no Negate a command or set its defaults parent ID number of the Parent VLAN of FDDI or Token Ring type VLANs private-vlan Configure a private VLAN remote-span Configure as Remote SPAN VLAN ring Ring number of FDDI or Token Ring type VLANs said IEEE 802.10 SAID shutdown Shutdown VLAN switching state Operational state of the VLAN ste Maximum number of Spanning Tree Explorer hops for this VLAN (or zero if none specified) stp Spanning tree characteristics of the VLAN tb-vlan1 ID number of the first translational VLAN for this VLAN (or zero if none) tb-vlan2 ID number of the second translational VLAN for this VLAN (or zero if none)
5. Выйти из режима конфигурирования vlan (команда «exit«, либо «end» — выход из режима глобального конфигурирования)
sw1(config-vlan)# sw1(config-vlan)#end sw1#
Не забываем сохранять конфигурацию командой «copy running-config startup-config» в привилегированном режиме
sw1# sw1#copy running-config startup-config Destination filename [startup-config]? Building configuration... [OK]
Удалить VLAN можно командой «no vlan id» в режиме глобального конфигурирования:
sw1(config)# sw1(config)#no vlan 200 sw1(config)#
2. Настройка портов на Cisco Catalyst
Порт на коммутаторе Cisco может находиться в одном из режимов:
access — порт предназначен для подключения оконечного устройства. Принадлежит только одному VLAN. Входящий трафик от подключенного к порту устройства, маркируется заданным на порту VLAN.
trunk — порт предназначен для подключения к другому коммутатору или маршрутизатору. Порт передаёт тегированный трафик. Может передавать трафик как одного, так и нескольких VLAN через один физический кабель.
На Cisco Catalyst можно самому задать режим порта (trunk или access), либо задать автоопределение. При автоопределении режима, порт будет согласовываться с соседом (подключенным к этому порту коммутатором или иным устройством). Согласование режима порта происходит путём передачи DTP (Dynamic Trunking Protocol) фреймов. Для успешной работы протокола DTP, необходимо, что бы интерфейсы были в одном VTP домене (либо один из VTP доменов был null, неточно)
Автоопределение режима порта задаётся командой «switchport mode dynamic auto» или «switchport mode dynamic desirable» в режиме конфигурации интерфейса.
Если на интерфейсе установлено «switchport mode dynamic auto» — то порт переходит в режим trunk, только, если порт соседнего коммутатора установлен в режим «trunk» или «dynamic desirable«
Если на интерфейсе установлено «switchport mode dynamic desirable» — то порт переходит в режим trunk, только, если порт соседнего коммутатора установлен в режим «trunk» или «dynamic desirable» или «dynamic auto«
Не все устройства поддерживают DTP, либо могут некорректно передавать DTP фреймы, в таком случае лучше задать режим (access или trunk) принудительно командами «switchport mode access» или «switchport mode trunk» в режиме конфигурации интерфейса, и отключить передачу DTP фреймов командой «switchport nonegotiate«.
Конфигурация порта по умолчанию:
Режим порта/интерфейса | switchport mode dynamic auto |
Разрешённые VLAN, если порт в режиме trunk | с 1 по 4094 |
VLAN по умолчанию, если порт в режиме access | 1 |
Native VLAN, если порт в режиме trunk (IEEE 802.1q) | 1 |
Настройка порта в режим автоопределения.
Действия:
— войти в привилегированный режим (команда: «enable«)
— войти в режим глобального конфигурирования (команда: «configure terminal«)
— войти в режим конфигурирования сетевого интерфейса (команда: «interface interface-id«, где interface-id — имя и номер интерфейса, например «interface GigabitEthernet0/21″)
— задать динамический режим порта/интерфейса (команда: «switchport mode dynamic auto» или «switchport mode dynamic desirable«)
— (не обязательно) задать VLAN, который будет на интерфейсе, если порт перейдёт из режима trunk в режим access, по умолчанию VLAN 1 (команда: «switchport access vlan vlan-id«, где vlan-id — номер VLAN)
— (не обязательно) задать Native VLAN, для IEEE 802.1q транка, по умолчанию Native VLAN 1 (команда: «switchport trunk native vlan vlan-id«, где vlan-id — номер Native VLAN)
— добавить/удалить VLAN в транке, по умолчанию все номера VLAN разрешены (команды: «switchport trunk allowed vlan add vlan-list» — добавить в транк VLAN-ы перечисленные в vlan-list, «switchport trunk allowed vlan remove vlan-list» — удалить из транка VLAN-ы, перечисленные в vlan-list, в vlan-list вланы перечисляются через запятую без пробелов, а диапазоны через дефис, например 2,20,30-40,50 ). Можно сразу задать список необходимых VLAN (командой: «switchport trunk allowed vlan vlan-list«)
— включить порт/интерфейс (команда: «no shutdown«)
— выйти из режима конфигурирования интерфейса (команда: «exit» или «end» )
Пример:
sw1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. sw1(config)#interface gigabitEthernet 0/23 sw1(config-if)#switchport mode dynamic desirable sw1(config-if)#switchport access vlan 50 sw1(config-if)#switchport trunk native vlan 100 sw1(config-if)#switchport trunk allowed vlan 2,30-35,40 sw1(config-if)#no shutdown sw1(config-if)#end sw1#
В данном примере порт 23 переведётся в режим trunk, если порт на соседнем коммутаторе установлен в режиме dynamic auto или dynamic disirable или trunk . В транке будут передаваться только VLAN 2, VLAN с 30 по 35 и VLAN 40. При работе порта в режиме trunk, приходящий на него не тегированный (native) трафик будет помещаться (маркироваться) в VLAN 100. Если порт на соседнем коммутаторе работает в режиме access, то интерфейс будет помещён в VLAN 50.
Настройка access порта.
VLAN на access порту может задаваться статически либо автоматически. Автоматическое назначение VLAN основывается на МАК адресе источника, используя протокол VQP (VLAN Query Protocol) и сервер VMPS (VLAN Management Policy Server). Сервером VMPS могут выступать коммутаторы только старших моделей, такие серии как Catalyst 4000, 5000 и 6500. Автоматическую настройку access порта через VQP в данной статье рассматривать не будем. Здесь будет показано только статическое задание VLAN на access порту.
Для включения access порта в необходимый VLAN, нужно сделать:
— войти в привилегированный режим (команда: «enable«)
— войти в режим глобального конфигурирования (команда: «configure terminal«)
— войти в режим конфигурирования сетевого интерфейса (команда: «interface interface-id«, где interface-id — имя и номер интерфейса)
— задать режим порта/интерфейса «access» (команда: «switchport mode access«)
— задать VLAN на порту/интерфейсе (команда: «switchport access vlan vlan-id«, где vlan-id — номер VLAN)
— включить порт/интерфейс (команда: «no shutdown«)
— выйти из режима конфигурирования интерфейса (команда: «exit» или «end» )
Пример:
Пусть к 22-му порту коммутатора подключен сервер, который необходимо поместить в 200-й VLAN
Настройка порта:
sw1> sw1>enable Password: sw1# sw1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. sw1(config)#interface GigabitEthernet0/22 sw1(config-if)#switchport mode access sw1(config-if)#switchport access vlan 200 sw1(config-if)#no shutdown sw1(config-if)#exit sw1(config)#exit sw1#
Настройка trunk порта.
Настройка порта в режиме trunk идентична настройки порта в режиме автоопределения, за исключением того, что режим нужно указать не dynamic а trunk.
Пример:
sw6# sw6#configure terminal Enter configuration commands, one per line. End with CNTL/Z. sw6(config)#interface gigabitEthernet 0/23 sw6(config-if)#switchport mode trunk sw6(config-if)#switchport trunk allowed vlan 2,30-35,40 sw6(config-if)#no shutdown sw6(config-if)#end sw6#
В примере задаётся транк на 23-м порту, в транке разрешены только VLAN 2, VLAN с 30 по 35 и VLAN 40
Добавление VLAN в транковый порт выполняет команда: «switchport trunk allowed vlan add VLAN_NUM«
Пример добавления вланов 100 и 200 к существующим, в транковом порту 23:
sw6# sw6#configure terminal Enter configuration commands, one per line. End with CNTL/Z. sw6(config)#interface Gi0/23 sw6(config-if)#switchport trunk allowed vlan add 100,200 sw6(config-if)# sw6(config-if)#end sw6#
УдалениеVLAN из транкового порта выполняет команда: «switchport trunk allowed vlan remove VLAN_NUM«
Пример удаления вланов 100 и 200 из существующих, в транковом порту 23:
sw6# sw6#configure terminal Enter configuration commands, one per line. End with CNTL/Z. sw6(config)#interface Gi0/23 sw6(config-if)#switchport trunk allowed vlan remove 100,200 sw6(config-if)# sw6(config-if)#end sw6#
Некоторые cisco коммутаторы поддерживают два протокола для работы с VLAN это IEEE 802.1q и ISL. Протокол ISL уже устарел и на многих современных коммутаторах не поддерживается. Поэтому предпочтительнее использовать протокол IEEE 802.1q
На таких коммутаторах, перед настройкой порта в режиме транка, нужно выбрать тип инкапсуляции dot1q (комана: «switchport trunk encapsulation dot1q» в режиме конфигурации интерфейса)
3. Проверка настройки VLAN
Посмотреть информацию о VTP протоколе: «show vtp status«
Показать информацию обо всех VLAN на коммутаторе: «show vlan«
Посмотреть информацию об конкретном VLAN, и узнать на каких он портах: «show vlan id vlan-id«
Посмотреть режим работы порта, native vlan, access vlan и прочее: «show interfaces interface-id switchport«
Иногда, необходимо на коммутаторе создать интерфейс 3-го уровня для VLAN. Например, для маршрутизации и фильтрации IP трафика между разными VLAN (должна быть поддержка L3 уровня как самой моделью коммутатора так и версией IOS). Либо просто создать интерфейс для управления этим коммутатором в специальном VLAN.
Сетевой интерфейс для VLAN создаётся в режиме глобального конфигурирования командой: «interface vlan-id«, где vlan-id — это номер VLAN.
Далее консоль переходит в режим конфигурирования интерфейса, где можно задать необходимые сетевые настройки ip адрес, маску сети, повесить ACL и прочее.
Пример создания L3 интерфейса для VLAN 200:
sw1# sw1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. sw1(config)#interface vlan 200 sw1(config-if)#ip address 192.168.200.1 255.255.255.0 sw1(config-if)#end sw1#