Alwan писал(а):
Если можно здесь или на e-mail отпишите пожалуйста суть проблемы (она вроде в общем видна из текста) и пути решения.
Да пожалуйста, вдруг и впрямь кому поможет. Дело, значит, было так...
I. До недавнего времени у нас работала следующая схема (очень упрощённо):
Код:
(1) (3) к
----------------- -------- л
| linux | | linux | -> и
|stream->PIM-SM (RP)->| PIM-SM | -> е
| router | | router | -> н
----------------- -------- т
| | | ы
\|/\|/\|/
клиенты
а) мультикаст-поток рождается внутри линукс-машины (1) и отдаётся во вне через работающий на этой же машине PIM-SM маршрутизатор.
Объединение "в одном флаконе" вещателя с маршрутизатором решает проблему загрузки канала передачи данных: в моём варианте из "вещателя" наружу выходят пакеты только тех мультикаст-групп, которые реально запрашиваются клиентами (для сравнения: обычный "тупой" вещатель "выплёвывает" наружу ВСЕ порождаемые внутри него пакеты независимо от того, просил ли их кто-либо или не просил);
б) далее мультикаст-поток поступает на вход другого линукс PIM-SM маршрутизатора, который раздаёт его конечным пользователям (находящимся в разных VLAN'ах)
II. На днях появилась "свободная" сумма "общечеловеческих ценностей", достаточная для приобретения DGS-3612G

. К сожалению, эту "железяку" у меня "увели" буквально из-под носа, поэтому пока пришлось ограничиться приобретением DES-3828.
Вышеобозначенный свежеприобретённый девайс (2) был установлен в уже работающую систему "в разрыв", как показано на следующей (опять же сильно упрощённой) схеме:
Код:
(1) (2) (3) к
------------------ -------- -------- л
| linux | | | | linux | -> и
|stream-> PIM-SM (RP)->|DES-3828|->| PIM-SM | -> е
| router | | | | router | -> н
------------------ -------- -------- т
| | | ы
\|/\|/\|/
клиенты
К слову сказать, DES-3828 - первое Layer-3 устройство в моей практике, но тем не менее весь процесс его настройки (создание VLAN'ов и ip-интерфейсов, поднятие IGMP и PIM-SM и их настройка заняли совсем немного времени). Интерфейс командной строки у DLink'а на высоте, работа не вызывает затруднений, все параметры говорят сами за себя, и при соответствующем понимании сути поставленной задачи и знании соответствующих сетевых протоколов процесс конфигурирования интуитивно понятен, и в общем-то обращение к мануалам и FAQ'ам не требуется. За что, конечно же, благодарность и разработчикам, и отдельное большое спасибо службе техподдержки: ребята, вы - супер!
Ну так вот, система очень быстро "завелась" (единственная оговорка - пришлось обновить Firmware: тот релиз, что выложен в официальном доступе, с завидным постояннством "вылетал" в exception mode).
Но, как я и говорил ранее, "вылезла" проблема зависимости загрузки CPU коммутатра от количества проходящих пакетов.
III. В моём случае решение оказалось совершенно нетривиальным и трудно объяснимым: смотрите следующий рисунок и найдите 10 отличий с предыдущим

Код:
(1) (2) (3) к
--------------------- -------- -------- л
| linux | | | | linux | -> и
|stream-> (RP) PIM-SM |->|DES-3828|->| PIM-SM | -> е
| router | | | | router | -> н
--------------------- -------- -------- т
| | | ы
\|/\|/\|/
клиенты
В двух словах: конфигурация коммутатора совершенно не поменялась. Изменения коснулись расположения Rendez-vous Point (точки встречи - RP) для мультикаст-групп,вещаемых сервером 1.
В предыдущей схеме (там, где наблюдалась огромная загрука CPU) точка встречи располагалась на вещательном сервере, в одной подсети с интерфейсом коммутатора.
В актуальной же схеме точка встречи (RP) ушла "вглубь" вещательного сервера и стала располагаться в той подсети, из которой собственно и исходят мультикаст-пакеты. В этом случае загрузка CPU коммутатора вернулась к норме и перестала зависеть от рэйта (скорости) маршрутизации пакетов.
Другой, тоже нормально работающий вариант размещения точки встречи показан на следующей схеме. В этом случае нагрузка на CPU также остаётся в норме.
Код:
(1) (2) (3) к
---------------- ----------- -------- л
| linux | | | | linux | -> и
|stream-> PIM-SM |->(RP)DES-3828 |->| PIM-SM | -> е
| router | | | | router | -> н
---------------- ----------- -------- т
| | | ы
\|/\|/\|/
клиенты
Resume.
Если точка встречи (RP) находится в одной сети с PIM-SM-enabled интерфейсом коммутатора, но при этом НЕ совпадает с IP-адресом этого интерфейса (т.е. находится вне коммутатора), то DES-3828 начинает сильно напрягаться.
Это не bug, это - feature!
зы. Информация актуальна для FW 3.00.B59.
ззы. Информация о точках встречи в моей сети передаётся через механизм bootstrap. Причём bootstrap-сервером является DES-3828, rp-серверами являются "вещатели" (на моих схемах показан один, реально их много).