Сегодня я начну небольшую серию статей о VLAN. Начнем с того что это, для чего нужно, как настроить и дальше будем углубляться и постепенно изучим если не все то большую часть всех возможностей, которые нам предоставляют VLAN.
Итак, помните, мы с вами говорили о таком понятии как домен коллизий ? Думаю помните. Так же мы с вами говорили о том, что адреса бывают нескольких видов: unicast, broadcast, multicast.
Исходя из этого сделаем еще одно вводное понятие. Широковещательный домен. Что он из себя представляет?
Если посылается фрейм/пакет, широковещательный (если это фрейм то поле Destination Address все биты равны единицы, или в 16-ом виде MAC адрес будет равен: FF FF FF FF FF FF), то этот фрейм будет переправлен во все порты коммутатора, исключая того, с которого был получен данный фрейм. Это произойдет в случае, когда например коммутатор у нас не управляемый, или если управляемый, но все находятся в одном VLAN (об этом позже).
Вот такой список устройств, который получает эти широковещательные фреймы и называются — широковещательным доменом.
Теперь определимся, а что же такое VLAN ?
VLAN — Virtual Local Area Network, т.е. некая виртуальная сеть. Для чего же она нужна?
VLAN позволяет разделить нам широковещательные домены в одном коммутаторе. Т.е. если у нас есть один коммутатор, мы одни порты отнесем к одному VLAN, другой к другому. И это у нас будут два разный broadcast domen. Конечно же этим не ограничиваются возможности. О них я буду рассказывать дальше, все постепенно.
Если кратко сказать, то VLAN позволяет администратору более гибко создавать сеть, разбивая ее, на некоторые подсети (например сеть бухгалтеров, сеть менеджеров, и так далее ), иными словами VLAN помогает объеденить устройства с каким-то общим набором требований в единую группу, и отделить ее от других таких же обособленных групп.
Сразу оговорюсь, что VLAN работают на уровне OSI Layer 2.
Вспомним, когда рассматривали кадр Ethernet , то никакого поля для VLAN там не было. Как же тогда определить, к какому VLAN относится тот или иной фрейм?
Существует несколько стандартов.
1. IEEE 802.1Q — этот стандарт является открытым. Этот стандарт помечает тот или иной фрейм, который «привязан» к какому-то VLAN тэгированием.
Тэгирование это функция коммутатора (или любого другого устройства, которое «понимает» VLAN ), которая вставляет в фрейм ethernet некий тэг, состоящий из 4 байт. Процедура тэгирования не меняет данные заголовка, таким образом, оборудование, которое не поддерживает технологию VLAN, может без проблем передавать такой фрейм дальше по сети, сохраняя тэг.
Вот так будет выглядеть фрейм, после вставки тэга VLAN.
Исходя их рисунка, видим, что VLAN tag состоит из 4 полей, опишим их:
— 2 байта Tag Protocol Identifier (TPID) — это идентификатор протокола, в нашем случае это 802.1Q, в 16-ом виде это поле будет выглядеть как: 0x8100.
— Priority — поле для задания приоритета по стандарту 802.1p (о нем в следующих статьях). Размер этого поля составляет 3 бита (8 значений 0-7).
— Canonical Format Indicator (CFI). Индикатор канонического формата, размер этого поля составляет 1 бит. Это поле указывает на формат mac адреса (1 — кононический, 0 не канонический.)
— VLAN ID, собственно это то, ради чего мы сегодня собрались 🙂 Идентификатор VLAN. Размер поля 12 бит, может принимать значение от 0 до 4095.
При использовании VLAN (тэгирования) по стандарту 802.1Q вносятся изменения в фрейм, следовательно необходимо пересчитать FCS значение, что собственно и делается коммутатором.
В стандарте 802.1Q есть такое понятие как Native VLAN, по умолчанию Native VLAN ID равен единицы (можно менять), Native VLAN характеризуется тем, что этот VLAN не тэгируется.
2. Inter-switch-link (ISL). Протокол, разработанный компанией Cisco и может использоваться только на своем оборудовании.
Этот протокол был разработан еще до принятия 802.1Q.
В настоящее время ISL уже не поддерживается на новом оборудовании, но тем не менее, вы можете столкнуться с работой этого протокола, поэтому нам необходимо с ним ознакомиться.
В отличии от 802.1Q, где осуществлялось простое тэгирование кадра (вставка 4 байт внутрь фрейма), здесь используется технология инкапсуляции, тоесть добавляется некий заголовок, в котором содержится информация о VLAN. VLAN ISL, в отличии от 802.1Q поддерживает до 1000 VLAN.
Рассмотрим фрейм в графическом виде, как же выглядит эта инкапсуляция.
Здесь мы можем сразу увидеть первый и пожалуй самый основной недостаток ISL — это увеличение кадра на 30 байт (26 байт заголовок и 4 байта FCS).
Рассмотрим ISL Header более подробно, посмотрим, что же там хранится в стольки то байтах!
- Destination Address (DA) — адрес получателя, здесь указывается специальный мультикаст адрес, который и говорит о том, что используется кадр инкапсулирован с помощью ISL. Мультикаст адрес может быть 0x01-00-0C-00-00 или 0x03-00-0c-00-00.
- Type — длина поля 4 бита, указывает протокол, который инкапсулирован в фрейм. Может принимать несколько значений:
0000 — Ethernet
0001 — Token-Ring
0010 — FDDI
0011 — ATM
В нашем случае так как мы рассматриваем Ethernet , то это значение будет равен всем 0.
- USER — некий такой «урезанный» аналог поля Priority в 802.1Q, служит для задания приоритета кадру. Хоть и поле занимает 4 бита, может принимать 4 значения (в 802.1Q — 8).
- Source Address (SA) — адрес источника, на это место подставляется значение MAC адреса порта, с которого был отправлен данный инкапсулированный фрейм.
- LEN — длина фрейма. Здесь не учитываются такие поля как: DA,TYPE,USER,SA,LEN,FCS. Таким образом получается что это значение равно инкапсулированному кадру — 18 байт.
- AAAA03 (SNAP) — SNAP и LLC (данное поле содержит значение AAAA03).
- HSA — High Bits of Source Address — 3 старшие байта MAC адреса (помним что в этих байтах содержится код производителя), для Cisco это 00-00-0C
- VLAN — наконец-то добрались до самого главного поля. Здесь собственно указывается идентификатор VLAN. Поле имеет размер в 15 бит.
- BPDU — Bridge Protocol Data Unit и Cisco Discovery Protocol. Поле для протоколов BPDU и CDP. Что это и для чего, мы познакомимся в следующих статьях.
- INDX — Index, указывается индекс порта отправителя, используется в диагностических целях.
- RES — Reserved for Token Ring and FDDI. Резервное поле для Token Ring и FDDI. Поле имеет 16 битный размер. Если используется протокол ethernet то в это поле помещаются все нули.
- Encapsulated Frame — это обычный фрейм который был инкапсулирован. В данном фрейме есть сови собственные поля, такие как DA,SA, LEN, FCS и так далее.
- FCS — собственный ISL FCS (так как кадр полностью меняется, нужна новая проверка фрейма, последние 4 байта для этого и предназначены).
Можно сделать некоторые выводы, в пользую 802.1Q.
- Тэгирование добавляет к кадру всего 4 байта, в отличие от ISL (30 байт).
- 802.1Q поддерживается на любом оборудовании, которое поддерживает VLAN, тогда как ISL работает только на устройствах Cisco, и далеко не всех.
В этой статье мы кратко ознакомились с понятием VLAN. Дальше будем разбираться в деталях.