Перейти к содержимому
Калькуляторы

Linux + VLC

Решил запустить ТВ в сеть, но столкнулся с проблемкой.

 

Есть Ubuntu server, на нем тарелка, VLC

 

строка запуска:

vlc --color --ttl 12 --ts-es-id-pid --programs="400,410,59,300,30,32,3,4" dvb: --dvb-frequency=12303000 --dvb-srate=27500000 --dvb-voltage=18 --dvb-lnb-lof1=10750000 --dvb-lnb-lof2=10750000 --dvb-lnb-slof=11700000 --sout-standard-access=udp --sout-standard-mux=ts --sout \

'#duplicate{ dst="rtp{access=udp,mux=ts,sap,dst=239.255.2.1}",name="A-One 1-st alternative TV", select="program=400",\

}'

 

Судя по tcpdump:

07:04:55.922303 IP 192.168.1.3.33086 > 239.255.2.1.1234: UDP, length 1328

07:04:55.924904 IP 192.168.1.3.33086 > 239.255.2.1.1234: UDP, length 1328

07:04:55.927502 IP 192.168.1.3.33086 > 239.255.2.1.1234: UDP, length 1328

 

Пакеты в сеть летят.

 

Запускаю VLC, открывая udp://239.255.2.1 ничего не получаю, судя по свитчу, ничего не передается на порт получателя ( часто мигает только сервер )

 

Свитч - rubytech ES-2310C, IGMP Snooping включен, судя по табличке статуса:

 

IP / Member port

239.255.255.250 1,2

224.0.0.252 1,2

 

порт 1 - сервер, порт 2 - клиент

 

Свитч не знает о 239.255.2.1, а VLC не начнет прием пока не получит report о 239.255.2.1.

 

Вопрос - как дать свитчу знать о группе? Вещающий VLC разве не должен репортить о ней? Я предположил что не должен, поставил xorp, появилось следующее:

IP / Member port

224.0.0.251 1

224.0.0.2 1

224.0.0.22 1

224.0.0.13 1

 

т.е. по видимому IGMP работает. Дальше подумалось что надо как-то настроить static group для xorp, но как это сделать я не нашел ((

 

Что я делаю не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

снупинг без квериера работать не станет. надо штоб убунта кверями кидалась.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дык где ж его взять :( Поидее xorp должен выступать в роли кверера ... Но как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Неужели никто не делал подобного? :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

по уму, тебе нужен роутер _между источником мультикаста и свичом. не забудь задрать ТТЛ на VLC. заколхозить источник и роутер на одной машине - не вполне тривиальная затея, но можно попробовать например вещать строго с лупбека (повесив на него какой-нить пиличный айпишник) и роутить свой же мультикаст каким-нить софтом mrouted/xorp/quagga/pimd.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

по уму, тебе нужен роутер _между источником мультикаста и свичом. не забудь задрать ТТЛ на VLC.
vlc --color --ttl 12

Так?

Тоесть получается что нужно две машины - одна источник траффика, другая мультикаст-роутер ....

Научить бы как-нить эту посылать анонсы .. уверен что можно ....

 

заколхозить источник и роутер на одной машине - не вполне тривиальная затея, но можно попробовать например вещать строго с лупбека (повесив на него какой-нить пиличный айпишник) и роутить свой же мультикаст каким-нить софтом mrouted/xorp/quagga/pimd.

А это идея ... moruted к сожалению не нашел под пингвина .. а вот насчет quagga надо посмотреть ... .

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не ясна конфигурация сети. Мультикаст-роутер нужен в том случае, если клиентский vlc находится в отличной от вещателя подсети.

Я бы посмотрел следующие моменты:

1. Какая версия igmp поддерживается свичом и какая установлена в настройках линуха (через /proc). Если, допустим, на свиче поддерживается IGMP v1,2 а на линухе стоит v3, то работать не будет. Надо на линухе тоже v2 в настройках ставить

2. Посниффить igmp трафик на вещателе и клиенте. Многое может стать понятно

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

...

2. Посниффить igmp трафик на вещателе и клиенте. Многое может стать понятно

+1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

'#duplicate{ dst="rtp{access=udp,mux=ts,sap,dst=239.255.2.1}",name="A-One 1-st alternative TV", select="program=400
здесь явно неправильно заданны параметры и синтаксис.

#duplicate{dst=std{access=udp,mux=ts,dst=239.255.2.1:1234}}

 

запускайте vlc -H и читайте параметры для вещания.

Изменено пользователем S_ergey

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

'#duplicate{ dst="rtp{access=udp,mux=ts,sap,dst=239.255.2.1}",name="A-One 1-st alternative TV", select="program=400
здесь явно неправильно заданны параметры и синтаксис.

#duplicate{dst=std{access=udp,mux=ts,dst=239.255.2.1:1234}}

 

запускайте vlc -H и читайте параметры для вещания.

 

Как ни странно это работает, мало того access=udp у меня тоже такой вариант есть и точно такая же проблема. Дело не в vlc - он-то какраз вещает. Разбираюсь с маршрутизаторами :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не ясна конфигурация сети. Мультикаст-роутер нужен в том случае, если клиентский vlc находится в отличной от вещателя подсети.

Я бы посмотрел следующие моменты:

1. Какая версия igmp поддерживается свичом и какая установлена в настройках линуха (через /proc). Если, допустим, на свиче поддерживается IGMP v1,2 а на линухе стоит v3, то работать не будет. Надо на линухе тоже v2 в настройках ставить

2. Посниффить igmp трафик на вещателе и клиенте. Многое может стать понятно

1. cat /proc/sys/net/igmp

 

Idx Device : Count Querier Group Users Timer Reporter

1 lo : 0 V3

010000E0 1 0:00000000 0

2 eth0 : 3 V2

010000E0 1 0:00000000 0

 

Я так понимаю v2

 

2)

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

IP 192.168.1.246 > 224.0.0.1: igmp query v2 Вот это свитч

IP 192.168.1.70 > 224.0.0.252: igmp v2 report 224.0.0.252

IP 192.168.1.182 > 224.0.0.2: igmp v2 report 224.0.0.2

IP 192.168.1.126 > 239.255.255.250: igmp v2 report 239.255.255.250

IP 192.168.1.17 > 239.255.255.250: igmp v2 report 239.255.255.250

IP 192.168.1.36 > 239.255.255.250: igmp v2 report 239.255.255.250

IP 192.168.1.43 > 224.0.0.251: igmp v2 report 224.0.0.251

IP 192.168.1.82 > 239.255.255.250: igmp v2 report 239.255.255.250

IP 192.168.1.49 > 239.255.255.250: igmp v2 report 239.255.255.250

IP 192.168.1.182 > 224.0.0.2: igmp v2 report 224.0.0.2

IP 192.168.1.28 > 239.255.255.250: igmp v2 report 239.255.255.250

IP 192.168.1.189 > 239.255.255.250: igmp v2 report 239.255.255.250

 

192.168.1.3 (эта машина) - молчит

 

Конфигурация сети считай что плоская 192.168.1.0/24, другие сегменты пока не интересуют.

Изменено пользователем TSM

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Черт ( Ничего не могу найти в xorp ... Поидее ведь линукс должен же рассылать IGMP когда шлет мультикаст??

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

сам линух ниче не должен. пингвин - пица гордая, пока не пнешь - не полетит :) покопай в сторону pimd

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Народ ... Спасайте ... не могу понять что сделать с pimd чтобы он говорил что у него есть мультикаст группа .. Как заставить сервер репортить группу? Bootsprap это не оно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

RP поднял?

RP?? rendezvous point ? Тоесть маршрутизатор? PIMD поставил, но ничего не изменилось, по прежнему мультикаст прет на порт, на свитче появляются анонсы нескольких управляющих 224.x.x.x а моей нет (( ... Есть у кого-нить примеры pimd конфига?

 

Мне бы хотябы один раз посмотреть что да как, дальше уже нагуглю ;)

Изменено пользователем TSM

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

читаем: pimd - демон для маршрутизации по протоколу PIM-SM. если SM, то надо RP, можно на той же тачке. "пример" конфига находицца в /etc/pimd.conf. еще читаем man pimd, особенно часть see also.

Изменено пользователем ugluck

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Однозначно не понимаю ничего ....

 

05:39:39.464230 IP (tos 0x0, ttl 12, id 38612, offset 0, flags [DF], proto UDP (17), length 1356) 192.168.1.3.32772 > 234.0.0.100.1234: UDP, length 1328

05:39:39.464850 IP (tos 0x0, ttl 12, id 38613, offset 0, flags [DF], proto UDP (17), length 1356) 192.168.1.3.32772 > 234.0.0.100.1234: UDP, length 1328

05:39:39.465468 IP (tos 0x0, ttl 12, id 38614, offset 0, flags [DF], proto UDP (17), length 1356) 192.168.1.3.32772 > 234.0.0.100.1234: UDP, length 1328

05:39:39.466093 IP (tos 0x0, ttl 12, id 38615, offset 0, flags [DF], proto UDP (17), length 1356) 192.168.1.3.32772 > 234.0.0.100.1234: UDP, length 1328

 

05:42:17.221 Getting vifs from kernel
05:42:17.221 installing eth0 (192.168.1.3 on subnet 192.168.1) as vif #0-2 - rate=0
05:42:17.221 Getting vifs from /etc/pimd.conf
05:42:17.221 Local Cand-RP address is 192.168.1.3
05:42:17.221 Local Cand-RP priority is 1
05:42:17.221 Local Cand-RP advertisement period is 30 sec.
05:42:17.221 Local Cand-BSR address is 192.168.1.3
05:42:17.221 Local Cand-BSR priority is 50
05:42:17.221 Adding prefix 234.0.0.0/4
05:42:17.222 data_rate_limit is 50000 (bits/s)
05:42:17.222 data_rate_interval is 20 (seconds)
05:42:17.222 reg_rate_limit is 50000 (bits/s)
05:42:17.222 reg_rate_interval is 20 (seconds)
05:42:17.224 eth0 comes up; vif #0 now in service
05:42:17.230 SENT IGMP Membership Query     from 192.168.1.3     to 224.0.0.1
05:42:17.230 SENT PIM v2 Hello              from 192.168.1.3     to 224.0.0.13
05:42:17.235 register_vif0 comes up; vif #1 now in service

Virtual Interface Table
Vif  Local-Address     Subnet               Thresh   Flags          Neighbors
  0   192.168.1.3       192.168.1            1        DR NO-NBR
  1   192.168.1.3       register_vif0        1

Multicast Routing Table
Source          Group           RP-addr         Flags
--------------------------(*,*,RP)--------------------------
Number of Groups: 0
Number of Cache MIRRORs: 0

05:42:17.235 Cache miss, src 192.168.1.3, dst 234.0.0.100, iif 0
05:42:17.235 create group entry, group 234.0.0.100
05:42:18.120 create group entry, group 239.192.152.143
05:42:19.808 create group entry, group 239.255.255.250
05:42:21.041 create group entry, group 239.255.255.250

Virtual Interface Table
Vif  Local-Address     Subnet               Thresh   Flags          Neighbors
  0   192.168.1.3       192.168.1            1        DR NO-NBR
  1   192.168.1.3       register_vif0        1

Multicast Routing Table
Source          Group           RP-addr         Flags
--------------------------(*,*,RP)--------------------------
Number of Groups: 0
Number of Cache MIRRORs: 0

 

Дальше все по кругу повторяет ( с --- RP --- )

 

 

000000 IP 192.168.1.3 > 224.0.0.1: igmp query v2
004578 IP 192.168.1.3 > 224.0.0.2: igmp v2 report 224.0.0.2
000009 IP 192.168.1.3 > 224.0.0.13: igmp v2 report 224.0.0.13
789322 IP 192.168.1.74 > 239.255.255.250: igmp v2 report 239.255.255.250
2. 736313 IP 192.168.1.28 > 239.255.255.250: igmp v2 report 239.255.255.250
4. 455414 IP 192.168.1.30 > 224.0.0.251: igmp v2 report 224.0.0.251

088693 IP 192.168.1.245 > 224.0.0.1: igmp query v2
719548 IP 192.168.1.74 > 239.255.255.250: igmp v2 report 239.255.255.250
806741 IP 192.168.1.34 > 239.192.152.143: igmp v2 report 239.192.152.143

1. 649963 IP 192.168.1.246 > 224.0.0.1: igmp query v2
779260 IP 192.168.1.28 > 239.255.255.250: igmp v2 report 239.255.255.250
3. 070318 IP 192.168.1.34 > 239.192.152.143: igmp v2 report 239.192.152.143
434409 IP 192.168.1.3 > 224.0.0.2: igmp v2 report 224.0.0.2

 

Странно, pimd вроде как видит

05:42:17.235 create group entry, group 234.0.0.100

 

но ничего такого не послыает.

 

еще читаем man pimd, особенно часть see also.

SEE ALSO

/usr/share/doc/pimd - не особо там много документации

 

А здесь сервер вообще не работает

Directory with further reading.

http://netweb.usc.edu/pim/

http://netweb.usc.edu/pim/pimd/

Project web pages.

 

Какими средствами создается RP?

 

Задача тривиальная - разлить мультикаст, только вот что-то решение никак не прийдет ((

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2)

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

IP 192.168.1.246 > 224.0.0.1: igmp query v2 Вот это свитч

IP 192.168.1.70 > 224.0.0.252: igmp v2 report 224.0.0.252

IP 192.168.1.182 > 224.0.0.2: igmp v2 report 224.0.0.2

IP 192.168.1.126 > 239.255.255.250: igmp v2 report 239.255.255.250

IP 192.168.1.17 > 239.255.255.250: igmp v2 report 239.255.255.250

IP 192.168.1.36 > 239.255.255.250: igmp v2 report 239.255.255.250

IP 192.168.1.43 > 224.0.0.251: igmp v2 report 224.0.0.251

IP 192.168.1.82 > 239.255.255.250: igmp v2 report 239.255.255.250

IP 192.168.1.49 > 239.255.255.250: igmp v2 report 239.255.255.250

IP 192.168.1.182 > 224.0.0.2: igmp v2 report 224.0.0.2

IP 192.168.1.28 > 239.255.255.250: igmp v2 report 239.255.255.250

IP 192.168.1.189 > 239.255.255.250: igmp v2 report 239.255.255.250

 

192.168.1.3 (эта машина) - молчит

почему молчит - не могу сказать. по-прежнему мало данных. надо проверять настройки (версии ты уже проверил, разрешен ли снупинг для порта с клиентской машиной, попробуй вещать с клиентской машины - может что проклюнется в tcpdump'е, etc), запускать tcpdump на клиенте и сервере одновременно и т.д.

 

Конфигурация сети считай что плоская 192.168.1.0/24, другие сегменты пока не интересуют.
тогда не запаривайся с pimd/xorp/etc - не нужны они тебе в этом случае

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Была аналогичная проблема. Решил ее при помощи smcroute

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.