Работа с vlan на коммутаторах D-Link
Часть 1: 802.1Q VLAN
Сегодня хотелось бы разобрать работу с vlan на коммутаторах Dlink. Если вы еще не находитесь в CLI коммутатора, предлагаю ознакомится тем как это осуществить в разделе «Подключение к CLI» — ТУТ
Список доступных команд
create vlan <vlan_name 32> tag <vlanid 2-4094> {type 1q_vlan advertisement} create vlan vlanid <vidlist> {advertisement} delete vlan <vlan_name 32> delete vlan vlanid <vidlist> config vlan <vlan_name 32> {[add [tagged|untagged|forbidden]|delete] <portlist> | advertisement [enable|disable]} config vlan vlanid <vidlist> {[add [tagged|untagged|forbidden]|delete] <portlist> | advertisement [enable|disable] | name <vlan_name 32>} config port_vlan[<portlist>|all] {gvrp_state [enable|disable] | ingress_checking [enable|disable] | acceptable_frame [tagged_only|admit_all] | pvid <vlanid 1-4094>} show vlan {<vlan_name 32>} show vlan ports {<portlist>} show vlan vlanid <vidlist> show port_vlan {<portlist>} enable pvid auto_assign disable pvid auto_assign show pvid auto_assign config gvrp [timer {join <value 100-100000> | leave <value 100-100000> | leaveall <value 100-100000>} | nni_bpdu_addr [dot1d|dot1ad]] show gvrp enable gvrp disable gvrp
Вланы могут создавать только пользователи с правами администратора и оператора.
Cоздание Vlan
Обязательно должен быть указан vlan id
.
Формат: create vlan <vlan_name 32> tag <vlanid 2-4094> {type 1q_vlan advertisement}
Параметры:
<vlan_name 32>
— имя создаваемого влана. Может содержать до 32х символов.
<vlanid 2-4094>
— 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 <vidlist> {advertisement}
Параметры:
<vidlist>
— количество вланов (VID) для создания.
Пример:
create vlan vlanid 10-30
Удаление Vlan
Формат: delete vlan <vlan_name 32>
Пример:
delete vlan v1
Массовое удаление Vlan по ID
Формат: delete vlan vlanid <vidlist>
Пример:
delete vlan vlanid 10-30
Конфигурирование Vlan
Формат: config vlan [<vlan_name 32>| vlanid] | {[add [tagged | untagged | forbidden] | delete] <portlist> | 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 [<portlist> | all] {gvrp_state [enable | disable] | ingress_checking [enable | disable] | acceptable_frame [tagged_only | admit_all] | pvid <vlanid 1-4094>}
Параметр:
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
— указывать на то, каким тегом будет помечен трафик поступивший от хоста на порт коммутатора.
Пример:
Порт 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
Суть данной технологии в том, что бы предоставить доступ с одного влана в другой, не используя маршрутизацию. Например абоненты разных сегментов сети не имея доступ друг к другу могли подключаться к требуемому серверу или интернет шлюзу.
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 <value100-100000>} | 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
Схема подключения
На коммутаторах №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 необходимо анонсировать соседним устройствам.