IPtv multicast
-
А нету …
внутри есть
19:36:59.593338 IP 192.168.0.97 > 239.255.0.147: igmp v2 report 239.255.0.147
19:37:00.046835 IP 192.168.0.97 > 239.255.0.147: igmp v2 report 239.255.0.147 -
Это при запуске
igmpproxy -d /tmp/igmpproxy.conf
igmpproxy, Version 0.1 beta2, Build 090427
Copyright 2005 by Johnny Egeland johnny@rlo.orgDistributed under the GNU GENERAL PUBLIC LICENSE, Version 2 - check GPL.txtDebu: Searching for config file at '/usr/local/etc/igmpproxy.conf'
Debu: Config: Quick leave mode enabled.
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 239.255.1.0/24.
Debu: Config: IF: Altnet: Parsed altnet to 239.255.1/24.
Debu: Config: IF: Got altnet token 239.255.0.0/24.
Debu: Config: IF: Altnet: Parsed altnet to 239.255.0/24.
Debu: Config: IF: Got altnet token 212.48.127.0/24.
Debu: Config: IF: Altnet: Parsed altnet to 212.48.127/24.
Debu: Config: IF: Got altnet token 212.49.127.0/24.
Debu: Config: IF: Altnet: Parsed altnet to 212.49.127/24.
Debu: IF name : rl0
Debu: Next ptr : 0
Debu: Ratelimit : 0
Debu: Threshold : 1
Debu: State : 1
Debu: Allowednet ptr : 2820c040
Debu: Config: Got a phyint token.
Debu: Config: IF: Config for interface dc0.
Debu: Config: IF: Got downstream token.
Debu: Config: IF: Got ratelimit token '0'.
Debu: Config: IF: Got threshold token '1'.
Debu: IF name : dc0
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 lo.
Debu: Config: IF: Got disabled token.
Debu: IF name : lo
Debu: Next ptr : 0
Debu: Ratelimit : 0
Debu: Threshold : 1
Debu: State : 0
Debu: Allowednet ptr : 0
Debu: Adding Physical Index value of IF 'rl0' is 1
Debu: buildIfVc: Interface rl0 Addr: 192.168.0.1, Flags: 0xffff8943, Network: 192.168.0/24
Debu: Adding Physical Index value of IF 'rl1' is 2
Debu: buildIfVc: Interface rl1 Addr: 10.255.189.195, Flags: 0xffff8943, Network: 10.255.189.192/27
Debu: Adding Physical Index value of IF 'lo0' is 7
Debu: buildIfVc: Interface lo0 Addr: 127.0.0.1, Flags: 0xffff8049, Network: 127/8
Debu: Found config for rl0
Note: adding VIF, Ix 0 Fl 0x0 IP 0x0100a8c0 rl0, Threshold: 1, Ratelimit: 0
Debu: Network for [rl0] : 192.168.0/24
Debu: Network for [rl0] : 239.255.1/24
Debu: Network for [rl0] : 239.255.0/24
Debu: Network for [rl0] : 212.48.127/24
Debu: Network for [rl0] : 212.49.127/24
Note: adding VIF, Ix 1 Fl 0x0 IP 0xc3bdff0a rl1, Threshold: 1, Ratelimit: 0
Debu: Network for [rl1] : 10.255.189.192/27
Debu: Got 262144 byte buffer size in 0 iterations
Debu: Joining all-routers group 224.0.0.2 on vif 10.255.189.195
Note: joinMcGroup: 224.0.0.2 on rl1
Debu: SENT Membership query from 10.255.189.195 to 224.0.0.1
Debu: Sent membership query from 10.255.189.195 to 224.0.0.1. Delay: 10
Debu: Created timeout 1 (#0) - delay 10 secs
Debu: (Id:1, Time:10)
Debu: Created timeout 2 (#1) - delay 21 secs
Debu: (Id:1, Time:10)
Debu: (Id:2, Time:21)
Debu: Packet from 10.255.189.195: proto: 2 hdrlen: 20 iplen: 8 or 2048
Note: RECV Membership query from 10.255.189.195 to 224.0.0.1 (ip_hl 20, data 8)
Debu: About to call timeout 1 (#0)
Debu: Aging routes in table.
Debu:
Current routing table (Age active routes);
–---------------------------------------------------Debu: No routes in table...
Debu:
-----------------------------------------------------/johnny@rlo.org -
Как я уже постил раньше, должно быть примерно так:
должно быть примерно так:
Debu: Packet from 192.168.7.185: proto: 2 hdrlen: 20 iplen: 8 or 2048
Note: RECV V2 member report from 192.168.7.185 to 224.0.0.22 (ip_hl 20, data
Debu: Should insert group 239.142.1.1 (from: 192.168.7.185) to route table. Vif Ix : 0
Debu: No existing route for 239.142.1.1. Create new.
Debu: Found existing routes. Find insert location.
Debu: Inserting at beginning, before route 224.0.1.60
Info: Inserted route table entry for 239.142.1.1 on VIF #0
Debu: Joining group 239.142.1.1 upstream on IF address 2.2.2.2
Note: joinMcGroup: 239.142.1.1 on le1Не вижу у тебя при старте
Debu: Found config for rl1… -
Смущает вот эта строка
Debu: Config: IF: Config for interface dc0.
такого интерфейса нет в системе
есть rl0, rl1, ed0
rl0 > LAN
rl1 > WAN
ed0 > ADSL - не настроен -
Вот это вот выдаётся, когда разбирается igmpproxy.conf
Debu: Allowednet ptr : 2820c040 Debu: Config: Got a phyint token. Debu: Config: IF: Config for interface dc0. Debu: Config: IF: Got downstream token. Debu: Config: IF: Got ratelimit token '0'. Debu: Config: IF: Got threshold token '1'.
возможно тупой вопрос, но ты уверен, что в /tmp/igmpproxy.conf у тебя нет этого интерфейса?
-
С первой строчкой разобрался
в остальном все так же непонятно
-
с первой строчкой?
-
Копался вот что вышло
Debu: Aging Origin 192.168.0.99 Dst 239.255.255.250 PktCnt 1 -> 1
Debu: Origin 192.168.0.99 Vif bits : 0x00000000
Debu: Identified Input VIF #0 as DOWNSTREAM.
Debu: Setting TTL for UPSTREAM Vif 1 to 1
Note: Removing MFC: 192.168.0.99 -> 239.255.255.250, InpVIf: 0
Debu: Removing group 239.255.255.250. Died of old age.
Debu: Removed route entry for 239.255.255.250 from table.
Note: Route is not active. No kernel updates done.
Debu:
Current routing table (Remove route); -
На внешнем интерфейсе появилось вот это
14:13:09.750924 IP 10.255.189.193 > 239.255.0.133: igmp query v2 [max resp time 10] [gaddr 239.255.0.133]
14:13:10.750688 IP 10.255.189.193 > 239.255.0.133: igmp query v2 [max resp time 10] [gaddr 239.255.0.133]
14:13:11.749474 IP 10.255.189.193 > 239.255.0.133: igmp query v2 [max resp time 10] [gaddr 239.255.0.133] -
Вообще что я понял
1. на внутренний интерфейс пакеты приходят:
14:39:15.816624 IP 192.168.0.98 > 239.255.0.146: igmp v2 report 239.255.0.146
14:39:16.034333 IP 192.168.0.99 > 239.192.152.143: igmp v2 report 239.192.152.143
14:39:18.034329 IP 192.168.0.99 > 239.255.0.143: igmp v2 report 239.255.0.143
14:39:28.733350 IP 192.168.0.98 > 224.0.0.2: igmp leave 239.255.0.1462. Прокси их видит:
Note: New origin for route 239.192.152.143 is 192.168.0.99, flood 0
Debu: Origin 192.168.0.99 Vif bits : 0x00000000
Debu: Identified Input VIF #0 as DOWNSTREAM.
Debu: Setting TTL for UPSTREAM Vif 1 to 1
Note: Adding MFC: 192.168.0.99 -> 239.192.152.143, InpVIf: 0
Debu:
Current routing table (Activate Route);
–---------------------------------------------------Debu: #0: Dst: 239.192.152.143, Age:2, St: A, OutVifs: 0x00000000
Debu: #0: Origin: 192.168.0.99 floodIf 0 pktcnt 0
Debu:3. Но на внешнем интерфейсе ничего нет
14:37:36.341589 IP 10.255.189.193 > 224.0.0.1: igmp query v2
14:38:36.469784 IP 10.255.189.193 > 224.0.0.1: igmp query v2
14:39:36.471234 IP 10.255.189.193 > 224.0.0.1: igmp query v2
14:40:36.588887 IP 10.255.189.193 > 224.0.0.1: igmp query v2 -
А почему multicast address всегда меняется?
Замаршрутизируй тогда весь multicast range на upstream interface.
route add -net 224.0.0.0/4 10.255.189.193Здесь же видишь multicast на WAN:
14:13:09.750924 IP 10.255.189.193 > 239.255.0.133: igmp query v2 [max resp time 10] [gaddr 239.255.0.133]
14:13:10.750688 IP 10.255.189.193 > 239.255.0.133: igmp query v2 [max resp time 10] [gaddr 239.255.0.133]
14:13:11.749474 IP 10.255.189.193 > 239.255.0.133: igmp query v2 [max resp time 10] [gaddr 239.255.0.133] -
Маршрутизацию уже делал …
Адреса меняются в зависимости от канала
239.255.0.0/24
239.255.1.0/24провайдер пишет что достаточно написать
altnet 212.49.127.0/24
-
altnet сейчас вообще ни на что не влияет. Это дело присутствует в коде, но до ума его не довели. Можно не париться и вообще в конфиге не указывать.
Давай ещё раз к твоему случаю.
1. Upstream и downstream должны быть правильно присвоены.
2. Маршрутизация должна вести на upstream.
У меня это работает. Должно работать и у тебя.
Теперь что должно работать: IGMP пакеты, принятые на downstream interface, должны быть странслированы на upstream interface. -
Как то еще странно ведет себя прокси проходит наружу только 3 пакета и все.
Потом только переустановка прокси и еще 3 пакета пройдетПрокси жадный по поводу железа?
Машинка П-133
-
Нет, совсем не жадный.
Я тебе отправил новый бинарник для 1.2.2. В нём igmp шлётся строго с upstream, не обращая внимания на маршрутизацию.
Запусти его пожалуйста с -d и весь debug зашли мне обратно.
Похоже мы тут спамим с тобой, может лучше по почте продолжим? -
ок
-
После получения net dump'ов от filosoff96 и немерянного числа безуспешных попыток понять что же происходит я похоже набрёл на правду. Все IGMP пакеты, генерируемые его проигрывателем имеют IP Router Alert Option в IP-заголовке, а pf на данный момент такие пакеты тупо молча игнорирует. Вобщем они даже не доходят до демона igmpproxy.
Пока выхода два:- найти плэйер, который не вставляет это дело в IP (
Edited: например, http://www.nsplayer.org/Download-4.html) - запретить pf (но это не опция, это так - для теста)…
Вопрос задан разработчикам, посмотрим, что ответят. (Edited: в 2.0 решено http://redmine.pfsense.org/issues/show/54 )
Вот такая фикня -((((
PS: filosoff, если не жалко пришли пожалуйста дамп того, что шлёт твой хост 192.168.0.99 - очень интересно. - найти плэйер, который не вставляет это дело в IP (
-
-
В pfSense 2.0 есть галочка "разрешать IP options", т.е. pf не будет отфильтровывать эти пакеты.
Как ведёт себя igmpproxy в 2.0 я понятия не имею. -
К своему великому удивлению я обнаружил эту опцию в своём 1.2.2
Идём на downstream interface в Rules, кликаем Edit и в Advanced options есть галочка "This allows packets with ip options to pass otherwise they are blocked by default i.e. with multicast routing/proxing." Отмечаем её, сохранить, применить и всё. Работает.