Организация multicast-вещания

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

IMB
Сообщения: 2567
ОС: Debian

Организация multicast-вещания

Сообщение IMB »

Доброго дня!
Есть 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-вещания

Сообщение IMB »

Наблюдаю некий прогресс. После добавления роутинга vlc не ругается на невозможность подсоединиться к потоку, но и ничего не отображает.
В тоже в wireshark я вижу UDP-пакеты от камеры на multicat-адрес.
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: Организация multicast-вещания

Сообщение DaemonTux »

А порты у мультикаст потока какие? По умолчанию vlc полагает что используется порт 1234. Если вещание идет на другой порт то укажите его udp:@232.1.147.66:5000
Vladivostok Linux User Group
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Организация multicast-вещания

Сообщение IMB »

Порт действительно оказался иной, но его указание ничего не изменило.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Организация multicast-вещания

Сообщение sash-kan »

просто предположение:
может быть, имеет смысл понизить версию igmp (force_igmp_version) на соответствующем интерфейсе?
http://www.advenage.com/topics/change-IGMP...ebian-linux.php
0 — максимально доступная (т.е., скорее всего, третья)·
2 — использовать конкретно вторую версию igmp·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Организация multicast-вещания

Сообщение IMB »

Увы не помогло.

Код: Выделить всё

$ 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-вещания

Сообщение DaemonTux »

Покажите вывод sudo tcpdump -n -i eth1 src host 192.168.255.2 при попытке подключиться серез vlc
а также
sudo iptable-save
sudo ip r
sudo ip a
Vladivostok Linux User Group
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Организация multicast-вещания

Сообщение IMB »

Код: Выделить всё

# 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-вещания

Сообщение DaemonTux »

вообще самому назначать мультикаст адрес на интерфейсе не нужно. Программа (vlc) сама откроет сокет с мультикаст адресом
Vladivostok Linux User Group
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Организация multicast-вещания

Сообщение IMB »

Вы о внесённой в ARP-таблицу записи? Небольшая перестраховка, которая ни к чему не привелаю
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: Организация multicast-вещания

Сообщение DaemonTux »

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-вещания

Сообщение IMB »

Так собственно это с камеры, там трудится сервер live555.
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: Организация multicast-вещания

Сообщение DaemonTux »

IMB писал(а):
12.03.2012 17:49
Так собственно это с камеры, там трудится сервер live555.

Ну а вам же это и нужно. Осталось получить его через vlc. Или я чего то не понимаю?
Vladivostok Linux User Group
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Организация multicast-вещания

Сообщение IMB »

В точку, и затык возникает именно здесь - VLC не отображает поток. В результате я имею две неизвесных - корректность работы сервера и корректность сети.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Организация multicast-вещания

Сообщение KiWi »

IMB писал(а):
12.03.2012 19:45
В точку, и затык возникает именно здесь - VLC не отображает поток. В результате я имею две неизвесных - корректность работы сервера и корректность сети.

Корректность сети прояверяется tcpdumpом -- этот UDP поток должен долетать до хоста.
Если не долетает, то наиболее вероятно:
- кривые sysctlи
- правила в iptables
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Организация multicast-вещания

Сообщение IMB »

Можете подсказать на какие sysctl обратить внимание?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Организация multicast-вещания

Сообщение sash-kan »

IMB
в частности, rp_filter должен быть равен 0 для нужного интерфейса·
просмотреть текущее состояние можно так:
$ tail /proc/sys/net/ipv4/conf/*/rp_filter
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: Организация multicast-вещания

Сообщение IMB »

Код: Выделить всё

$ 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
Спасибо сказали: