Организация multicast-вещания
Модераторы: SLEDopit, Модераторы разделов
-
IMB
- Сообщения: 2567
- ОС: Debian
Организация multicast-вещания
Доброго дня!
Есть IP-камера которая способна отдавать видео по multicast. При старте демонов, используется Live555, я вижу, что для просмотра видео-потока мне доступно два адреса - rtsp://192.168.255.2/H264 и 232.1.147.66.
С первым адресов вопросов нет, по нему видео просматривается, теперь необходимо просмотреть видео через multicast-поток, но при запуске vlc -vvv udp:@232.1.147.66 я получаю только сообщение о невозможности подсоединиться к потоку.
Тестовая сеть следующая - PC <---> Switch (D-Link DGS-1008P) <---> камера.
Собственно вопрос - как должна быть организована сеть и какие функции должно поддерживать оборудование для организации в сети multicast-вещания? Так как сейчас я не могу точно диагностировать проблему - то ли сервер на камере работает не корректно, то ли сеть организована не правильно.
Спасибо.
Есть IP-камера которая способна отдавать видео по multicast. При старте демонов, используется Live555, я вижу, что для просмотра видео-потока мне доступно два адреса - rtsp://192.168.255.2/H264 и 232.1.147.66.
С первым адресов вопросов нет, по нему видео просматривается, теперь необходимо просмотреть видео через multicast-поток, но при запуске vlc -vvv udp:@232.1.147.66 я получаю только сообщение о невозможности подсоединиться к потоку.
Тестовая сеть следующая - PC <---> Switch (D-Link DGS-1008P) <---> камера.
Собственно вопрос - как должна быть организована сеть и какие функции должно поддерживать оборудование для организации в сети multicast-вещания? Так как сейчас я не могу точно диагностировать проблему - то ли сервер на камере работает не корректно, то ли сеть организована не правильно.
Спасибо.
-
IMB
- Сообщения: 2567
- ОС: Debian
Re: Организация multicast-вещания
Наблюдаю некий прогресс. После добавления роутинга vlc не ругается на невозможность подсоединиться к потоку, но и ничего не отображает.
В тоже в wireshark я вижу UDP-пакеты от камеры на multicat-адрес.
В тоже в wireshark я вижу UDP-пакеты от камеры на multicat-адрес.
-
DaemonTux
- Сообщения: 1480
- Статус: Юный падаван
- ОС: Gentoo
Re: Организация multicast-вещания
А порты у мультикаст потока какие? По умолчанию vlc полагает что используется порт 1234. Если вещание идет на другой порт то укажите его udp:@232.1.147.66:5000
Vladivostok Linux User Group
-
IMB
- Сообщения: 2567
- ОС: Debian
Re: Организация multicast-вещания
Порт действительно оказался иной, но его указание ничего не изменило.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Организация multicast-вещания
просто предположение:
может быть, имеет смысл понизить версию igmp (force_igmp_version) на соответствующем интерфейсе?
http://www.advenage.com/topics/change-IGMP...ebian-linux.php
0 — максимально доступная (т.е., скорее всего, третья)·
2 — использовать конкретно вторую версию igmp·
может быть, имеет смысл понизить версию igmp (force_igmp_version) на соответствующем интерфейсе?
http://www.advenage.com/topics/change-IGMP...ebian-linux.php
0 — максимально доступная (т.е., скорее всего, третья)·
2 — использовать конкретно вторую версию igmp·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
IMB
- Сообщения: 2567
- ОС: Debian
Re: Организация multicast-вещания
Увы не помогло.
В отладочном логе vlc:
Код: Выделить всё
$ sudo tcpdump -n -i eth1 src host 192.168.255.1 and igmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 65535 bytes
15:11:09.998533 IP 192.168.255.1 > 224.0.0.22: igmp v3 report, 1 group record(s)
15:11:17.420221 IP 192.168.255.1 > 224.0.0.22: igmp v3 report, 1 group record(s)
15:11:23.994518 IP 192.168.255.1 > 224.0.0.22: igmp v3 report, 1 group record(s)
15:11:31.606493 IP 192.168.255.1 > 224.0.0.22: igmp v3 report, 1 group record(s)
//попробовал перейти на IGMPv2
15:12:07.755519 IP 192.168.255.1 > 224.1.4.6: igmp v2 report 224.1.4.6
15:12:10.022492 IP 192.168.255.1 > 224.1.4.6: igmp v2 report 224.1.4.6
15:12:16.706492 IP 192.168.255.1 > 224.1.4.6: igmp v2 report 224.1.4.6
15:12:23.280102 IP 192.168.255.1 > 224.0.0.2: igmp leave 224.1.4.6
15:14:25.074539 IP 192.168.255.1 > 224.1.4.6: igmp v2 report 224.1.4.6
15:14:35.035757 IP 192.168.255.1 > 224.1.4.6: igmp v2 report 224.1.4.6
15:14:44.206491 IP 192.168.255.1 > 224.1.4.6: igmp v2 report 224.1.4.6
15:14:57.967047 IP 192.168.255.1 > 224.0.0.2: igmp leave 224.1.4.6В отладочном логе vlc:
Код: Выделить всё
[0xb6f00d94] main input debug: `udp://@224.1.4.6:6016' successfully opened
[0x9922254] ps demux warning: garbage at input, trying to resync...-
DaemonTux
- Сообщения: 1480
- Статус: Юный падаван
- ОС: Gentoo
Re: Организация multicast-вещания
Покажите вывод sudo tcpdump -n -i eth1 src host 192.168.255.2 при попытке подключиться серез vlc
а также
sudo iptable-save
sudo ip r
sudo ip a
а также
sudo iptable-save
sudo ip r
sudo ip a
Vladivostok Linux User Group
-
IMB
- Сообщения: 2567
- ОС: Debian
Re: Организация multicast-вещания
Код: Выделить всё
# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destinationКод: Выделить всё
$ ip r
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.42
192.168.255.0/24 dev eth1 proto kernel scope link src 192.168.255.1
224.0.0.0/4 dev eth1 scope link
default via 192.168.10.1 dev eth0Код: Выделить всё
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:21:91:0c:74:e6 brd ff:ff:ff:ff:ff:ff
inet 192.168.255.1/24 brd 192.168.255.255 scope global eth1
inet6 fe80::221:91ff:fe0c:74e6/64 scope link
valid_lft forever preferred_lft forever
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0f:ea:ce:b1:28 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.42/24 brd 192.168.10.255 scope global eth0
inet6 fe80::20f:eaff:fece:b128/64 scope link
valid_lft forever preferred_lft foreverКод: Выделить всё
$ ip nei
192.168.10.242 dev eth0 lladdr 00:30:48:d6:00:8c DELAY
192.168.255.2 dev eth1 lladdr 00:01:c0:a8:ff:02 DELAY
224.1.4.6 dev eth1 lladdr 01:00:5e:01:04:06 PERMANENT //добавлял сам
192.168.10.1 dev eth0 lladdr 00:05:5d:6c:fb:1d STALEКод: Выделить всё
$ sudo tcpdump -n -i eth1 src host 192.168.255.2
.............................
16:47:28.705795 IP 192.168.255.2.6016 > 224.1.4.6.6016: UDP, length 1448
16:47:28.707009 IP 192.168.255.2.6016 > 224.1.4.6.6016: UDP, length 1448
16:47:28.708217 IP 192.168.255.2.6016 > 224.1.4.6.6016: UDP, length 1448
16:47:28.709428 IP 192.168.255.2.6016 > 224.1.4.6.6016: UDP, length 1448
16:47:28.710643 IP 192.168.255.2.6016 > 224.1.4.6.6016: UDP, length 1448
16:47:28.711587 IP 192.168.255.2.6016 > 224.1.4.6.6016: UDP, length 1123
.....................................Код: Выделить всё
//фаловая система камеры находится на моей машине и берётся по NFS
$ sudo tcpdump -n -i eth1 src host 192.168.255.1
16:49:19.566488 ARP, Request who-has 192.168.255.2 tell 192.168.255.1, length 28
16:49:23.731520 IP 192.168.255.1 > 224.1.4.6: igmp v2 report 224.1.4.6
16:49:24.339493 IP 192.168.255.1 > 224.1.4.6: igmp v2 report 224.1.4.6
16:49:25.567956 IP 192.168.255.1.2049 > 192.168.255.2.1802981612: reply ok 96
16:49:25.569359 IP 192.168.255.1.2049 > 192.168.255.2.1819758828: reply ok 96
16:49:25.578924 IP 192.168.255.1.2049 > 192.168.255.2.1836536044: reply ok 96
16:49:25.582393 IP 192.168.255.1.2049 > 192.168.255.2.1853313260: reply ok 96
16:49:25.586309 IP 192.168.255.1.2049 > 192.168.255.2.1870090476: reply ok 96
16:49:25.606171 IP 192.168.255.1.2049 > 192.168.255.2.1886867692: reply ok 96
....................................
16:49:26.205328 IP 192.168.255.1.2049 > 192.168.255.2.2675396844: reply ok 96
16:49:28.554494 IP 192.168.255.1 > 224.1.4.6: igmp v2 report 224.1.4.6
16:49:30.565578 ARP, Reply 192.168.255.1 is-at 00:21:91:0c:74:e6, length 28
16:49:33.168511 IP 192.168.255.1 > 224.0.0.2: igmp leave 224.1.4.6
16:49:36.571985 IP 192.168.255.1.2049 > 192.168.255.2.2692174060: reply ok 96
16:49:36.573272 IP 192.168.255.1.2049 > 192.168.255.2.2708951276: reply ok 96Код: Выделить всё
$ sudo tcpdump -n -i eth1 src host 192.168.255.1 and igmp
16:51:04.726527 IP 192.168.255.1 > 224.1.4.6: igmp v2 report 224.1.4.6
16:51:07.246491 IP 192.168.255.1 > 224.1.4.6: igmp v2 report 224.1.4.6
16:51:10.766494 IP 192.168.255.1 > 224.1.4.6: igmp v2 report 224.1.4.6
16:51:16.135153 IP 192.168.255.1 > 224.0.0.2: igmp leave 224.1.4.6Дамп пакета:
Код:
No. Time Source Destination Protocol Info
9957 25.441033 192.168.255.2 224.1.4.6 UDP Source port: 6016 Destination port: 6016
Frame 9957 (1490 bytes on wire, 1490 bytes captured)
Arrival Time: Mar 12, 2012 16:56:20.739906000
[Time delta from previous captured frame: 0.001214000 seconds]
[Time delta from previous displayed frame: 0.001214000 seconds]
[Time since reference or first frame: 25.441033000 seconds]
Frame Number: 9957
Frame Length: 1490 bytes
Capture Length: 1490 bytes
[Frame is marked: False]
[Protocols in frame: eth:ip:udp:data]
[Coloring Rule Name: UDP]
[Coloring Rule String: udp]
Ethernet II, Src: 00:01:c0:a8:ff:02 (00:01:c0:a8:ff:02), Dst: 01:00:5e:01:04:06 (01:00:5e:01:04:06)
Destination: 01:00:5e:01:04:06 (01:00:5e:01:04:06)
Address: 01:00:5e:01:04:06 (01:00:5e:01:04:06)
.... ...1 .... .... .... .... = IG bit: Group address (multicast/broadcast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source: 00:01:c0:a8:ff:02 (00:01:c0:a8:ff:02)
Address: 00:01:c0:a8:ff:02 (00:01:c0:a8:ff:02)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: IP (0x0800)
Internet Protocol, Src: 192.168.255.2 (192.168.255.2), Dst: 224.1.4.6 (224.1.4.6)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 1476
Identification: 0x0000 (0)
Flags: 0x02 (Don't Fragment)
0.. = Reserved bit: Not Set
.1. = Don't fragment: Set
..0 = More fragments: Not Set
Fragment offset: 0
Time to live: 255
Protocol: UDP (0x11)
Header checksum: 0xd275 [correct]
[Good: True]
[Bad : False]
Source: 192.168.255.2 (192.168.255.2)
Destination: 224.1.4.6 (224.1.4.6)
User Datagram Protocol, Src Port: 6016 (6016), Dst Port: 6016 (6016)
Source port: 6016 (6016)
Destination port: 6016 (6016)
Length: 1456
Checksum: 0xea0a [validation disabled]
[Good Checksum: False]
[Bad Checksum: False]
Data (1448 bytes)
0000 80 60 4a 64 a8 25 14 17 8a be 43 88 7c 01 a2 2e .`Jd.%....C.|...
0010 8c 34 c5 43 ee 75 75 82 fd b7 51 76 2c 4b 33 2c .4.C.uu...Qv,K3,
.....................................
0590 cb 8b 3a fa b6 67 b4 62 97 c6 3e 7f c0 cb 59 23 ..:..g.b..>...Y#
05a0 cb 5c c1 50 be 73 70 d3 .\.P.sp.
Data: 80604A64A82514178ABE43887C01A22E8C34C543EE757582...
[Length: 1448]-
DaemonTux
- Сообщения: 1480
- Статус: Юный падаван
- ОС: Gentoo
Re: Организация multicast-вещания
вообще самому назначать мультикаст адрес на интерфейсе не нужно. Программа (vlc) сама откроет сокет с мультикаст адресом
Vladivostok Linux User Group
-
IMB
- Сообщения: 2567
- ОС: Debian
Re: Организация multicast-вещания
Вы о внесённой в ARP-таблицу записи? Небольшая перестраховка, которая ни к чему не привелаю
-
DaemonTux
- Сообщения: 1480
- Статус: Юный падаван
- ОС: Gentoo
Re: Организация multicast-вещания
IMB писал(а): ↑12.03.2012 16:54Код: Выделить всё
$ sudo tcpdump -n -i eth1 src host 192.168.255.2 ............................. 16:47:28.705795 IP 192.168.255.2.6016 > 224.1.4.6.6016: UDP, length 1448 16:47:28.707009 IP 192.168.255.2.6016 > 224.1.4.6.6016: UDP, length 1448 16:47:28.708217 IP 192.168.255.2.6016 > 224.1.4.6.6016: UDP, length 1448 16:47:28.709428 IP 192.168.255.2.6016 > 224.1.4.6.6016: UDP, length 1448 16:47:28.710643 IP 192.168.255.2.6016 > 224.1.4.6.6016: UDP, length 1448 16:47:28.711587 IP 192.168.255.2.6016 > 224.1.4.6.6016: UDP, length 1123 .....................................
Ну и собственно мультикаст летит
Vladivostok Linux User Group
-
IMB
- Сообщения: 2567
- ОС: Debian
Re: Организация multicast-вещания
Так собственно это с камеры, там трудится сервер live555.
-
DaemonTux
- Сообщения: 1480
- Статус: Юный падаван
- ОС: Gentoo
Re: Организация multicast-вещания
Ну а вам же это и нужно. Осталось получить его через vlc. Или я чего то не понимаю?
Vladivostok Linux User Group
-
IMB
- Сообщения: 2567
- ОС: Debian
Re: Организация multicast-вещания
В точку, и затык возникает именно здесь - VLC не отображает поток. В результате я имею две неизвесных - корректность работы сервера и корректность сети.
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: Организация multicast-вещания
Корректность сети прояверяется tcpdumpом -- этот UDP поток должен долетать до хоста.
Если не долетает, то наиболее вероятно:
- кривые sysctlи
- правила в iptables
-
IMB
- Сообщения: 2567
- ОС: Debian
Re: Организация multicast-вещания
Можете подсказать на какие sysctl обратить внимание?
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Организация multicast-вещания
IMB
в частности, rp_filter должен быть равен 0 для нужного интерфейса·
просмотреть текущее состояние можно так:
$ tail /proc/sys/net/ipv4/conf/*/rp_filter
в частности, rp_filter должен быть равен 0 для нужного интерфейса·
просмотреть текущее состояние можно так:
$ tail /proc/sys/net/ipv4/conf/*/rp_filter
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
IMB
- Сообщения: 2567
- ОС: Debian
Re: Организация multicast-вещания
Код: Выделить всё
$ tail /proc/sys/net/ipv4/conf/*/rp_filter
==> /proc/sys/net/ipv4/conf/all/rp_filter <==
0
==> /proc/sys/net/ipv4/conf/default/rp_filter <==
0
==> /proc/sys/net/ipv4/conf/eth0/rp_filter <==
0
==> /proc/sys/net/ipv4/conf/eth1/rp_filter <==
0
==> /proc/sys/net/ipv4/conf/lo/rp_filter <==
0