URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 3491
[ Назад ]

Исходное сообщение
"Multicast Routing в Freebsd"

Отправлено GetinakS , 11-Окт-07 03:18 
В локальной сети провайдер ввел IPTV (мультикастом). У меня же собран роутер на базе FreeBSD 6.2-RELEASE. Фильтрация трафика осуществляется ipfw, функции nat возложены на pf.

Сетевые карты fxp0 - в локалку, fxp1 - к провайдеру (
fxp0: flags=8a43<UP,BROADCAST,RUNNING,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500
        options=48<VLAN_MTU,POLLING>

fxp1: flags=9a43<UP,BROADCAST,RUNNING,ALLMULTI,SIMPLEX,LINK0,MULTICAST> mtu 1500
        options=48<VLAN_MTU,POLLING>
).

Ядро собрано с options MROUTING и options PIM
В конфиге pf прописано:

nat pass on fxp1 from fxp0/16 to any -> (fxp1)
pass in quick on fxp1 all allow-opts
pass in quick on fxp0 all allow-opts

В ipfw указаны только пара запретов (не касающихся мультикаста вообще, да и отключал я ipfw, без результатов)
У провайдера CISCO общается на PIMv2, следовательно mrouted не работает. Пробовался igmpproxy (брал отсюда http://homenet.corbina.net/index.php?s=178a67519e0d477b6f4b0... )
с таким конфигом :
quickleave
phyint fxp1 upstream  ratelimit 0  threshold 1
phyint fxp0 downstream  ratelimit 0  threshold 1
- не заработало, на внутреннем интерфейсе запрос igmp виден, на внешнем - его уже нет. Да и pid 1747 (igmpproxy), uid 0: exited on signal 11 (core dumped) постоянно он.

Попробовал pimd - ноль реакции, все теже грабли и тоже core dumped.
224.0.0.0.4 маршрутизируется естественно через fxp1

Соответственно вопрос, почему роутер кудато проглатывает igmp?


Содержание

Сообщения в этом обсуждении
"Multicast Routing в Freebsd"
Отправлено GetinakS , 15-Окт-07 23:03 
в общем уже сам разобрался, надо было ещё и out указать.
Теперь другая проблема, при смене каналов/остановке igmpproxy мертво вешает машину, успев сообщить, что отрубается от группы


"Multicast Routing в Freebsd"
Отправлено eGuru , 24-Дек-07 15:36 
1. Проследи, чтобы в файрволле была открыта сеть 224.0.0.0/4 - это все адреса для мультикастов.
2. Для маршрутизации используй XORP. Этот мультипротокольный роутер поддерживает и IGMPv1-3 и PIMv1-2.

"Multicast Routing в Freebsd"
Отправлено GetinakS , 24-Дек-07 16:15 
>1. Проследи, чтобы в файрволле была открыта сеть 224.0.0.0/4 - это все
>адреса для мультикастов.
>2. Для маршрутизации используй XORP. Этот мультипротокольный роутер поддерживает и IGMPv1-3 и
>PIMv1-2.

Увы, XORP для PIM хочет, чтобы его в провайдерский домен включили, провайдер ессесно настроил cisco стоящую выше меня на фильтрацию половины PIM-SM сообщений


"Multicast Routing в Freebsd"
Отправлено Radio , 12-Мрт-09 19:42 
Поднимаем старую тему господа.

После нескольких часов Гугла, читания множества форумов - результат один - IPTV - неработает

Работаем с FreeBSD 7.0-RELEASE
Имеем nfe0 - смотрящего напрямую в Инет (с внешним IP)
fxp0 - смотрящего во внутреннюю сеть 172.19.14.0/24

Опции в ядре

====== my =========
options IPFIREWALL
options IPFIREWALL_FORWARD
options IPDIVERT
options IPFIREWALL_NAT
options DUMMYNET
options LIBALIAS
options MROUTING
====== my =========

Настройки IPFW

====== /etc/ip.firewall =========
fwcmd="/sbin/ipfw -q"

ext_if="nfe0"

${fwcmd} -f flush

${fwcmd} add pass all from any to any via lo0
${fwcmd} add deny all from any to 127.0.0.0/8
${fwcmd} add deny ip from 127.0.0.0/8 to any

${fwcmd} add divert natd ip4 from any to any via $ext_if

${fwcmd} add pass ip from any to any
${fwcmd} add pass igmp from any to any
====== /etc/ip.firewall =========

Запущен igmpproxy

====== /usr/local/etc/igmpproxy.conf =========
quickleave
phyint nfe0 upstream ratelimit 0 threshold 1
phyint fxp0 downstream ratelimit 0 threshold 1
====== /usr/local/etc/igmpproxy.conf =========


По совету извращенцев добавлен роутинг
route add -net 224.0.0.0 77.41.80.1 240.0.0.0


Пробовал mrouted


Пробовал pimdd из портов, т.к. опция PIM в ядре - не работает, пишет что неизвестная


Пробовал всё во всех порядках и позах


Всё работает - КРОМЕ IPTV


Помогите!


"Multicast Routing в Freebsd"
Отправлено fx , 15-Мрт-09 11:23 
>${fwcmd} add pass ip from any to any

многовато :)
для IPTV достаточно:
${fwcmd} add pass ip from any to 224.0.0.0/4


>====== /usr/local/etc/igmpproxy.conf =========
>quickleave
>phyint nfe0 upstream ratelimit 0 threshold 1
>phyint fxp0 downstream ratelimit 0 threshold 1
>====== /usr/local/etc/igmpproxy.conf =========

а igmpproxy под фрю адаптирован?
в конфиг ещё надо добавить опцию altnet, где прописать все подсети, используемые провайдером для вещания, например:

altnet 224.0.0.0/4
altnet 77.41.80.0/24

(эти данные должен выдать провайдер)

и, говорят, желательно запретить остальные интерфейсы, какие есть, например:

phyint lo0 disabled
phyint fxp1 disabled

>По совету извращенцев добавлен роутинг
>route add -net 224.0.0.0 77.41.80.1 240.0.0.0

извращенский роутинг не нужен, если у тебя один шлюз для всего.

>Всё работает - КРОМЕ IPTV

свои данные для altnet я подобрал, глядя в лог igmpproxy и tcpdump (мой провайдер их пока не выдал) - тем не менее, через мой шлюз (FreeBSD 7.1) с этими настройками IPTV побежало-таки.


"Multicast Routing в Freebsd"
Отправлено Kadafi , 27-Мрт-09 16:38 
Сам этим вопросом давно озадачен. Не работает ничего, кроме igmpproxy. Но при частом переключении каналов выпадаю в дамп на Freebsd 7.0 , 7.1. У меня правда 3 сетевухи в бридже на которые мыльтикасты должны транслировацца, возможно можно достичь стабильности с минимумом железок..
Пробовал еще делать бридж с фильтрацией между своей и провайдерской сеткой, мультикасты бегают, но сами понимаете, это как-то некузяво..

"Multicast Routing в Freebsd"
Отправлено penkovmm , 06-Июл-09 11:54 
>Сам этим вопросом давно озадачен. Не работает ничего, кроме igmpproxy. Но при
>частом переключении каналов выпадаю в дамп на Freebsd 7.0 , 7.1.
>У меня правда 3 сетевухи в бридже на которые мыльтикасты должны
>транслировацца, возможно можно достичь стабильности с минимумом железок..
>Пробовал еще делать бридж с фильтрацией между своей и провайдерской сеткой, мультикасты
>бегают, но сами понимаете, это как-то некузяво..

А на 7.2 кто-нибудь пробовал? Мож, 7.2 не падает уже?
Кстати, вроде как в 7.2 улучшен механизм jail, мож попробовать igmpproxy в клетке запускать?


"Multicast Routing в Freebsd"
Отправлено Kirill Loker , 13-Июл-09 14:50 
>А на 7.2 кто-нибудь пробовал? Мож, 7.2 не падает уже?

Чего-то у меня вообще не работает. Правда пока не копал глубоко. У меня 7.2 и bridge на внутренние компы. Кто-нибудь сумел таки нормально запустить это дело?


"Multicast Routing в Freebsd"
Отправлено Kirill Loker , 14-Июл-09 11:40 
>А на 7.2 кто-нибудь пробовал? Мож, 7.2 не падает уже?

Да, настроил всё на 7.2. Работает. Но таки падает при переключении каналов. Нечасто, но регулярно. Будем ждать обновления igmpproxy? Может есть альтернативные методы? У провайдеров же как-то работает.


"Multicast Routing в Freebsd"
Отправлено pekap , 05-Сен-09 22:21 
>>А на 7.2 кто-нибудь пробовал? Мож, 7.2 не падает уже?
>
>Да, настроил всё на 7.2. Работает. Но таки падает при переключении каналов.
>Нечасто, но регулярно. Будем ждать обновления igmpproxy? Может есть альтернативные методы?
>У провайдеров же как-то работает.

Помагите кто нибудь настроить..............


"Multicast Routing в Freebsd"
Отправлено GetinakS , 06-Сен-09 00:44 
>>>А на 7.2 кто-нибудь пробовал? Мож, 7.2 не падает уже?
>>
>>Да, настроил всё на 7.2. Работает. Но таки падает при переключении каналов.
>>Нечасто, но регулярно. Будем ждать обновления igmpproxy? Может есть альтернативные методы?
>>У провайдеров же как-то работает.
>
> Помагите кто нибудь настроить..............

debug.mpsafenet=0  в /boot/loader.conf попробуйте добавить.


"Multicast Routing в Freebsd"
Отправлено pekap , 06-Сен-09 16:03 
igmpproxy, Version 0.1 beta3 for FreeBSD, Build 090906
Copyright 2005 by Johnny Egeland <johnny@rlo.org>
Copyright 2007 by Pavel Korshunov, www.korshunov.com
Copyright 2008 by gygenot, www.gygenot.com
Distributed under the GNU GENERAL PUBLIC LICENSE, Version 2 - check GPL.txt
Debu: Searching for config file at '/usr/local/etc/igmpproxy.conf'
Debu: Config: Got a phyint token.
Debu: Config: IF: Config for interface rl0.
Debu: Config: IF: Got upstream token.
Debu: Config: IF: Got ratelimit token '0'.
Debu: Config: IF: Got threshold token '1'.
Debu: Config: IF: Got altnet token 10.5.200.1.
Debu: Config: IF: Altnet: Parsed altnet to 10.5.200.1/32.
Debu: Config: IF: Got altnet token 239.0.0.0/12.
Debu: Config: IF: Altnet: Parsed altnet to 239.0/12.
Debu: IF name : rl0
Debu: Next ptr : 0
Debu: Ratelimit : 0
Debu: Threshold : 1
Debu: State : 1
Debu: Allowednet ptr : 2820c030
Debu: Config: Got a phyint token.
Debu: Config: IF: Config for interface rl2.
Debu: Config: IF: Got downstream token.
Debu: Config: IF: Got ratelimit token '0'.
Debu: Config: IF: Got threshold token '1'.
Debu: IF name : rl2
Debu: Next ptr : 0
Debu: Ratelimit : 0
Debu: Threshold : 1
Debu: State : 2
Debu: Allowednet ptr : 0
Debu: Config: Got a phyint token.
Debu: Config: IF: Config for interface lo0.
Debu: Config: IF: Got disabled token.
Debu: IF name : lo0
Debu: Next ptr : 0
Debu: Ratelimit : 0
Debu: Threshold : 1
Debu: State : 0
Debu: Allowednet ptr : 0
Debu: Config: Got a phyint token.
Debu: Config: IF: Config for interface rl1.
Debu: Config: IF: Got disabled token.
Debu: IF name : rl1
Debu: Next ptr : 0
Debu: Ratelimit : 0
Debu: Threshold : 1
Debu: State : 0
Debu: Allowednet ptr : 0
Debu: Config: Got a phyint token.
Debu: Config: IF: Config for interface ng0.
Debu: Config: IF: Got disabled token.
Debu: IF name : ng0
Debu: Next ptr : 0
Debu: Ratelimit : 0
Debu: Threshold : 1
Debu: State : 0
Debu: Allowednet ptr : 0
Debu: get if vector
Debu: Searching for config file at 'rl0':70200:18:2
Debu: Searching for config file at 'rl0':528:2:2
Debu: Physical Index value of IF 'rl0' is 1
Debu: buildIfVc: Interface rl0 Addr: 109.86.174.3, Flags: 0xffff8843, Network: 109.86.174/24
Debu: Searching for config file at 'rl1':135736:18:2
Debu: Searching for config file at 'rl1':528:2:2
Debu: Physical Index value of IF 'rl1' is 2
Debu: buildIfVc: Interface rl1 Addr: 10.11.6.45, Flags: 0xffff8843, Network: 10.11.6/23
Debu: Searching for config file at 'rl2':201272:18:2
Debu: Searching for config file at 'rl2':528:2:2
Debu: Physical Index value of IF 'rl2' is 3
Debu: buildIfVc: Interface rl2 Addr: 192.168.100.1, Flags: 0xffff8843, Network: 192.168.100/24
Debu: Searching for config file at 'pflog0':266808:18:2
Debu: Searching for config file at 'lo0':332344:18:2
Debu: Searching for config file at 'lo0':528:2:2
Debu: Physical Index value of IF 'lo0' is 5
Debu: buildIfVc: Interface lo0 Addr: 127.0.0.1, Flags: 0xffff8049, Network: 127/8
Debu: Searching for config file at 'pfsync0':397880:18:2
Debu: Searching for config file at 'ng0':463416:18:2
Debu: Searching for config file at 'ng0':528:2:2
Debu: Physical Index value of IF 'ng0' is 7
Debu: buildIfVc: Interface ng0 Addr: 192.168.32.1, Flags: 0xffff88d1, Network: 192.168.32.1/32
Debu: Found config for rl0
Debu: Found config for rl1
Debu: Found config for rl2
Debu: Found config for ng0
Note: adding VIF, Ix 0 Fl 0x0 IP 0x03ae566d rl0, Threshold: 1, Ratelimit: 0
Debu:         Network for [rl0] : 109.86.174/24
Debu:         Network for [rl0] : 10.5.200.1/32
Debu:         Network for [rl0] : 239.0/12
Note: adding VIF, Ix 1 Fl 0x0 IP 0x2d060b0a rl1, Threshold: 1, Ratelimit: 0
Debu:         Network for [rl1] : 10.11.6/23
Note: adding VIF, Ix 2 Fl 0x0 IP 0x0164a8c0 rl2, Threshold: 1, Ratelimit: 0
Debu:         Network for [rl2] : 192.168.100/24
Note: adding VIF, Ix 3 Fl 0x0 IP 0x0120a8c0 ng0, Threshold: 1, Ratelimit: 0
Debu:         Network for [ng0] : 192.168.32.1/32
Debu: Got 232448 byte buffer size in 8 iterations
Debu: Joining all-routers group 224.0.0.2 on vif 192.168.100.1
Debu: SENT Membership query   from 192.168.100.1   to 224.0.0.1
Debu: Sent membership query from 192.168.100.1 to 224.0.0.1. Delay: 10
Debu: All Created timeout 1 (#0) - delay 10 secs 134532704
Debu: (Id:1, Time:10)
Debu: All Created timeout 2 (#1) - delay 21 secs 134529376
Debu: (Id:1, Time:10)
Debu: (Id:2, Time:21)
Note: Timeout 10
Note: RECV V2 member report   from 192.168.100.1   to 224.0.0.2
Note: The IGMP message was from myself. Ignoring.
Note: Timeout 10
Note: RECV Membership query   from 192.168.100.1   to 224.0.0.1
Info: ignoring unknown IGMP message type 11 from 192.168.100.1 to 224.0.0.1
Note: Timeout 10
Note: RECV V2 member report   from 192.168.100.6   to 239.255.255.250
Debu: Should insert group 239.255.255.250 (from: 192.168.100.6) to route table. Vif Ix : 2
Debu: No existing route for 239.255.255.250. Create new.
Debu: No routes in table. Insert at beginning.
Info: Inserted route table entry for 239.255.255.250 on VIF #2
Debu: Joining group 239.255.255.250 upstream on IF address 109.86.174.3
Debu:
Current routing table (Insert Route);

Вот кусок лога.Но работать не хочет помагить разобраться!!!!!!!!!!!!!!!!!