The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Раздел полезных советов: Multicast во FreeBSD без igmpproxy, auto_tips (??), 12-Дек-11, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


23. "Multicast во FreeBSD без igmpproxy"  +/
Сообщение от unscrubber (?), 24-Дек-11, 21:14 
наконец то удалось найти время для экспериментов

> У меня 8.2 х64, но это не должно иметь значения. Памяти там
> требуется не много, совсем не во время работы. Возможно проблема с
> либами которые преобразуют выражения для фильтра с помощью tcpdump в код

..
> Попробуйте в консоле: tcpdump -s 65535 -ddd 'ether[0] & 1 = 1
> and (ether[0:4] != 0xffffffff or ether[4:2] != 0xffff) and ip[9] =
> 2'

...

запустил в консоли, потом посмотрел вывод, почитал маны, понял что вроде валидный вывод, сделал вспомогательный подскриптик как часть с инициализацией BPFPROG_MCAST_IGMP (я так понимаю по логике это достаточно статичный массив если провайдер не меняет настройки вещания) чтоб не руками набивать, скинул в текстовые файлы. сделал "лениво-отладочную" версию скрипта с жестко прошитыми интерфейсами и выводом по эхо номеров строк скрипта выполненых, вобщем ошибок не было, модифицировал ваш скрипт заменив подпрограмку с использованием вызова tcpdump на bpfprog из файлов в которые заранее сохранял - запустил - и о чудо работает черт подери !!! :D сижу смотрю наконец бридж-тв... мтс на кабельном отрубили его.. пришлось ip-tv подключать

рад очень, странно что исходная версия подвисала, но главно чтотеперь работает, решение изящное, не надо пересобирать после обновлений этот порт igmpproxy ... он коненчо служил верой и правдой мне пару лет но через bpf еще интересней и универсальней получается.

Ответить | Правка | Наверх | Cообщить модератору

24. "Multicast во FreeBSD без igmpproxy"  +/
Сообщение от michaeladmemail (ok), 26-Дек-11, 09:40 
> unscrubber
> ....
> коненчо служил верой и правдой мне пару лет но через bpf
> еще интересней и универсальней получается.

а можно поподробней

Ответить | Правка | Наверх | Cообщить модератору

26. "Multicast во FreeBSD без igmpproxy"  +/
Сообщение от unscrubber (?), 28-Дек-11, 14:22 
объясняю коряво и быстро (как могу),
при настройке igmp.conf надо знать (например запуская бинарник igmpproxy с ключём -d, помоему я так делал при первой настройке, сам провайдер нифига не говорит обычно о этих деталях - им проще когда абоненты дылинк-коробки покупают, на форумах не факт что свежая инфа найдется) с каких мультикаст сетей/адресов вещает провайдер чтобы вбить их в altnet на upstream интерфейсе в конфиге.. соответственно при изменениях - надо снова как то вычислять и сохранять конфиг,
и вторая половина - настройка файрвола, если эти подсети были в таблицах перечислены то обновлять.

на igmpproxy примерно год работал ip-tv, но потом в виду наличия тв-тюнер карты и взымания платы за ip-tv выключил (был еще отмечен какой то несанкционированный паразитный траффик входящий порядка 5-100КБ/с, даже если во внутренней сети все клиенты поотключались), а когда мне спустя полтора года снова потребовалось задействовать ранее настраивавшийся и успешно работавший igmpproxy (при отключении просто закоментированы были правила в pf.conf  igmpproxy_enabled="NO" в rc.conf) - во первых не заработало со старыми настройками (во внутренней сети клиенты не получили потока), во вторых не заработало с новыми настройками и даже с альтнетами 0.0.0.0 не было успеха. Не исключаю что я делал диагностику не правильно, попозже приобщу фрагменты конфигов которые "не взлетели" - там имхо изобретать особо нечего.

Резюме:
плюсы от использования решения с ng_bpf вижу в том что меньше конфигов править при изменениях, и эти модули по идее есть всегда под рукой, и они написаны на высоком "ядерном" уровне качества - не надо ставить дополнительные порты (например igmpproxy или udpxy). Хотя если честно для меня все это так и осталось магией - я еще не осознал саму ng_bpf технику что используется скриптом :)

Ответить | Правка | Наверх | Cообщить модератору

29. "Multicast во FreeBSD без igmpproxy"  +/
Сообщение от Ivan_83email (?), 29-Дек-11, 22:01 
> Резюме:
> плюсы от использования решения с ng_bpf вижу в том что меньше конфигов
> править при изменениях, и эти модули по идее есть всегда под
> рукой, и они написаны на высоком "ядерном" уровне качества - не
> надо ставить дополнительные порты (например igmpproxy или udpxy). Хотя если честно
> для меня все это так и осталось магией - я еще
> не осознал саму ng_bpf технику что используется скриптом :)

На каждый хук, подключённый к ng_bpf можно назначить программу, результатом которой может быть пересылка пакета на один из двух указанных в программе хуков. Можно пересылать пакет не целиком а обрезать.
upper - это хуки на которых трафик от самой системы/в систему
lower - драйвер сетевухи

Всё что идёт с upper пересылается на lower без раздумий.
Если с lower идёт что то, что подпадает под условия мультикаста, то оно пересылается на lower другой сетевухи, остальное на upper этой же сетевухи.

bpf реализует простенький ассемблер, уровня: загрузить 1/2/4 байт с такого то смещения, сравнить, да - переход на XXX строку, нет - переход на YYY строку. Если возвращается 0 - то не совпало, если больше нуля - то столько бат переслать на хук match.
tcpdump -d "выражение" - прекрасно это иллюстрирует.
Более подробно или у нюклайта (постера новости) в блоге или в исходниках/манах.

Ответить | Правка | Наверх | Cообщить модератору

25. "Multicast во FreeBSD без igmpproxy"  +/
Сообщение от Ivan_83email (?), 26-Дек-11, 21:05 
> рад очень, странно что исходная версия подвисала, но главно чтотеперь работает, решение
> изящное, не надо пересобирать после обновлений этот порт igmpproxy ... он
> коненчо служил верой и правдой мне пару лет но через bpf
> еще интересней и универсальней получается.

В вашем случае почему то не хватало памяти для компиляции правил в бпф ассемблер, у меня такой же результат был на арм коробочке с 32 мб озу.
На работе самого нетграфа/бпф это не отражается.
Рад что у вас всё получилось.

Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

30. "Multicast во FreeBSD без igmpproxy"  +/
Сообщение от unscrubber (?), 30-Дек-11, 06:20 
>...и о чудо
> работает черт подери !!! ..

счастье было недолгим, даже при использовании сохраненных в файл паттернов/шаблонов для bpf (PATTERN_MCAST_IGMP и тп)  опять при запуске ng_ctl наблюдаю out of swap ошибки, после праздников поразбираюсь.

P.S.
не сразу нашел блог нуклайта о котором Иван пишет - на всякий случай пишу тут ссылочку, http://nuclight.livejournal.com/

Ответить | Правка | К родителю #23 | Наверх | Cообщить модератору

31. "Multicast во FreeBSD без igmpproxy"  +/
Сообщение от unscrubber (?), 03-Янв-12, 09:43 
> счастье было ...

счастье есть :)
убрал из автостарта скрипт, если руками запускать то работает.
возможно разница в том как я строку-массив (программу для bpf) из файла загружал, в оригинале было PATTERN..= $ ( <some commands> )
я заменил PATTERN..= $ ( cat bpfprog_igmp.txt )
на PATTERN..=`cat bpfprog_igmp.txt`

P.S. с переключением каналов все хорошо на компе, хоть с winXP хоть с GNU/Linux

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру