IPtv multicast
-
Хорошо попробуем.
До этого так же было, единственное что igmpproxy устанавливал через порты при помощи pkg_add -r -
должно быть примерно так:
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 8)
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: SENT V2 member report from INADDR_ANY to 239.142.1.1
Debu:
Current routing table (Insert Route);
–---------------------------------------------------Debu: #0: Dst: 239.142.1.1, Age:2, St: I, OutVifs: 0x00000001
Debu: #1: Dst: 224.0.1.60, Age:2, St: I, OutVifs: 0x00000001
Debu: #2: Dst: 224.0.1.127, Age:2, St: I, OutVifs: 0x00000001
Debu: #3: Dst: 239.255.255.250, Age:2, St: I, OutVifs: 0x00000001
Debu: #4: Dst: 224.0.0.251, Age:2, St: I, OutVifs: 0x00000001
Debu: #5: Dst: 239.255.255.253, Age:2, St: I, OutVifs: 0x00000001
Debu:И каждый IGMP пакет принимаемый на DOWNSTREAM interface будет транслирован на UPSTREAM.
Проверь кстати таблицу маршрутизации, мультикаст трафик должен быть замаршрутизирован на UPSTREAM -
Установил 1.2.2 Developers
вот логи
Aug 20 17:52:38 php: /pkg_edit.php: Started Igmpproxy service sucsesfully.
Aug 20 17:52:38 igmpproxy: Note: RECV Membership query from 192.168.0.1 to 224.0.0.1 (ip_hl 20, data 8)
Aug 20 17:52:57 igmpproxy: Warn: select() failure; Errno(4): Interrupted system call
Aug 20 17:52:57 igmpproxy: Note: Got a interupt signal. Exiting.
Aug 20 17:52:57 igmpproxy: Note: All routes removed. Routing table is empty.
Aug 20 17:52:59 igmpproxy: Note: adding VIF, Ix 0 Fl 0x0 IP 0x0100a8c0 rl0, Threshold: 1, Ratelimit: 0
Aug 20 17:52:59 igmpproxy: Note: adding VIF, Ix 1 Fl 0x0 IP 0xc3bdff0a rl1, Threshold: 1, Ratelimit: 0
Aug 20 17:52:59 igmpproxy: Note: joinMcGroup: 224.0.0.2 on rl0
Aug 20 17:52:59 igmpproxy: Note: RECV Membership query from 192.168.0.1 to 224.0.0.1 (ip_hl 20, data 8)
Aug 20 17:53:12 igmpproxy: Note: RECV Membership query from 10.255.189.193 to 224.0.0.1 (ip_hl 20, data 8)
Aug 20 17:53:30 igmpproxy: Note: RECV Membership query from 192.168.0.1 to 224.0.0.1 (ip_hl 20, data 8)
Aug 20 17:53:53 igmpproxy: Warn: select() failure; Errno(4): Interrupted system call
Aug 20 17:53:53 igmpproxy: Note: Got a interupt signal. Exiting.
Aug 20 17:53:53 igmpproxy: Note: All routes removed. Routing table is empty.
Aug 20 17:54:01 igmpproxy: Note: adding VIF, Ix 0 Fl 0x0 IP 0x0100a8c0 rl0, Threshold: 1, Ratelimit: 0
Aug 20 17:54:01 igmpproxy: Note: adding VIF, Ix 1 Fl 0x0 IP 0xc3bdff0a rl1, Threshold: 1, Ratelimit: 0
Aug 20 17:54:01 igmpproxy: Note: joinMcGroup: 224.0.0.2 on rl0
Aug 20 17:54:01 igmpproxy: Note: RECV Membership query from 192.168.0.1 to 224.0.0.1 (ip_hl 20, data 8)
Aug 20 17:54:12 igmpproxy: Note: RECV Membership query from 10.255.189.193 to 224.0.0.1 (ip_hl 20, data 8)
Aug 20 17:54:32 igmpproxy: Note: RECV Membership query from 192.168.0.1 to 224.0.0.1 (ip_hl 20, data 8) -
пакеты IGMP на внешнем и внутреннем интерфейсах есть
-
igmpproxy.conf
##–----------------------------------------------------
Enable Quickleave mode (Sends Leave instantly)
##------------------------------------------------------
quickleave
phyint rl1 upstream ratelimit 0 threshold 1
altnet 212.49.127.0/24phyint rl0 downstream ratelimit 0 threshold 1
altnet 192.168.0.0/24 -
Ну вот и отлично! в чём теперь проблема?
По идее то устройство, что генерит multicast (на upstream интерфейсе) должно увидеть IGMP и понять, что на данном сегменте сети есть желающие получть этот трафик. После того, как данное устройство осознало столь значительный факт, ты должен незамедлительно получать multicast на upstream интерфейсе, который уже ядром будет доставлен на downstream интерфейс. -
Кстати, всем интересующимся. Можете uninstall/install igmpproxy package и попробовать. Патч наконец-то стал доступен.
-
Я невнимательно посмотрел на внешнем интерфейсе есть IGMP но он от удаленного устройства а не от моего шлюза
IGMP запросы ходят только по внутреннему интерфейсуPS версию igmpproxy обновил через пакеты
-
Это внутри
18:56:04.464254 IP 192.168.0.97 > 224.0.0.252: igmp v2 report 224.0.0.252
18:56:04.464674 IP 192.168.0.97 > 239.255.0.147: igmp v2 report 239.255.0.147
18:58:07.967229 IP 192.168.0.1 > 224.0.0.1: igmp query v2Это снаружи
19:02:56.110616 IP 10.255.189.193 > 224.0.0.1: igmp query v2
19:03:56.363288 IP 10.255.189.193 > 224.0.0.1: igmp query v2
19:04:57.298533 IP 10.255.189.193 > 224.0.0.1: igmp query v2 -
Не уверен, что это корректно, на сколько я помню моя тестовая программулина (какой-то плэйер) слал membership report на 224.0.0.2, а внутри уже был адрес типа 239.255.0.147. Я гляну в RFC, как должно быть.
@filosoff96:18:56:04.464674 IP 192.168.0.97 > 239.255.0.147: igmp v2 report 239.255.0.147
Что у тебя с маршрутизацией покажи пожалуйста
netstat -rn -
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.255.189.193 UGS 0 202232 rl1
10.255.189.192/27 link#2 UC 0 0 rl1
10.255.189.193 00:0c:31:65:7d:00 UHLW 2 105 rl1 1074
10.255.189.195 127.0.0.1 UGHS 0 0 lo0
127.0.0.1 127.0.0.1 UH 1 0 lo0
192.168.0.0/24 link#1 UC 0 0 rl0
192.168.0.97 00:11:d8:d7:72:18 UHLW 1 49921 rl0 1007 -
Попробуй добавить следующее
route add host 239.255.0.147 10.255.189.193 -
##–----------------------------------------------------
Enable Quickleave mode (Sends Leave instantly)
##------------------------------------------------------
quickleave
phyint rl1 upstream ratelimit 0 threshold 1
altnet 212.49.127.0/24phyint rl0 downstream ratelimit 0 threshold 1
altnet 192.168.0.0/24Это конфиг
-
Попробуй добавить следующее
route add host 239.255.0.147 10.255.189.193route: bad address: host
-
Пардон
route add -host 239.255.0.147 10.255.189.193 -
нет тишина на внешнем …
-
так не бывает -)
netstat -rn опять пожалуйста и что говорит igmpproxy если запустить с debug? -
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.255.189.193 UGS 0 242955 rl1
10.255.189.192/27 link#2 UC 0 0 rl1
10.255.189.193 00:0c:31:65:7d:00 UHLW 3 190 rl1 39
10.255.189.195 127.0.0.1 UGHS 0 0 lo0
127.0.0.1 127.0.0.1 UH 1 0 lo0
192.168.0.0/24 link#1 UC 0 0 rl0
192.168.0.97 00:11:d8:d7:72:18 UHLW 1 122870 rl0 1198
239.255.0.147 10.255.189.193 UGHS 0 0 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 3 (#0) - delay 10 secs
Debu: (Id:3, Time:10)
Debu: Created timeout 4 (#1) - delay 21 secs
Debu: (Id:3, Time:10)
Debu: (Id:4, 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 3 (#0)
Debu: Aging routes in table.
Debu:
Current routing table (Age active routes);
–---------------------------------------------------Debu: No routes in table...
Debu: -
Фикня какая-то, а где 239.255.0.147 в debug логе?