5. VLAN

Ethernet

Необходимо напомнить об особенностях оригинального Ethernet, которые во многом определяют принципы работы коммутации в современных сетях.

В оригинальном Ethernet все терминальные узлы подключены к общему коаксиальному проводу - одной физической среде. Сигнал распространялся одновременно до всех участников или не распространялся, если среда не работала. Домен коллизий совпадал с широковещательным доменом, условно "честный" L2.

Весь современный коммутируемый Ethernet по сути является эмуляцией оригинального Ethernet. Разные домены коллизий в нем объединены в общий широковещательный домен.

Сегмент L2 по сути "виртуальный": для терминального узла на MAC-подуровне неотличим от "честного" L2 и количество или вообще наличие транзитных свитчей определить невозможно. На самом деле коммутация - задача L3, не решаемая в рамках IEEE 802.3.

Коммутация с VLAN

Эмуляция нескольких несвязанных сегментов Ethernet:

  • VLAN - виртуальный широковещательный домен.

  • Домены коллизий объединены в несколько широковещательных доменов

  • Обычно VLAN нумеруется с 1 по 4094

На устройстве запускаются несколько таблиц коммутации:

  • Людой кадр коммутируется только по одной из них

  • Максимально поддерживаемое число таблиц обычно меньше 4094

Просмотр базы и добавление нового VLAN:

SWITCH#show vlan brief
VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1239 VLAN1239                         active    Gi0/21
1259 VLAN1259                         active    Gi0/22
1273 Switches_MgMnt                   active    Gi0/23

Для создания VLAN важно выйти из контекста config-vlan, потому что только при выходе из контекста VLAN фактически создается.

Локальное отключение VLAN:

Suspended VLAN - VLAN будет отключен для всего домена VTP:

Access-порты

Обычные абоненты ничего не знают про VLAN. В заголовке Ethernet нет указания на VLAN.

В таком случае возникает вопрос как определить принадлежность кадра к VLAN. По информации из содержимого - небезопасно и немасштабируемо. В таком случае проще всего назначить один VLAN всем кадрам на приходящем порту, как правило сделать это лучше статически.

Стоит помнить о такой технологии, как Cisco Dynamic VLAN, требует Membership Policy Server (VMPS) на CatOS.

Trunk-порты

ISL-транки (Inter-Switch Link). По таким портам передаются кадры разных VLAN. Для определения принадлежности кадра к VLAN изменяется формат кадра.

Метки VLAN

Есть несколько способов добавить в кадр информацию о VLAN:

  • Cisco ISL. Инкапсуляция в другой протокол. Протокол этот проприетарный. Номер VLAN указывается в заголовке ISL. Оверхед при этом занимает 30 байт (26 байт заголовка и 4 - трейлер)

  • IEEE 802.10. Изменение кадра, возможно с шифрованием.

  • IEEE 802.1Q. Добавление нового поля в кадр. Поддерживается всеми вендорами. Оверхед занимает 4 байта.

Формат кадра 802.1Q

Особенности кадра 802.1Q

  • Максимальный размер кадра (MAC Client Data) вырастает до 1504 байт

  • Формат как у кадра Ethernet II c EtherType 0x8100. TPID по сути заменяет собой Ethertype. Благодаря этому коммутаторы без поддержки 802.1Q могут коммутировать такие кадры. Обычные абоненты вложение 0x8100 не обрабатывают.

  • У кадра меняется заголовок и, как следствие, FCS. При добавлении метки контрольная сумма пересчитывается.

  • В поле TCI есть следующая информация:

    • Priority Code Point (3 бита) - поле для стандарта 802.1p

    • Drop Eligible Indicator - расширение PCP или самостоятельное поле (до 802.1Q-2011 Сanonical Format Identifier в 1 бит, "0" в Ethernet и "1" в TokenRing)

    • VLAN Identifier (12 бит) - собственно номер VLAN

Кадры с метками и без

На портах доступа передаются кадры одного VLAN без метки:

  • untagged - тот самый абонентский VLAN

  • tagged - не передаются

На транках 802.1Q кадры могут передаваться с меткой и без:

  • untagged - не более одного VLAN, в терминологии Cisco - Native VLAN

  • tagged - все остальные VLAN

На транках ISL допустимы только кадры формата ISL

Состояния порта

Порт может быть в одном из состояний:

  • Static Access: порт принимает только обычные кадры и относит их все к определенному VLAN (характерно для абонентских портов)

  • Trunk: порт принимает обычные или модифицированные кадры и относит их к определенному VLAN исходя из заголовка кадра (характерно для межкоммутаторных линков)

    • В зависимости от настроек для определения номера VLAN для кадра могут читаться заголовки 802.1Q или ISL

    • Если заголовок отсутствует (только для транков 802.1Q), используется преднастроенный номер Native VLAN

Настройки приводят интерфейс к одному из состояний:

  • Access - обрабатываются только untagged кадры одного VLAN

  • Trunk - обрабатываются как untagged, так и tagged кадры

Просмотр состояния коммутации:

Switchport mode trunk:

  • Обрабатывает кадры с указанием метки VLAN.

    • На некоторых платформах поддерживается проприетарный стандарт ISL

    • На всех новых платформах есть 802.1Q

    • Команда switchport trunk encapsulation <#> задает тип транка

    • Команда switchport mode trunk включает режим транка

  • В 802.1Q поддерживаются untagged-кадры.

    • Команда switchport trunk native vlan <#> помечает Native VLAN

    • Кадры без метки коммутируются по таблице Native VLAN

    • Кадры Native VLAN отправляются без метки

  • Команда глобальной конфигурации vlan dot1q tag native изменяет поведение отправки и получения кадров Native VLAN на коммутаторе: кадры, относящиеся к Native VLAN и приходящие без метки, отбрасываются; любые кадры, в том числе относящиеся к Native VLAN, отправляются с меткой.

  • Настройки транка должны быть одинаковыми с двух сторон (нужно и для CDP, STP)

  • В качестве Native VLAN крайне рекомендуется вешать несуществующий VLAN

Ограничения VLAN в транке

  • Команда switchport trunk allowed vlan <list> указывает список VLAN, кадры которых могут отправляться или приниматься через интерфейс (при условии, что VLAN присутствует в базе).

    • Можно задать список явно или внести в него только изменения макросами

    • Самый распространенная ошибка при настройке коммутаторов

  • Иногда называется manual pruning

Сводная таблица транков:

Native VLAN

  • Изначально концепция Native VLAN предлагалась для поддержки абонентов в сегментах, соединяющих коммутаторы с 802.1Q

    • Сегодня причин ее использовать больше нет

    • Более того, на Native VLAN есть несколько атак

  • Рекомендуется использовать в качестве Native VLAN недоступный VLAN - отсутствующий в базе, выключенный или Honeypot (намеренно созданный VLAN терминирующийся на устройстве безопасности типа IDS)

Атака VLAN Hopping (switch spoofing):

  • Главная идея атаки - согласование транка между портом коммутатора и атакующим с помощью протокола DTP, получение доступа к VLAN и направление трафика до цели с нужно меткой

VLAN Hopping с двойной меткой:

  • Атака осуществима, если атакающий может послать кадр с двойной меткой: общей с Native VLAN и целевой VLAN. Промежуточный порт снимает метку Native VLAN и в транк отправляет кадр с нижней меткой до цели атаки.

Voice VLAN

Порт на коммутаторах Catalyst может быть настроен с использованием Voice VLAN, когда к этому порту подключается IP-телефон.

  • Используется режим на порту static access, кадры телефона помечаются Voice VLAN

  • IP-телефон может быть настроен автоматически с помощью CDP (свитч использует CDP для сообщения телефону, как тегировать кадры)

  • Сisco определяет данный тип порта как MultiVLAN, нежели как транк

Задать VLAN для голоса:

Никак не помечать кадры (по сути трафик будет смешан с хостовым):

Задает в метке 802.1Q "5" в Priority Code point, а номер VLAN будет нулевой (по сути отсутствовать):

Свитч не будет сообщать телефону условия тегирования кадров:

Транки на маршрутизаторах

VLAN - обособленный широковещательный домен. В транке приходят обычно несколько VLAN

Настройки IP обычно назначаются на интерфейсе. Каждому VLAN нужен отдельный интерфейс для соответствующих настроек маршрутизатора. Физический интерфейс остается один, но к нему создаются дочерние субинтерфейсы.

Работа с сабинтерфейсами:

  • Если родительский (физический) интерфейс выключен, субинтерфейсы работать не будут

  • Можно выключить отдельный субинтерфейс

  • Все настройки, относящиеся к конкретному VLAN, выполняются на соответствующих субинтерфейсах

  • Два способа работать с NativeVLAN.

    • Использовать настройки родительского интерфейса

    • создать отдельный субинтерфейс и пометить его VLAN параметром native: encapsulation dot1Q <#> native - будут обрабатываться кадры без меток

L3 на коммутаторах Cisco Catalyst

Routed Interface - физический интерфейс, кадры на котором пересылаются напрямую на/от Routing Engine

  • Создается internal VLAN из начала/конца диапазона Extended VLAN

  • По большому счету тоже SVI, но они не отражаются в списке VLAN и running-config

Можно поменять нумерацию VLAN для SVI, создаваемых для RI

SVI - Switch Virtual Interface - виртуальный интерфейс Routing Engine, подключенный к VLAN как терминальный узел.

SVI переходит в Up при выполнении условий:

  • Соответствующий VLAN в базе существует и активен

  • На коммутаторе должен быть хотя бы один порт, на котором одновременно:

    • Разрешена коммутация кадров соответствующего VLAN (хоть access, хоть trunk)

    • Форвардинг соответствующего VLAN не блокируется STP или VTP Pruning

  • Состояние порта up/down меняется с задержкой порядка 10 мс

Если задан

то SVI сам не поднимется

  • L3 интерфейсы могут менять состояние с большой задержкой. Команда carrier-delay msec <#> сокращает ее почти до нуля, но не рекомендуется, так в случае флаппинга порт зафлудит лог

Особенности использования VLAN

  • До IOS 12.4(15)T пользователю были доступны VLAN c 1 по 1001:

    • 1 - служебный VLAN

    • 2 - 1001 - Normal range VLAN

    • 1002 - 1005 - VLAN TokenRing/FDDI

    • 1006 - 4094 - Extended VLAN

  • Команды show vlan и show vlan brief не показывают транки.

    • Однако show vlan id <#> показывает

  • Catalyst под каждый no switchport порт занимает отдельный VLAN.

    • Internal allocation policy определит порядок назначения VLAN

Extended VLAN

  • VTP должен быть в режиме Transparent

  • VTPv3 может распространять все VLAN, но большинство свитчей начального уровня не поддерживают Extended VLAN

  • Хранится не в vlan.dat

  • Если VTP переводится в режим Client или Server, VLANы должны быть вручную удалены

  • Необходимо вручную перенастраивать порты, которые были в Extended VLAN

Multilayer Switch

  • Multilayer Switch - коммутатор, который умеет работать с заголовками протоколов разных уровней

  • При этом он не обязательно может быть с поддержкой маршрутизации

  • Для обеспечения маршрутизации используются SVI

    • Switched Virtual Interface

    • Интерфейс SVI ассоциируется с VLAN

    • Как правило, минимум один SVI на коммутаторе всегда есть, обычно их не меньше двух

Макросы Interface Range

  • При необходимости часто настраивать один и тот же набор интерфейсов, можно прибегнуть к использованию макроса для этой группы портов.

  • Создание группы:

  • Использование группы:

Last updated