IPtv multicast
- 
 Фикня какая-то, а где 239.255.0.147 в debug логе? 
- 
 А нету … внутри есть 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.configmpproxy, 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 я понятия не имею.