Описание VLAN
Иногда нам может потребоваться разделить локальную сеть на несколько отдельных сегментов. Например, в компании несколько отделов: Отдел кадров, Производство, Высшее руководство, Технический отдел. Каждый отдел может иметь серверы, доступ к которым нужно ограничить сотрудникам из других отделов.
С одной стороны теоретически это легко реализовать. Ведь можно создать отдельную сетевую инфраструктуру для каждой сети.
Но с другой стороны проблема в том, что довольно сложно планировать такую сеть. Кроме того, может потребоваться изменить и саму конфигурацию сети.
Поэтому гораздо проще создать общую физическую сеть с последующим логическим сегментированием определенных частей сети.
Данный подход позволяет гораздо гибче планировать и управлять сетью, а также повышает безопасность сети.
Сегментированные сети и называются виртуальными локальными сетями (VLAN- Virtual LAN)
Как можно разделить одну физическую сеть на несколько виртуальных?
Это достигается с помощью коммутаторов. Коммутаторы поддерживают технологии IEEE 802.1Q и ISL. ISL — собственный протокол Cisco. Современные коммутаторы его уже не поддерживают, поэтому не будет далее рассматриваться.
Суть технологии заключается в том, что в Ethernet кадр вставляется специальная 4-х байтовая метка. Метка содержит 12-битный идентификатор VLAN, максимальное значение которого 4096. То есть всего может быть 4096 VLAN
Настройка VLAN
Для начала настроим сеть с одним коммутатором:
По умолчанию все порты коммутатора принадлежат VLAN 1, поэтому все компьютеры будут “видеть” друг друга. В этом легко убедиться, запустив утилиту Ping на всех хостах.
Создадим VLAN 23
switch(config)# vlan 23
switch(config-vlan)# name Management |
Затем аналогично создадим и остальные VLAN.
Теперь назначим порты 0/1, 0/2, 0/3, 0/4, 0/5 в VLAN 23:
switch(config)# interface fastethernet 0/1
switch(config-if)# switchport mode access switch(config-if)# switchport access vlan 23 |
Обрати внимание, что после ввода команды interface fastethernet 0/1 приглашение командной строки изменилось на switch(config-if)#. Это говорит о том, мы находимся в режиме настройки интерфейса.
Если портов слишком много, то будет довольно утомительно вводить одни и те же команды, поэтому гораздо удобнее выделить диапазон портов. Для этого выполни команду
switch(config) interface range fastethernet 0/1-5 |
Все остальные порты назначим по той же схеме.
Теперь попробуй выполнить команду Ping на каждом компьютере. Компьютеры из другой VLAN уже не доступны.
Помни, что все введенные команды и конфигурация хранятся в оперативной памяти, поэтому при отключении питания все настройки будут удалены.
Как сохранить настройки?
Все настройки записываются в энергонезависимую память NVRAM. Для этого выполни
switch# copy running-config startup-config |
При включении питания конфигурация из NVRAM записывается в оперативную память.Чтобы проверить произведенные настройки в оперативной памяти выполним команду
switch# show running-config |
Для просмотра настроек, сохраненных в NVRAM выполни
switch# show startup-config |
Просмотр сведений о VLAN
Для просмотра информации о VLAN выполни команду
switch# show vlan |
Кстати, конфигурация VLAN сохраняется в отдельном файле, не в NVRAM. Файл с конфигурацией о VLAN хранится во Flash памяти коммутатора. Поэтому командой show running-config мы не увидим никакую информацию о VLAN.
Чтобы уивдеть файл, содержащий данные о VLAN выполни команду
switch# dir flash: |
и ты увидишь файл vlan.dat
Типы портов
Теперь подключим к нашему коммутатору еще один коммутатор и выполним те же настройки
Однако компьютеры разных коммутаторов одного VLAN почему-то недоступны друг другу, хотя в рамках одного коммутатора все “видят” друг друга.
Все верно. Дело в том, что в технологии VLAN существуют 2 таких понятия, как порт доступа (access port) и магистральный порт (trunk port), а также связанные с ними нетегированный (untagged) и тегированный (tagged) кадры соответственно.
Все конечные устройства, такие как компьютер подключаются к портам доступа. Компьютеры вообще не знают, что принадлежат определенной VLAN, но это знает только коммутатор. Поэтому между коммутатором и компьютерами проходят нетегированные кадры, то есть кадры без метки-идентификатора VLAN.
Вспомни команду swith(config-if)# switchport mode access. Мы явно указываем коммутатору, что порт будет работать в режиме доступа.
Однако, если мы соединяем друг с другом коммутаторы, на которых настроен VLAN, то порты, их соединяющие, настраиваются как магистральные.
Во все исходящие кадры коммутатор вставляет соответствующую метку-идентификатор VLAN. Такие кадры называются тегированные.
Режимы работы trunk
Для автоматической настройки магистрального порта коммутаторы Cisco поддерживают специальный протокол DTP (Dynamic Trunk Protocol), который периодически посылает кадры соседним портам. Все коммутаторы поддерживают 4 режима работы магистрального порта
Auto — DTP-кадры не рассылает. Приняв DTP-кадр сразу переходит в магистральный режим.
Desirable — рассылает DTP-кадры. Если на другом конце готовы перейти в магистральный режим, то сразу оба порта переходят в данный режим.
Trunk — статический магистральный режим. DTP-кадры не рассылает.
Nonegotiate — готов перейти в магистральный режим только, если на другом конце установлен магистральный режим. DTP-кадры не рассылает.
В таблице указано в какое состояние перейдут порты автоматически в зависимости от установленных на них режимах:
Режимы противоположных портов | Auto | Desirable | Nonegotiate | Trunk |
Auto | Access | Trunk | Access | Trunk |
Desirable | Trunk | Trunk | Access | Trunk |
Nonegotiate | Access | Access | Access | Trunk |
Trunk | Trunk | Trunk | Trunk | Trunk |
Настройка портов trunk
Статический trunk:
switch(config-if)# switchport mode trunk |
В старых моделях коммутаторов может потребоваться настроить инкапсуляцию
switch(config-if)# switchport encapsulation dot1q |
Затем снова включить статический режим trunk
switch(config-if)# switchport mode trunk |
Динамический trunk:
Режим auto
switch(config-if)# switchport mode dynamic auto |
Режим desirable
switch(config-if)# switchport mode dynamic desirable |
Режим nonegotiate
switch(config-if)# switchport mode nonegotiate |
Для проверки текущего режима выполни
switch# show dtp status |
Теперь можно настроить порты коммутаторов в магистральный режим.
Как только магистральные порты будут настроены необходимо разрешить/запретить передачу определенных VLAN через данный порт. По умолчанию разрешены все VLAN. Чтобы разрешить, например, VLAN 23 и 50
switch(config-if)# switchport trunk allowed vlan 23, 50 |
Чтобы добавить VLAN 100 выполни
switch(config-if)# switchport trunk allowed vlan add 100 |
Для удаления VLAN 23 выполни
switch(config-if)# switchport trunk allowed vlan remove 23 |
Добавь все VLAN к магистральному порту и затем проверь доступны ли все компьютеры с одного и того же VLAN.
А если нам понадобится управлять коммутаторами мы должны выделить определенный VLAN?
Да, для этой цели в стандарте 802.1Q предусматривается так называемый нативный VLAN или Native VLAN. Все кадры в Native VLAN нетегированные. По умолчанию VLAN 1 является нативный и используется в качестве выделенного канала управления.
Но можно его поменять, к примеру, на VLAN 6.
Для этого на магистральном порту выполни команду
swith(config-if)# switchport trunk native vlan 6 |
Просмотр сведений о trunk
Для просмотра информации о настройках и режимах интерфейсов будут полезны следующие команды:
switch# show interface trunk |
switch# show interface switchport |
Настройка маршрутизации
Как сделать так, чтобы компьютеры, принадлежащие разным VLAN, могли обмениваться друг с другом информацией?
Для этого нам понадобится маршрутизатор или коммутатор L3 с функцией маршрутизации. Маршрутизатор можно подключить к любому коммутатору.
Для этого порт коммутатора, подключенный к маршрутизатору, переключи в магистральный режим.
Для этого придется задействовать по одному порту в маршрутизаторе на каждый VLAN. Это довольно затратно, поэтому воспользуемся одним физическим интерфейсом, который разобьем на логические подинтерфейсы (subinterface).
Для начала административно включим сам интерфейс, так как по умолчанию все интерфейсы на маршрутизаторах выключены
Router(config)# interface fastethernet 0/1
Router(config-if)# no shutdown |
Теперь настроим подынтерфейс 23 для VLAN 23:
Router(config)# interface fastethernet 0/1.23
Router(config-subif)# encapsulation dot1q 4 Router(config-subif)# ip address 10.23.1.254 255.255.255.0 |
То же самое проделай и с остальными подынтерфейсами.
После того, как все будет настроено, проверь доступность всех компьютеров.