Тема сегодняшней заметки Selective Q-in-Q на DGS-3420-28SC. Модель коммутатора в данном случае не принципиальна, просто такой коммутатор есть под рукой и потому на стенде используем именно его.
Без лишних прелюдий обозначим задачу: завернуть несколько vlan с уровня доступа в одну общую vlan* на уровне агрегации, при этом протащив управляющую vlan транзитом.
Посмотрим на картинку:
На доступе у нас используется коммутатор DES-3200-28. В 1-м порту подключен клиент в vlan 444, а во втором - в vlan 555. Управляющий интерфейс коммутатора находится в vlan 7.
На агрегации используется коммутатор DGS-3420-28SC. Управляющий интерфейс также находится в vlan 7. На коммутаторе нет vlan 444 и 555, а вместо них есть общая vlan 101.
Таким образом, vlan 444 и 555, приходящие с уровня доступа, инкапсулируются в vlan 101 и отдаются в сеть через порт №28 коммутатора DGS-3420-28SC. И, наоборот, приходящий с сети трафик в vlan 101 разворачивается в vlan 444 и 555 соответственно и уходит через порт №20. Напомню, что Q-in-Q - это "двойное тегирование", т.е. за внешним тегом 101 идет внутренний тег (444 или 555) и коммутатор всегда может разобраться куда именно ему надо перенаправить трафик при "снятии" внешней метки.
Ладно, оставим теорию (о ней в другой раз) и перейдем непосредственно к настройкам.
ВНИМАНИЕ! При включении Q-in-Q все порты будут настроены как NNI и трафик от них пойдет с внешней меткой 0x88a8. Если вы этого не ожидали и не были к этому готовы, то доступ к коммутатору будет потерян. Поэтому, если на стыках с данным коммутатором вы используете "обычные" vlan 802.1q, то выполните следующую команду:
config qinq ports 1-28 outer_tpid 0x8100
После этого можно включить Q-in-Q без опасений потерять доступ:
enable qinq
Разрешим кадры большого размера:
enable jumbo_frame
Создадим "внешнюю" vlan и добавим ее на оба порта. Тут ничего сложного, все стандартно:
create vlan 101 tag 101
config vlan 101 add tagged 20,28
Создадим трансляции для каждой vlan уровня доступа. Здесь мы говорим коммутатору, какую клиентскую (cvid) vlan нужно поместить в какую провайдерскую (svid) vlan. В нашем примере мы помещаем vlan 444 и 555 в vlan 101:
create vlan_translation ports 20 add cvid 444 svid 101
create vlan_translation ports 20 add cvid 555 svid 101
Теперь нам надо позаботиться о том, чтобы не потерять управление коммутатором доступа. Мы предполагаем, что vlan 7 уже создана на обоих коммутаторах и добавлена на порты 20 и 28 коммутатора DGS-3420-28SC. Нам остается всего лишь сказать коммутатору, что клиентская vlan 7 не будет никуда заворачиваться, а будет "транслироваться" в vlan провайдера с номером... 7:
create vlan_translation ports 20 replace outer_vid 7 svid 7
Ну и, наконец, сменим роль порту №20 на UNI:
config qinq ports 20 role uni
После этого схема, изображенная на рисунке, станет рабочей.
P.S. Обратите внимание, что коммутатор доступа вообще никак не настраивается специально под Q-in-Q.
*Часто о VLAN говорят в мужском роде. Я же использую женский, т.к. VLAN - это "Виртуальная LAN". LAN - это сеть, "локалка", т.е. "она".
Без лишних прелюдий обозначим задачу: завернуть несколько vlan с уровня доступа в одну общую vlan* на уровне агрегации, при этом протащив управляющую vlan транзитом.
Посмотрим на картинку:
На доступе у нас используется коммутатор DES-3200-28. В 1-м порту подключен клиент в vlan 444, а во втором - в vlan 555. Управляющий интерфейс коммутатора находится в vlan 7.
На агрегации используется коммутатор DGS-3420-28SC. Управляющий интерфейс также находится в vlan 7. На коммутаторе нет vlan 444 и 555, а вместо них есть общая vlan 101.
Таким образом, vlan 444 и 555, приходящие с уровня доступа, инкапсулируются в vlan 101 и отдаются в сеть через порт №28 коммутатора DGS-3420-28SC. И, наоборот, приходящий с сети трафик в vlan 101 разворачивается в vlan 444 и 555 соответственно и уходит через порт №20. Напомню, что Q-in-Q - это "двойное тегирование", т.е. за внешним тегом 101 идет внутренний тег (444 или 555) и коммутатор всегда может разобраться куда именно ему надо перенаправить трафик при "снятии" внешней метки.
Ладно, оставим теорию (о ней в другой раз) и перейдем непосредственно к настройкам.
ВНИМАНИЕ! При включении Q-in-Q все порты будут настроены как NNI и трафик от них пойдет с внешней меткой 0x88a8. Если вы этого не ожидали и не были к этому готовы, то доступ к коммутатору будет потерян. Поэтому, если на стыках с данным коммутатором вы используете "обычные" vlan 802.1q, то выполните следующую команду:
config qinq ports 1-28 outer_tpid 0x8100
После этого можно включить Q-in-Q без опасений потерять доступ:
enable qinq
Разрешим кадры большого размера:
enable jumbo_frame
Создадим "внешнюю" vlan и добавим ее на оба порта. Тут ничего сложного, все стандартно:
create vlan 101 tag 101
config vlan 101 add tagged 20,28
Создадим трансляции для каждой vlan уровня доступа. Здесь мы говорим коммутатору, какую клиентскую (cvid) vlan нужно поместить в какую провайдерскую (svid) vlan. В нашем примере мы помещаем vlan 444 и 555 в vlan 101:
create vlan_translation ports 20 add cvid 444 svid 101
create vlan_translation ports 20 add cvid 555 svid 101
Теперь нам надо позаботиться о том, чтобы не потерять управление коммутатором доступа. Мы предполагаем, что vlan 7 уже создана на обоих коммутаторах и добавлена на порты 20 и 28 коммутатора DGS-3420-28SC. Нам остается всего лишь сказать коммутатору, что клиентская vlan 7 не будет никуда заворачиваться, а будет "транслироваться" в vlan провайдера с номером... 7:
create vlan_translation ports 20 replace outer_vid 7 svid 7
Ну и, наконец, сменим роль порту №20 на UNI:
config qinq ports 20 role uni
После этого схема, изображенная на рисунке, станет рабочей.
P.S. Обратите внимание, что коммутатор доступа вообще никак не настраивается специально под Q-in-Q.
*Часто о VLAN говорят в мужском роде. Я же использую женский, т.к. VLAN - это "Виртуальная LAN". LAN - это сеть, "локалка", т.е. "она".
При такой схеме получается что для каждого vlan приходящего с доступа нужно на аггрегации писать правило которое будет упаковывать во второй тег?
ОтветитьУдалитьВ такой схеме да, но можно делать и через профили, где указываются диапазоны. В этом случае получается очень экономно. На днях напишу пример.
Удалитьhttps://xcme.blogspot.ru/2017/08/q-in-q.html
УдалитьМожно использовать профили, а можно указывать диапазоны в cvid.
но можно же внешний влан повесить как антег влан на 20 порт и тогда все приходящее на него будет заворачиваться
ОтветитьУдалитьправильно?
когда missdrop disable, если 20й порт тегом добавлен в S-VLAN то ничего не работает. Во всех мануалах пишут, что порт, смотрящий в сторону коммутаторов доступа, должен добавлен Untag
ОтветитьУдалить