~~NOTOC~~
====== Работа с vlan на коммутаторах D-Link ======
===== Часть 1: 802.1Q VLAN =====
Сегодня хотелось бы разобрать работу с vlan на коммутаторах Dlink.
Если вы еще не находитесь в CLI коммутатора, предлагаю ознакомится тем как это осуществить в разделе «Подключение к CLI» — [[dlink:сброс-пароля-на-свитче-dlink|ТУТ]]
==== Список доступных команд ====
create vlan tag {type 1q_vlan advertisement}
create vlan vlanid {advertisement}
delete vlan
delete vlan vlanid
config vlan {[add [tagged|untagged|forbidden]|delete] | advertisement [enable|disable]}
config vlan vlanid {[add [tagged|untagged|forbidden]|delete] | advertisement [enable|disable] | name }
config port_vlan[|all] {gvrp_state [enable|disable] | ingress_checking [enable|disable] | acceptable_frame [tagged_only|admit_all] | pvid }
show vlan {}
show vlan ports {}
show vlan vlanid
show port_vlan {}
enable pvid auto_assign
disable pvid auto_assign
show pvid auto_assign
config gvrp [timer {join | leave | leaveall } | nni_bpdu_addr [dot1d|dot1ad]]
show gvrp
enable gvrp
disable gvrp
Вланы могут создавать только пользователи с правами администратора и оператора.
==== Cоздание Vlan ====
Обязательно должен быть указан ''vlan id''. \\
Формат: ''create vlan tag {type 1q_vlan advertisement}''
Параметры:\\
'''' — имя создаваемого влана. Может содержать до 32х символов.\\
'''' — vlan id или таг влана. Может быть в диапазоне от 2 до 4094.\\
''type 1q_vlan advertisement'' — параметр разрешающий анонсировать влан основанный на стандарте ''802.1Q'' по протоколу ''GVRP''. Использовать не рекомендуется, т.к. на разных моделях коммутаторов может вести себя непредсказуемо.
Пример:
create vlan v2 tag 2
или
create vlan v2 tag 2 type 1q_vlan advertisement
==== Массовое создание Vlan по ID ====
Метод используется для создания нескольких VLAN одновременно. Уникальное имя VLAN будет назначаться автоматически (например VLAN10). Назначение имени VLAN основано на следующем правиле: «VLAN»+ID. Например, для VLAN ID 100 имя VLAN будет VLAN100. Если это имя VLAN конфликтует с именем существующего VLAN, то оно будет переименовано. Происходит это на следующим образом: “VLAN”+идентификатор+”ALT”+счетчик совпадений. Например, если конфликт является вторым, то имя будет VLAN100ALT2.
Формат: ''create vlan vlanid {advertisement}''
Параметры:\\
'''' — количество вланов (VID) для создания.
Пример:
create vlan vlanid 10-30
==== Удаление Vlan ====
Формат: ''delete vlan ''
Пример:
delete vlan v1
==== Массовое удаление Vlan по ID ====
Формат: ''delete vlan vlanid ''
Пример:
delete vlan vlanid 10-30
==== Конфигурирование Vlan ====
Формат: ''config vlan [| vlanid] | {[add [tagged | untagged | forbidden] | delete] | advertisement [enable | disable]}''
Параметры:\\
''add [tagged | untagged | forbidden] | delete]'' — Назначит порт Тегированным |Не тегированным | Запрещенным. forbidden (Запрещенный) указывает на то, что порт не сможет присоединиться к влану ни при каких условиях, кроме ручного добавления. Примером автоматического присоединения портов является протокол ''GVRP''.\\
''delete'' — удаление портов из влана\\
''advertisement [enable | disable]'' — включение/отключение анонсирования влана в сеть. Используется протоколом GVRP
Пример:
config vlan v2 add tagged 4-8
config vlan vlanid 10-20 add tagged 4-8
==== GVRP и Ingress Checking ====
''Ingress Checking'' — «проверка попадания» фрейма в набор ''VID'', ассоцирированных с портом. Если ''Ingress Checking'' включен, то при поступлении в порт коммутатора фрейма, производится сравнение ''VID'' фрейма с набором идентификаторов ''VID'', ассоциированных с портом (включая ''PVID'' порта). Если нет совпадения, то фрейм отбрасывается. Т.е. на порт принимаются только фреймы с идентификаторами ''VLAN ID'', для которых данный порт является выходным. Если же ''Ingress Checking'' выключен, то никакой проверки не производится.
Формат: ''config port_vlan [ | all] {gvrp_state [enable | disable] | ingress_checking [enable | disable] | acceptable_frame [tagged_only | admit_all] | pvid }''
Параметр:\\
''gvrp_state [enable | disable]'' — Включает или отключает ''GVRP'' для портов, указанных в списке\\
''ingress_checking [enable | disable]'' — включение/отключение функции ''Ingress Checking''\\
''acceptable_frame [tagged_only | admit_all]'' — Разрешить только тегированный трафик на порту или весь.
config port_vlan 1-5 gvrp_state enable ingress_checking enable acceptable_frame tagged_only pvid 2
==== Команды просмотра Show ====
''show vlan'' — Отображение информации о всех ''VLAN'', включая параметры и настройки.\\
''show vlan ports 6'' — отображает информацию о ''VLAN'' на требуемом порту.\\
''show vlan vlanid 1'' — отображает информацию о требуемом ''VLAN'' по его ''ID''\\
''show port_vlan'' — отображения атрибутов ''VLAN'' yна портах на коммутатора
==== PVID auto assign ====
''PVID'' — указывать на то, каким тегом будет помечен трафик поступивший от хоста на порт коммутатора.
{{ :txt:0003:pvidd.png |}}
Пример:
Порт 16 — транковый порт. На него приходит несколько вланов. В том числе vlan2\\
Порт 1 — порт доступа (Access/Untagged). За ним располагается хост. Например абонент.
- На коммутатор в порт 16, приходит тегированный фрейм. Коммутатор проверяет ''ARP'' таблицу и видит, что абонент доступен через порт 1.
- Порт 1 работает в режиме ''Untagged'', поэтому с фрейма снимается метка влана (его принадлежность к данному влану). После этого фрейм становится нетегированным.
- Так как порт настроен как ''Untagged'', то когда фрейм от абонента приходит на порт 1 коммутатора, в нём проставляется тег соответствующий ''PVIDу'', который указывает какому ''VLAN’у'' принадлежит этот фрейм. В данном случае проставляется тег с ''VLAN’ом 2''.
Для абонента фреймы остаются нетегированными. Операция тегирования, которую выполняют коммутаторы абсолютно прозрачна. Хосты ничего не знают о тегах и получают обычные фреймы.
''PVID'' auto assign используется для включения автоматического назначения ''PVID''. Когда назначается ''VLAN X untagged'', ''PVID'' этого порта будет назначен ''VLAN X''. ''PVID'' будет автоматически обновляться на последний добавленный ''untagged vlan''. Когда ''untagged'' порт удаляется, ''PVID'' порта будет назначается на ''«default VLAN»'' или предыдущий.\\
Значение по умолчанию включено.
Пример:
enable pvid auto_assign
disable pvid auto_assign
Проверка автоматического сопоставления ''PVID''
show pvid auto_assign
==== Асимметричные VLAN ====
Суть данной технологии в том, что бы предоставить доступ с одного влана в другой, не используя маршрутизацию. Например абоненты разных сегментов сети не имея доступ друг к другу могли подключаться к требуемому серверу или интернет шлюзу.
{{ :txt:0003:03_24.jpg |}}
enable asymmetric_vlan
create vlan v2 tag 2
create vlan v3 tag 3
config vlan v2 add untagged 9-16
config vlan v3 add untagged 1-8,17-24
config gvrp 1-8 pvid 3
config gvrp 9-16 pvid 2
config gvrp 17-24 pvid 1
save
Минусы использования:
- ''IGMP Snooping'' не поддерживается при использовании асимметричных ''VLAN''. \\ Решение: Использование коммутатора 3 уровня + ACL (листы доступа) + многоадресная (multicasting) маршрутизация + ''IGMP snooping''
- При использовании ''Assymetric VLAN'' не происходит изучение, а также добавление в таблицы коммутации, ''MAC-адресов'' с тегированных портов. Тем самым применение ''Assymetric VLAN'' ограничивается одним коммутатором.
==== Настройка GVRP ====
''GVRP'' (GARP VLAN Registration Protocol) служит для передачи между устройствами информации о ''vlan'', используемых на данном отрезке сети. При использовании в сети большого количества устройств, добавление в сеть нового ''vlan'' часто влечет за собой перенастройку всех устройств, через которые должен проходить новый ''vlan''. В сети провайдера, особенно при применении схемы ''vlan-per-customer'', это может создавать огромную головную боль. Использование протокола ''GVRP'' позволяет избежать перенастройки оборудования каждый раз при изменении ''vlan'' в сети.
''config gvrp timer'' устанавливает значение таймера ''GVRP''. Значение по умолчанию для времени присоединения составляет 200 миллисекунд; для времени отсоединения — 600 миллисекунд; Для ''LeaveAll'' — 10000 миллисекунд.
Формат: ''config gvrp [timer {join < value 100-100000> | leave < value 100-100000> | leaveall } | nni_bpdu_addr [dot1d | dot1ad]]''
''nni_bpdu_addr [dot1d | dot1ad]'' — Используется для определения адреса протокола ''BPDU'' для ''GVRP'' в узле предоставления услуг. Он может использовать адрес ''GVRP 802.1d'', адрес GVRP поставщика услуг ''802.1ad'' или пользовательский ''multicast'' адрес. Диапазон определенного пользователем адреса: ''0180C2000000 — 0180C2FFFFFF''.
Пример:
config gvrp timer join 200
''show gvrp'' — Статус ''GVRP''\\
''enable/disable gvrp'' — включение/отключение ''GVRP''.
==== Пример настройки GVRP ====
Схема подключения
{{ :txt:0003:аннотация-2019-12-07-133517.png |}}
На коммутаторах №2 и №3:
enable gvrp
config gvrp 27-28 state enable
На коммутаторе №4
enable gvrp
config gvrp 27 state enable
create vlan vlanid 100 advertisement
config vlan vlanid 100 add untagged 1
config vlan vlanid 100 add tagged 27
Напоминаю, что ключ advertisement при создании vlan говорит коммутатору о том, что этот vlan необходимо анонсировать соседним устройствам.