TSM Posted April 3, 2008 Posted April 3, 2008 Решил запустить ТВ в сеть, но столкнулся с проблемкой. Есть 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, но как это сделать я не нашел (( Что я делаю не так? Вставить ник Quote
ugluck Posted April 3, 2008 Posted April 3, 2008 снупинг без квериера работать не станет. надо штоб убунта кверями кидалась. Вставить ник Quote
TSM Posted April 3, 2008 Author Posted April 3, 2008 Дык где ж его взять :( Поидее xorp должен выступать в роли кверера ... Но как? Вставить ник Quote
TSM Posted April 4, 2008 Author Posted April 4, 2008 Неужели никто не делал подобного? :( Вставить ник Quote
ugluck Posted April 4, 2008 Posted April 4, 2008 по уму, тебе нужен роутер _между источником мультикаста и свичом. не забудь задрать ТТЛ на VLC. заколхозить источник и роутер на одной машине - не вполне тривиальная затея, но можно попробовать например вещать строго с лупбека (повесив на него какой-нить пиличный айпишник) и роутить свой же мультикаст каким-нить софтом mrouted/xorp/quagga/pimd. Вставить ник Quote
TSM Posted April 4, 2008 Author Posted April 4, 2008 по уму, тебе нужен роутер _между источником мультикаста и свичом. не забудь задрать ТТЛ на VLC. vlc --color --ttl 12 Так? Тоесть получается что нужно две машины - одна источник траффика, другая мультикаст-роутер .... Научить бы как-нить эту посылать анонсы .. уверен что можно .... заколхозить источник и роутер на одной машине - не вполне тривиальная затея, но можно попробовать например вещать строго с лупбека (повесив на него какой-нить пиличный айпишник) и роутить свой же мультикаст каким-нить софтом mrouted/xorp/quagga/pimd. А это идея ... moruted к сожалению не нашел под пингвина .. а вот насчет quagga надо посмотреть ... . Вставить ник Quote
Alexander Posted April 4, 2008 Posted April 4, 2008 Не ясна конфигурация сети. Мультикаст-роутер нужен в том случае, если клиентский vlc находится в отличной от вещателя подсети. Я бы посмотрел следующие моменты: 1. Какая версия igmp поддерживается свичом и какая установлена в настройках линуха (через /proc). Если, допустим, на свиче поддерживается IGMP v1,2 а на линухе стоит v3, то работать не будет. Надо на линухе тоже v2 в настройках ставить 2. Посниффить igmp трафик на вещателе и клиенте. Многое может стать понятно Вставить ник Quote
ugluck Posted April 4, 2008 Posted April 4, 2008 ...2. Посниффить igmp трафик на вещателе и клиенте. Многое может стать понятно +1 Вставить ник Quote
S_ergey Posted April 4, 2008 Posted April 4, 2008 (edited) '#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 и читайте параметры для вещания. Edited April 4, 2008 by S_ergey Вставить ник Quote
TSM Posted April 4, 2008 Author Posted April 4, 2008 '#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 - он-то какраз вещает. Разбираюсь с маршрутизаторами :) Вставить ник Quote
TSM Posted April 4, 2008 Author Posted April 4, 2008 (edited) Не ясна конфигурация сети. Мультикаст-роутер нужен в том случае, если клиентский 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, другие сегменты пока не интересуют. Edited April 4, 2008 by TSM Вставить ник Quote
TSM Posted April 4, 2008 Author Posted April 4, 2008 Черт ( Ничего не могу найти в xorp ... Поидее ведь линукс должен же рассылать IGMP когда шлет мультикаст?? Вставить ник Quote
ugluck Posted April 6, 2008 Posted April 6, 2008 сам линух ниче не должен. пингвин - пица гордая, пока не пнешь - не полетит :) покопай в сторону pimd Вставить ник Quote
TSM Posted April 8, 2008 Author Posted April 8, 2008 Народ ... Спасайте ... не могу понять что сделать с pimd чтобы он говорил что у него есть мультикаст группа .. Как заставить сервер репортить группу? Bootsprap это не оно? Вставить ник Quote
TSM Posted April 8, 2008 Author Posted April 8, 2008 (edited) RP поднял? RP?? rendezvous point ? Тоесть маршрутизатор? PIMD поставил, но ничего не изменилось, по прежнему мультикаст прет на порт, на свитче появляются анонсы нескольких управляющих 224.x.x.x а моей нет (( ... Есть у кого-нить примеры pimd конфига? Мне бы хотябы один раз посмотреть что да как, дальше уже нагуглю ;) Edited April 8, 2008 by TSM Вставить ник Quote
ugluck Posted April 8, 2008 Posted April 8, 2008 (edited) читаем: pimd - демон для маршрутизации по протоколу PIM-SM. если SM, то надо RP, можно на той же тачке. "пример" конфига находицца в /etc/pimd.conf. еще читаем man pimd, особенно часть see also. Edited April 8, 2008 by ugluck Вставить ник Quote
TSM Posted April 8, 2008 Author Posted April 8, 2008 Однозначно не понимаю ничего .... 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? Задача тривиальная - разлить мультикаст, только вот что-то решение никак не прийдет (( Вставить ник Quote
Alexander Posted April 9, 2008 Posted April 9, 2008 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 - не нужны они тебе в этом случае Вставить ник Quote
Huron Posted July 14, 2009 Posted July 14, 2009 Была аналогичная проблема. Решил ее при помощи smcroute Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.