forum.bitel.ru
http://forum.bitel.ru/

VLAN, Q-in-Q и все все все (CRM)
http://forum.bitel.ru/viewtopic.php?f=44&t=11846
Страница 1 из 1

Автор:  snark [ 04 авг 2016, 18:23 ]
Заголовок сообщения:  VLAN, Q-in-Q и все все все

Поскольку вопросы и, в особенности, хотелки на счет VLAN-ов регулярно поднимаются (1, 2, 3, тысячи их), поэтому, пожалуй, стоит вскрыть эту тему.

Настала пора поговорить о VLAN-ах, а точнее о том, что в Бител есть некоторое недопонимание некоторых реалий в работе операторских сетей.
На данный момент БГБ видит и воспринимает сеть так:
Код:
РС --- свич доступа --- VLAN 1000 --- свич агрегации --- VLAN 1000 --- NAS
При этом, если судить по документации, инет подразумевает, что всегда существуют AGENT_REMOTE_ID и AGENT_CIRCUIT_ID, но совершенно не понятно, что делать, когда речь идет не о сети с Option 82, а о простой и достаточно распространенной схеме сети с L2 connected subscriber, в которой Option 82 нет от слова совсем?
Давайте совсем немного усложним сеть, какой ее видит БГБ, например сделаем такой:
Код:
РС --- свич доступа --- VLAN 1000 --- свич агрегации --- VLAN 101:1000 --- NAS
Т.е. VLAN абонента с VID 1000 мы, например на свиче агрегации, обвернем другим VLAN с VID 101, т.е. получим один "верхний", операторский влан и до 4k "нижних/внутренних", клиентских вланов.
В таком варианте в RADIUS прилетит не "NAS-Port-Id=1000", а "NAS-Port-Id=101:1000" и, собсно, негде взять ни AGENT_REMOTE_ID ни AGENT_CIRCUIT_ID.
Как прикажете авторизовать?
Как прикажете создавать подобный сервис в клиенте?
Кстати о о сервисе для клиента. Если создать простую операторскую сеть работающую по такой схеме:
Код:
РС --- свич доступа --- VLAN 1000 --- свич агрегации --- VLAN 101:1000 --- NAS
Примерно с таким деревом
Код:
ААА
 |
 +---+-[ папка NAS-ов ]
 |   |
 |   +- NAS #1
 |   |
 |   +- NAS #2
 |   |
 |  ...
 |   |
 |   +- NAS #N
 |
 |
 +---+-[ папка свичей доступа ]
     |
     +- свич #1
     |
     +- свич #2
     |
    ...
     |
     +- свич #N
И, примерно, с таким типом сервиса

Изображение

То как указать где "верхний" влан, а где "нижний"? БГБ при создании сервиса знает только про один тип вланов - "нижний/внутренний", а про остальные он слыхом ни слыхивал, как и о том, что для разных типов пользователей могут быть выданы разные диапазоны вланов.

Дискасс.

/summon Amir

Автор:  a.vozny [ 05 авг 2016, 13:06 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

такие вещи на вики лучше выкладывать....

Автор:  skn [ 05 авг 2016, 16:44 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

а IP адреса у клиентов в описанной выше схеме статические?

Автор:  snark [ 05 авг 2016, 18:39 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

skn писал(а):
IP адреса у клиентов в описанной выше схеме статические?

Нет, динамические.
Статичным в подобной, как и в любой иной, схеме является только БГБ, который хранит в себе абонентов и все что с ними связано и свысока наблюдает за динамическим изменением окружающего его оборудования :)
Мой опыт общения с операторами показывает, что подавляющее большинство респондентов использует динамические адреса, а статику используют только в случае предоставления статических белых адресов.

Представьте, что это классическая схема "VLAN на пользователя", где все вланы пользователей стянуты в ядро.
Дело в том, что когда нет DHCP Relay и, соответственно, нет Option 82, то БГБ негде брать информацию о точке подключения абонента, хотя, при этом, в БГБ есть почти абсолютно все, что можно знать о сети. Почему "почти"?
В классической схеме, которую поддерживает БГБ для IPoE абонента в RADIUS прилетит нечто подобное:
Код:
Packet type: Access-Request
Identifier: 11
Authenticator: {07 44 E3 D2 2A 4B 72 3F 12 23 C5 37 23 B7 4A 59}
Attributes:
  NAS-Identifier=Redback
  User-Name=e8:11:32:70:a5:f8
  User-Password=Redback
  NAS-IP-Address=172.16.255.1
  NAS-Port=-1761607613
  Service-Type=5
  NAS-Port-Id=lg id 825 vlan-id 1000 clips 131139
  NAS-Port-Type=5
  Mac-Addr=e8-11-32-70-a5-f8
  Medium-Type=11
  DHCP-Option={3D 3D 07 01 E8 11 32 70 A5 F8}
  DHCP-Option={0C 0C 09 70 61 75 6C 2D 6E 6F 74 65}
  DHCP-Vendor-Class-Id=MSFT 5.0
  NAS-Real-Port=604394472
И в этом случае в БГБ абсолютно все прекрасно работает, т.к. он, в текущем состоянии, целиком и полностью под это заточен.
В случае использования Q-in-Q в RADIUS прилетит такое - это реальный пакет с реального SE (в примере пакета выше я просто стер верхний тег):
Код:
Packet type: Access-Request
Identifier: 11
Authenticator: {07 44 E3 D2 2A 4B 72 3F 12 23 C5 37 23 B7 4A 59}
Attributes:
  NAS-Identifier=Redback
  User-Name=e8:11:32:70:a5:f8
  User-Password=Redback
  NAS-IP-Address=172.16.255.1
  NAS-Port=-1761607613
  Service-Type=5
  NAS-Port-Id=lg id 825 vlan-id 101:1000 clips 131139
  NAS-Port-Type=5
  Mac-Addr=e8-11-32-70-a5-f8
  Medium-Type=11
  DHCP-Option={3D 3D 07 01 E8 11 32 70 A5 F8}
  DHCP-Option={0C 0C 09 70 61 75 6C 2D 6E 6F 74 65}
  DHCP-Vendor-Class-Id=MSFT 5.0
  NAS-Real-Port=604394472
На DHCP-Option можно не смотреть, т.к.
Цитата:
Currently, this VSA supports DHCP options 12 (hostname), 61 (client identifier), and 77 (user class)

Как его авторизовать?
Можно проставить AGENT_REMOTE_ID и AGENT_CIRCUIT_ID на основе свича и порта из дерева, но, опять же, не ясно какого именно свича и какого именно порта?
Если мы хотим авторизовать по VLAN (у нас же "влан на пользователя", так что все вланы уникальны), то какой VLAN_ID проставлять? Как указать в клиенте или еще каким-либо иным образом сообщить БГБ, что VLAN 1000 находится внутри влана 101?

Изображение

Представьте, что у вас этих "верхних" вланов не один, а штук 10 и в каждом из них живет по 1000++вланов и все они на одном NASе.
Самое обидное, что в БГБ прописано почти все, что нужно для однозначной идентификации пользователя и не хватает только понятия "верхний влан".

Могу предложить наверное самое простое, решение "тупо-в-лоб":
Необходимо в редакторе VLAN ресурсов добавить справа (дабы много не переделывать) от диапазона поле ввода вланов новое поле и обозвать его просто "S-VLAN" (это достаточно стандартное обозначение верхнего тега). Если это поле пустое, то это означает, что используется простое тегирование (как сейчас), а если оно не пустое или его значение < 1 (упаковать во VLAN с VID < 1 не реально) - это означает, что весь данный диапазон VLAN является C-VLAN.

Автор:  zavndw [ 06 авг 2016, 05:06 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

Я пошел другим путем. Когда смотрел на всякие opt82 то волосы чуть не выпали, решили сделать просто как 2х2. У меня верхний и нижний влан подставляется в логин
и указывается в сервисе:
Вложение:
Выделение_004.jpg
Выделение_004.jpg [ 167.83 КБ | Просмотров: 15454 ]

работает как часы
Вложение:
Выделение_005.jpg
Выделение_005.jpg [ 69.51 КБ | Просмотров: 15454 ]

Схема работает второй год уже. Т.к адреса выдает радиус то с динамикой и статикой нет проблем вообще. В биллинге только 1 устройство это нас. Пользователю для индификации достаточно указать в логине пару верхний и нижний vlan. Все работает по radius. Про редактор vlan ресурсов согласен с snark, поле S-VLAN нужно добавить :D

Автор:  ok-2004 [ 07 авг 2016, 11:52 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

2 zavndw:
Идея с логином в виде S-VLAN:C-VLAN - интересная.
А если в влан надо по дхцп отправлять больше одного ип-адреса ? Как из положения выходить в этом случае ?

Автор:  zavndw [ 07 авг 2016, 17:41 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

во время тестов для одного влан выдавались больше чем 1 ip. Но до конца не разбирался, т.к тем кому делал нужно было именно 1 vlan - 1 ip выдавать. Они роутеры таким образом сбывают:)

Автор:  ok-2004 [ 07 авг 2016, 18:39 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

Цитата:
Они роутеры таким образом сбывают


Ага!
1 ип - один рутер.
2 ип - 2рутера + 1 "умный" свитч.
....
....
8 ип - ...+ 8U стойка.

Ахренительный бизнес. И как мы раньше не додумались об этом. Пойду, Dir-у "рацуху" подкину.

Автор:  zavndw [ 08 авг 2016, 03:57 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

в принципе могу проверить, будет ли в моей схеме работать выдача пула адресов, надо стенд перенастроить

Автор:  stark [ 08 авг 2016, 16:25 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

Тут основной вопрос, зачем вам хранить super-vlan на каждом клиенте? Не избыточно ли это ?
Т.е у вас будет 1000 клиентов с одним одинаковым super vlan 101 ? зачем дублировать эту информацию? Нельзя ли на устройстве в дереве где-то хранить что все что ниже и иерархии это 101 super vlan . И соответственно при поиске сервиса нам учитывать эту настройку устройства. Абонент же в конце концов привязан к конкретному конечному устройству, для которого однозначно выше по иерархии можно определить super vlan. Или у вас не такое однозначное дерево?

Автор:  stark [ 08 авг 2016, 16:27 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

А вижу, у вас дерево такое, что nas-ы в другой иерархии, не в той, где свичи. А почему именно такое дерево ?

Автор:  stark [ 08 авг 2016, 16:40 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

В вашей папке "папка свичей доступа" можно сделать сделать свичи агрегации (или папки), в которых указать vlan. Т.е почему бы все-таки не указать super vlan-где-то в иерархии, а не для каждого абонента. Это было бы оптимальнее - прописать в одном месте 101-ый super vlan, а не выбирать у 1000 разных абонентов один и тот же 101 super vlan . Вы же начнете ошибаться если вам нужно 1000 раз прописать 101 vlan и сами же попросите придумать решение как определять super vlan автоматом ( по иерархии или как-то еще) при добавлении абонента.

Я не против того, что вам нужен super vlan. Но кажется избыточным и неверным дублировать его для каждого абонента. На момент создания абонента мы откуда-то уже должны знать какой у него super vlan(по иерархии устройств или как-то еще) и не выбирать его заново.

Автор:  Jimson [ 08 авг 2016, 17:11 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

stark писал(а):
Т.е почему бы все-таки не указать super vlan-где-то в иерархии, а не для каждого абонента.

Похожую логику тестировал для ISG+MPLS - абонент идентифицируется по IP, но адреса могут пересекаться в разных VRF. VRF в дереве устройств это виртуальное устройство, в конфигурации которого указаны связи с NAS-Port-Id, по этим связям ProtocolHandler добавляет AGENT_REMOTE_ID в запросы.

P.S. Но VLAN в BGB это все равно не VLAN, а неизвестно что. Вышел какой то идентификатор применимый только к PPPoE/etc услугам, при тарификации по netflow использовать невозможно.

Автор:  zavndw [ 08 авг 2016, 17:31 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

stark писал(а):
В вашей папке "папка свичей доступа" можно сделать сделать свичи агрегации (или папки), в которых указать vlan. Т.е почему бы все-таки не указать super vlan-где-то в иерархии, а не для каждого абонента. Это было бы оптимальнее - прописать в одном месте 101-ый super vlan, а не выбирать у 1000 разных абонентов один и тот же 101 super vlan . Вы же начнете ошибаться если вам нужно 1000 раз прописать 101 vlan и сами же попросите придумать решение как определять super vlan автоматом ( по иерархии или как-то еще) при добавлении абонента.

Я не против того, что вам нужен super vlan. Но кажется избыточным и неверным дублировать его для каждого абонента. На момент создания абонента мы откуда-то уже должны знать какой у него super vlan(по иерархии устройств или как-то еще) и не выбирать его заново.

попробую на стенде собрать :roll:

Автор:  snark [ 08 авг 2016, 19:30 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все

stark писал(а):
основной вопрос, зачем вам хранить super-vlan на каждом клиенте?

Этого совершенно не нужно! Супер влан достаточно хранить только, например, в категории вланов ну или, как вы уже правильно предложили, в дереве устройств.
Грубо говоря, необходимо его где-то указать, дабы напрочь исключить человеческий фактор или, как его иногда называют, синдром блондинки, т.е. когда оператором клиента биллинга является девочка, которая, собственно и создает сервисы, она даже физически не могла допустить ошибку, для чего мы в конфигурации указываем диапазоны влан и некий супер влан для каждого диапазона.
Например, когда подключение происходит в Уфе, то девочка выбирая диапазон вланов для района и нажимая "<<<", она автоматически проставляет влан, а БГБ точно знает, что для Демского района супер влан 101, для Калининского р-на - 102, для Кировского - 103 и т.д.

stark писал(а):
у вас будет 1000 клиентов с одним одинаковым super vlan 101 ?

Даже больше, чем 1000 и у всех один супер влан.
При использовании схемы Vlan-per-user, если использовать диапазон вланов с 1000 по 4000 - это будет 3000 вланов, которые, если использовать 24-х портовые свичи, размажутся по 125 свичам в дереве.

stark писал(а):
Нельзя ли на устройстве в дереве где-то хранить что все что ниже и иерархии это 101 super vlan
stark писал(а):
В вашей папке "папка свичей доступа" можно сделать сделать свичи агрегации (или папки), в которых указать vlan. Т.е почему бы все-таки не указать super vlan-где-то в иерархии

Почему же нельзя? Можно! И, пожалуй, нечто подобное

Изображение

Т.е. указание S-VLAN где-то в конфиге "агрегатора" нижестоящих свичей, будет самым правильным, наиболее логичным, решением.

stark писал(а):
у вас дерево такое, что nas-ы в другой иерархии, не в той, где свичи. А почему именно такое дерево ?

Дерево для демонстрации было тупо взято из документации :oops:

Изображение

Кстати, раз речь зашла о доке, то исправьте, пожалуйста, здесь двойное упоминание "radius.password.verification"

Автор:  stark [ 08 авг 2016, 20:05 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все (CRM)

добавил в TODO

Автор:  snark [ 08 авг 2016, 20:33 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все (CRM)

TODO - это, конечно, хорошо, но что делать сейчас?
RADIUS поймет, если используя "radius.servSearchMode=4" (поскольку VLAN-per-user, то авторизовать по VLAN - самое оно, не?) в предобработке тупо проставить VLAN как 101:1000, 101:1001, 101:1002 и т.д.?
Проще говоря: нид хелп по запуску инет, асап! :roll:
Тестовый стенд в наличии.

Автор:  Jimson [ 08 авг 2016, 21:09 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все (CRM)

Так в чем проблема? В предобработке разбираешь Nas-Port-Id, убираешь "101:" из этого атрибута и по "101" находишь в дереве устройств подходящий корневой свич, добавляешь AGENT_REMOTE_ID в запрос. Делать это достаточно только для стартового пакета.
Приатачил свой ProtocolHandler, там несколько сложный алгоритм поиска "агента" через интерфейсы устройств в дереве и с учетом временного периода "активности" устройств, у тебя будет немного проще.

Вложения:
ISGinVRFProtocolHandler.rar [2.76 КБ]
Скачиваний: 245

Автор:  zavndw [ 09 авг 2016, 04:15 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все (CRM)

snark писал(а):
TODO - это, конечно, хорошо, но что делать сейчас?

Ты сам знаешь где ускоряется решение вопроса:) всего 2 буквы

Автор:  vdd [ 10 авг 2016, 18:14 ]
Заголовок сообщения:  Re: VLAN, Q-in-Q и все все все (CRM)

А вот https://forum.bitel.ru/viewtopic.php?f=44&t=11478 в туда же можно?
В TODO, в смысле.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/