понедельник, 1 мая 2017 г.

DGS-3420-28SC Selective Q-in-Q

Тема сегодняшней заметки 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 - это сеть, "локалка", т.е. "она".

5 комментариев:

  1. При такой схеме получается что для каждого vlan приходящего с доступа нужно на аггрегации писать правило которое будет упаковывать во второй тег?

    ОтветитьУдалить
    Ответы
    1. В такой схеме да, но можно делать и через профили, где указываются диапазоны. В этом случае получается очень экономно. На днях напишу пример.

      Удалить
    2. https://xcme.blogspot.ru/2017/08/q-in-q.html

      Можно использовать профили, а можно указывать диапазоны в cvid.

      Удалить
  2. но можно же внешний влан повесить как антег влан на 20 порт и тогда все приходящее на него будет заворачиваться
    правильно?

    ОтветитьУдалить
  3. когда missdrop disable, если 20й порт тегом добавлен в S-VLAN то ничего не работает. Во всех мануалах пишут, что порт, смотрящий в сторону коммутаторов доступа, должен добавлен Untag

    ОтветитьУдалить