Перейти к содержанию

П\з №7. Технология VLAN.

1. Основы работы и конфигурации VLAN. Маршрутизация между VLAN.

VLAN (Virtual Local Area Network) – виртуальная локальная компьютерная сеть. Технология VLAN описывается в стандарте IEEE 802.1Q (Dot1q, dot англ. точка) и позволяет объединять хосты в виртуальные группы при помощи коммутаторов вне зависимости от использующегося протокола канального уровня. Работа хостов при этом никак не меняется, а деление сети на логические сегменты происходит за счёт изменения работы коммутаторов. Необходимо это для контроля передачи кадров между сегментами сети (в частности, для ограничения широковещательного домена) и объединения в логическую подсеть хостов, без изменения физической структуры.

1) TPID (англ. Tag Protocol ID) или Идентификатор тегированного протокола — состоит из 2-х байт и для VLAN всегда равен 0x8100. 2) PCP (англ. Priority Code Point) или значение приоритета — состоит из 3-х бит. Используется для приоритезации трафика. Крутые и бородатые сисадмины знают, как правильно им управлять и оперирует им, когда в сети гуляет разный трафик (голос, видео, данные и т.д.) 3) CFI (англ. Canonical Format Indicator) или индикатор каноничного формата — простое поле, состоящее из одного бита. Если стоит 0, то это стандартный формат MAC-адреса. 4) VID (англ. VLAN ID) или идентификатор VLAN — состоит из 12 бит и показывает, в каком VLAN находится кадр.

Тегирование (отметка кадра специальным тэгом (tag) - ярлыком) кадров осуществляется между сетевыми устройствами (коммутаторы, маршрутизаторы и т.д.), а между конечным узлом (компьютер, ноутбук) и сетевым устройством кадры не тегируются. Поэтому порт сетевого устройства может находиться в 2-х состояниях: access или trunk. Кадры первого VLAN обычно не тегируются — он является родным VLAN (native vlan). Каждый коммутатор принимает теперь решение на основе этой метки-тега (или его отсутствия). В таблицу МАС-адресов добавляется ещё столбец с номером VLAN и при поиске пары MAC-адрес/порт теперь будет сравниваться тег кадра с номером VLAN в таблице. Существует два типа портов:

  1. Access port — порт доступа — порт, находящийся в определенном VLAN и передающий не тегированные кадры. Как правило, это порт, смотрящий на пользовательское устройство. К нему подключаются, как правило, конечные узлы. Трафик между этим портом и устройством нетегированный. За каждым access-портом закреплён определённый VLAN, иногда этот параметр называют PVID. Весь трафик, приходящий на этот порт от конечного устройства, получает метку этого VLAN, а исходящий уходит без метки.
  2. Trunk port — порт, передающий тегированный трафик. Как правило, этот порт поднимается между сетевыми устройствами. У этого порта два основных применения — линия между двумя коммутаторами или от коммутатора к маршрутизатору. Внутри такой линии Trunk передаётся трафик нескольких VLAN. Разумеется, тут трафик уже идёт с тегами, чтобы принимающая сторона могла отличить кадр, который идёт в бухгалтерию, от кадра, предназначенного для ИТ-отдела. За Trunk портом закрепляется целый диапазон VLAN.

Кроме того, существует вышеупомянутый native vlan. Трафик этого VLAN не тегируется даже в Trunk, по умолчанию это 1-й VLAN и по умолчанию он разрешён. Вы можете переопределить эти параметры.

Нужен он для совместимости с устройствами, незнакомыми с инкапсуляцией 802.1q. Например, вам нужно через Wi-Fi мост передать 3 VLAN, и один из них является VLAN управления. Если Wi-Fi-модули не понимают стандарт 802.1q, то управлять ими вы сможете, только если этот VLAN настроите, как native vlan с обеих сторон.

  • Широковещательный домен (англ. broadcast domain) — группа доменов коллизий, соединенных с помощью устройств второго уровня. Иными словами, логический участок компьютерной сети, в котором все узлы могут передавать данные друг другу с помощью широковещания на канальном уровне сетевой модели OSI.
  • Домен коллизий (англ. collision domain) — часть сети, все узлы которой конкурируют за общую разделяемую среду передачи и, следовательно, каждый узел которой может создать коллизию с любым другим узлом этой части сети. Другими словами — сегмент сети, имеющий общий канальный уровень модели OSI, в котором передать кадр может только один хост одновременно. Задержка распространения кадров между хостами либо одновременное начало передачи вызывает возникновение коллизий, которые требуют специальной обработки и снижают производительность сети.

Современные Ethernet сети являются коммутируемыми и строятся без использования концентраторов, повторителей и мостов. А значит в них у каждого хоста свой домен коллизий и прямое подключение к коммутатору. Контролировать передачу кадров в коммутируемых сетях можно с помощью списков доступа ACL. Но, во-первых, решение вышеописанных задач с помощью ACL получилось бы слишком сложным и долгим для администратора сетевого оборудования. А во-вторых, с помощью ACL нельзя запретить передачу широковещательного трафика. Поэтому коммутируемые сети называют плоскими – потому что они прозрачны для широковещательного трафика. Технология VLAN позволяет достаточно просто решить эту задачу. Передача кадров между разными виртуальными сетями на основании адреса канального уровня запрещена независимо от типа адреса – unicast, multicast, broadcast.

Для связывания виртуальных сетей VLAN используются L3 устройства – маршрутизаторы и L3 коммутаторы, которые также являются естественными ограничителями широковещательных доменов.

блог Касперского, Kaspersky daily

«Чаще всего технологию VLAN используют для объединения в одну подсеть компьютеров, подключенных к разным физическим маршрутизаторам (например, машины, находящиеся в разных офисах). Однако с точки зрения информационной безопасности у неё тоже много преимуществ. Она не только позволяет обезопасить устройство одной подсети от несанкционированного доступа из другой, но и облегчает управление политиками безопасности, позволяя применять эти политики к целой подсети, а не к отдельным устройствам.»

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

На Рисунке 1 изображены три виртуальные локальные сети:

Рисунок 1 - Виртуальные локальные сети VLAN

Рабочая станция Host-1 в сети VLAN1 ограничена общением с сервером Host-6, который также находится в VLAN1. Это связано с тем, что виртуальные сети логически сегментируют всю сеть на широковещательные домены так, чтобы пакеты переключались только между портами, которые назначены на ту же самую VLAN. Каждая сеть VLAN состоит из узлов, объединенных единственным широковещательным доменом, образованным приписанными к виртуальной сети портами коммутатора. Для функционирования VLAN необходимо на коммутаторе сконфигурировать все виртуальные локальные сети и приписать порты коммутатора к соответствующей сети VLAN. Если кадр должен пройти через коммутатор и MAC-адрес назначения известен, то коммутатор продвигает кадр к соответствующему выходному порту (Рисунок 2). Если MAC-адрес неизвестен, то происходит широковещательная передача во все порты широковещательного домена, кроме исходного порта, откуда кадр был получен (Рисунок 3). Важно помнить, что широковещательные передачи снижают безопасность информации.

Рисунок 2 - Передача кадра при известном MAC-адресе

Рисунок 3 - Передача кадра при неизвестном MAC-адресе

Управление виртуальными сетями VLAN реализуется через первую сеть – VLAN1 (данная сеть получила название сеть по умолчанию или default VLAN) и сводится к управлению портами коммутатора. Для управления коммутатором хотя бы один порт должен быть в VLAN1. Все остальные порты могут быть назначены другим сетям VLAN. Поскольку данная информация известна всем, то хакеры пытаются атаковать именно эту сеть. Поэтому на практике администраторы изменяют номер сети по умолчанию, например, на номер VLAN101.

Каждой виртуальной сети при конфигурировании должен быть назначен IP-адрес сети или подсети с соответствующей маской для того, чтобы виртуальные сети могли общаться между собой. На Рисунке 1 сети VLAN1 назначен адрес 192.168.10.0/24, VLAN2 – 192.168.20.0/24, VLAN3 – 192.168.30.0/24. Каждому хосту необходимо задать IP-адрес из диапазона адресов соответствующей сети. Например, Host 1 может иметь адрес 192.168.10.1/24, сервер Host 6 – 192.168.10.2/24 и т.д. (Рисунок 1).

Идентификаторы виртуальных сетей (VLAN1, VLAN2, VLAN3 и т.д.) могут назначаться из нормального диапазона 1 – 1005, в котором номера 1002-1005 зарезервированы для технологий Token Ring и FDDI. Существует также расширенный диапазон идентификаторов 1006 – 4096. Однако для облегчения управления рекомендуется, чтобы сетей VLAN было не более 255 и сети не расширялись вне коммутатора.

Рассмотрим пример передачи кадра между хостами, находящимися в одной сети VLAN и в разных:

Рисунок 4 - Три виртуальных сети VLAN

На рисунке три виртуальных сети VLAN созданы одним маршрутизатором и тремя коммутаторами. Маршрутизатор управляет трафиком между сетями VLAN, используя маршрутизацию. Если рабочая станция сети VLAN1, подключенная к коммутатору 2 захочет послать кадр серверу в той же самой VLAN1, то адресом назначения кадра будет MAC-адрес рабочей станции назначения и из коммутатора 2 кадр отправится сначала на коммутатор 1, а затем на сервер. Если же та же самая рабочая станция захочет переслать кадр серверу в сети VLAN2, то кадры будут пересланы на MAC-адрес интерфейса F0/0 маршрутизатора, затем на коммутатор 1, а потом на сервер. В данном случае маршрутизация выполнялась на интерфейсе F0/0 маршрутизатора. Для выполнения своих функций в виртуальных сетях коммутатор должен поддерживать таблицы коммутации (продвижения) для каждой VLAN. Для продвижения кадров производится поиск адреса в таблице только данной VLAN. Если адрес источника ранее не был известен, то при получении кадра коммутатор добавляет этот адрес в таблицу. Поскольку кадры данных могут быть получены коммутатором от любого устройства, присоединенного к любой виртуальной сети, то при обмене данными между коммутаторами в заголовок кадра добавляется уникальный идентификатор кадра – тег виртуальной сети (Рисунок 5), который определяет VLAN каждого пакета.

Рисунок 5 - Формат тега виртуальной сети

12 двоичных разрядов используется для адресации VLAN (поле VLAN ID), 3 разряда позволяют задавать уровни приоритета передаваемых сообщений (всего их 8) и 1 разряд поля CFI показывает, что виртуальная сеть является Token Ring. Пакет отправляется коммутатором или маршрутизатором, базируясь на идентификаторе VLAN и MAC-адресе. После достижения сети назначения идентификатор VLAN удаляется из пакета коммутатором, а пакет отправляется присоединенному устройству. При построении сети на нескольких коммутаторах необходимо выделить дополнительные пары портов для объединения виртуальных сетей, узлы которых подключены к разным коммутаторам (Рисунок 6). Дополнительных пар портов двух коммутаторов должно быть выделено столько, сколько создано сетей VLAN.

Рисунок 6 - Объединение виртуальных сетей двух коммутаторов

Вместо того, чтобы выделять отдельный канал под каждый VLAN, можно проложить один агрегированный логический канал или транк (Trunk). Транковые соединения используются и для подключения маршрутизатора к коммутатору. При этом на интерфейсе маршрутизатора формируются несколько субинтерфейсов (по одному на каждую виртуальную сеть). Пропускная способность транка должна быть равна сумме пропускных способностей физических каналов.

Рисунок 7 - Замена совокупности каналов под каждый VLAN на транк

2. Конфигурация VLAN

Существуют статические и динамические VLAN. Динамические VLAN создаются через программное обеспечение управления сети. Однако динамические VLAN широко не используются. Наибольшее распространение получили статические VLAN – входящие в сеть устройства автоматически становятся членами VLAN порта, к которому подсоединены. Конфигурирование виртуальных сетей Статическое конфигурирование виртуальных сетей сводится к назначению портов коммутатора на каждую виртуальную локальную сеть VLAN, то есть каждый порт приписывается к какой-то виртуальной сети. Пользователи подключены к коммутатору на уровне доступа. Рассмотрим конфигурирование коммутатора для локальной сети на Рисунке 8:

Рисунок 8 - Виртуальная локальная сеть

Состояние виртуальных сетей и интерфейсов коммутатора можно посмотреть следующей командой:

Switch#sh vlan br

Рисунок 9 - VLAN brief

Из распечатки следует, что все 24 интерфейса FastEthernet приписаны к сети по умолчанию VLAN1, активных виртуальных сетей нет, за исключением 1002-1005.

Создадим виртуальные локальные сети (VLAN) в режиме глобального конфигурирования:

Switch(config)#vlan 10
Switch(config-vlan)#vlan 20
Switch(config-vlan)#vlan 30

Также VLAN’у можно присвоить имя командой name:

Switch(config-vlan)#name VLAN30

Посмотрим состояние VLAN:

Рисунок 10 - Статус новых VLAN

После создания виртуальных сетей vlan 10, vlan 20 и vlan 30 они становятся активны. Также в поле Name видно имя, присвоенное vlan 30. На следующем этапе необходимо назначить виртуальные сети на определенные интерфейсы. В данном случае интерфейсы f0/1, f0/2 это vlan 10, f0/2, f0/3 – vlan 20, f0/4, f0/5 – vlan 30:

Switch(config)#int f0/1
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 10
Switch(config-if)#int f0/2
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 10

Можно конфигурировать сразу несколько интерфейсов:

Switch(config)#int range f0/3-4
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 20
Switch(config-if-range)#int range f0/5-6
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#switchport access vlan 30

Посмотрим состояние VLAN:

Рисунок 11 - Состояние VLAN

Из распечатки видно, что интерфейсы f0/1-6 теперь приписаны к соответствующим vlan. Назначим хостам ip-адреса из диапазона выделенных подсетей (Рисунок 8) и проверим работоспособность сети:

Рисунок 12 - Проверка работоспособности сети

Ping-запрос производился с PC0, который имеет адрес 192.168.10.1/24. Из Рисунка 12 видно, что ping проходит только в пределах одного VLAN. Для установления связи между хостами из разных VLAN необходимо модернизировать сеть путем добавления в нее маршрутизатора:

Рисунок 13 - Добавление маршрутизатора в сеть

Физический канал между коммутатором и маршрутизатором будет являться транковым (в данном случае со стороны коммутатора соединение происходит через порт g0/1, со стороны маршрутизатора – g0/0). Для начала настроим порт коммутатора:

Switch(config)#int g0/1
Switch(config-if)#switchport mode trunk
Switch(config-if)#switchport trunk allowed vlan 10,20,30

С помощью команды switchport mode trunk порт коммутатора был переведен в режим trunk, командой switchport trunk allowed vlan 10,20,30 были назначены виртуальные сети, потоки которых могут проходить через этот порт. Перейдем к маршрутизатору. Его конфигурирование сводится к тому, что на его интерфейсе g0/0 формируются субинтерфейсы g0/0.10, g0/0.20, g0/0.30. На указанных субинтерфейсах задается протокол Dot1q для виртуальных сетей 10, 20, 30. Также каждому субинтерфейсу задается ip-адрес, который должен находиться в подсети соответствующего VLAN. Этот адрес будет являться адресом шлюза по умолчанию для хостов. Включим порт на маршрутизаторе:

Router(config)#int g0/0
Router(config-if)#no shutdown

После этого должен появиться линк между маршрутизатором и коммутатором:

Рисунок 14 - Сеть при включенном порте маршрутизатора

Настроим субинтерфейсы:

Router(config)#int g0/0.10
Router(config-subif)#encapsulation dot1Q 10
Router(config-subif)#ip address 192.168.10.254 255.255.255.0
Router(config-subif)#int g0/0.20
Router(config-subif)#encapsulation dot1Q 20
Router(config-subif)#ip address 192.168.20.254 255.255.255.0
Router(config-subif)#int g0/0.30
Router(config-subif)#encapsulation dot1Q 30
Router(config-subif)#ip address 192.168.30.254 255.255.255.0

Установим эти адреса в качестве шлюзов по умолчанию и проверим связь:

Рисунок 15 - Проверка работоспособности сети

На рисунке видно, что связь с хостом в том же VLAN сохранилась и появилась связь с хостом в другом VLAN.  

Контрольные вопросы:

  1. Для чего создаются виртуальные локальные сети?
  2. Как обеспечивается общение между узлами разных виртуальных сетей?
  3. Как обеспечивается управление виртуальными локальными сетями?
  4. В каком случае коммутатор выполняет широковещательную рассылку при передаче кадра?
  5. Какие идентификаторы сетей можно назначить VLAN?
  6. Для чего нужна таблица коммутации? Что туда записывается?
  7. Можно ли построить VLAN на нескольких коммутаторах? Как это сделать?
  8. Для чего служит идентификатор кадра (tag)? Где он размещается?
  9. Что такое транк? Как он создается на коммутаторе и маршрутизаторе?
  10. Какие команды используются для назначения VLAN на интерфейсы?
  11. Какие команды используются для создания транковых соединений?

ПРИЛОЖЕНИЕ 1. Структура кадра 802.1q