• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login
Netgate Discussion Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login

IPtv multicast

Scheduled Pinned Locked Moved Russian
270 Posts 50 Posters 361.3k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S
    Shraik
    last edited by Sep 21, 2009, 2:07 AM

    @Eugene:

    Как говорится, чем могу…

    Подскажи, а появилась ли возможность заставить работать IP-TV когда он приходит по адресам с DHCP, а интернет по PPPoE
    вот в этом посте я про нашу конфигурацию сети писал.
    http://forum.pfsense.org/index.php/topic,16995.msg90526.html#msg90526
    мне надо чтобы на одной сетевой плате было одновременно и DHCP и PPPoE.
    В висте всё работает "из коробки", а в пфсенсе зачем-то перемудрили.

    1 Reply Last reply Reply Quote 0
    • E
      Eugene
      last edited by Sep 21, 2009, 2:33 AM

      1. А вообще такая конфигурация "одна сетевая плата одновременно и DHCP, и PPPoE" работает (без igmpproxy)?
      2. Если виста работает, то может на ней и смотреть IP-TV?

      http://ru.doc.pfsense.org

      1 Reply Last reply Reply Quote 0
      • S
        Shraik
        last edited by Sep 21, 2009, 5:27 AM

        @Eugene:

        1. А вообще такая конфигурация "одна сетевая плата одновременно и DHCP, и PPPoE" работает (без igmpproxy)?
        2. Если виста работает, то может на ней и смотреть IP-TV?

        версия 1.2.3 и 2.0(пару месяцев назад не могла) не могли одновременно на одном интерфейсе завести DHCP+PPPoE приходится выбирать или то или другое.
         Вот скажи мне, как разведчик разведчику, зачем при поднятии PPPoE линка идет переопределение WAN ? Ну поднялся виртуальный интерфейс, зачем родительский то перекрывать ? Когда OVPN поднимается прекрасно создаётся новый интерфейс и все счастливы.

        ну я на Висте и пытаюсь смотреть, но пфсенс не пускает  ;D
        Надеюсь мы не будем разбирать тему "откажитесь / замените на другой маршрутизатор"
        P.S.
        моновал работает http://code.google.com/p/m0n0wall-mod/
        d-link работает http://www.d-link.ru/ru/faq/68/278.html
        давайте пфсенс научим?

        1 Reply Last reply Reply Quote 0
        • E
          Eugene
          last edited by Sep 21, 2009, 12:24 PM

          Ясно.
          1. Значит вопрос не про igmpproxy. Как разведчик я давал зарок хранить тайну. А серьёзно, я не знаю, никогда не использовал такую конфигурацию.
          2. В нашем непростом мире возможно всё. Есть такая ветка http://forum.pfsense.org/index.php/board,34.0.html . Может кто и откликнется. Насколько я понимаю, тут ведь как новые возможности появляются? а) если кто-то заплатит. б) если кому-то умеющему программировать нужна эта возможность, тогда он/она делает и наслаждаются все.

          http://ru.doc.pfsense.org

          1 Reply Last reply Reply Quote 0
          • E
            Eugene
            last edited by Sep 30, 2009, 9:29 PM

            Была пара человек из тех, кому я помогал настроить IPTV c IGMP V3. Если всё ещё интересно - стучитесь, igmpproxy теперь умеет работать с V3. Сам протестировать не могу ибо мой плэйер упорно генерирует IGMP версии два.

            http://ru.doc.pfsense.org

            1 Reply Last reply Reply Quote 0
            • D
              dimokrat
              last edited by Nov 1, 2009, 4:02 PM

              Подскажите плз, что дальше..

              # tcpdump -ni rl0 igmp
              tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
              listening on rl0, link-type EN10MB (Ethernet), capture size 96 bytes
              18:56:15.251308 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250]
              18:56:17.278801 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250]
              18:56:53.042732 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250]
              18:56:56.159959 IP 10.210.1.200 > 224.0.0.1: igmp query v2
              18:57:15.323896 IP 10.210.1.200 > 234.5.2.1: igmp query v2 [max resp time 10] [gaddr 234.5.2.1]
              18:57:16.341249 IP 10.210.1.200 > 234.5.2.1: igmp query v2 [max resp time 10] [gaddr 234.5.2.1]
              18:57:17.393358 IP 10.210.1.200 > 234.5.2.1: igmp query v2 [max resp time 10] [gaddr 234.5.2.1]
              18:57:42.352780 IP 10.210.1.200 > 234.5.2.8: igmp query v2 [max resp time 10] [gaddr 234.5.2.8]
              18:57:43.308243 IP 10.210.1.200 > 234.5.2.8: igmp query v2 [max resp time 10] [gaddr 234.5.2.8]
              18:57:44.309642 IP 10.210.1.200 > 234.5.2.8: igmp query v2 [max resp time 10] [gaddr 234.5.2.8]
              18:57:56.416000 IP 10.210.1.200 > 224.0.0.1: igmp query v2
              18:57:56.899283 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250]
              18:58:47.816228 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250]
              18:58:56.578934 IP 10.210.1.200 > 224.0.0.1: igmp query v2
              18:59:47.857401 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250]
              18:59:49.964658 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250]
              18:59:57.314657 IP 10.210.1.200 > 224.0.0.1: igmp query v2
              19:00:50.324884 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250]
              19:00:51.122336 IP 10.210.1.200 > 239.255.255.250: igmp query v2 [max resp time 10] [gaddr 239.255.255.250]
              19:00:57.431385 IP 10.210.1.200 > 224.0.0.1: igmp query v2
              19:01:01.874728 IP 10.210.1.200 > 234.5.2.1: igmp query v2 [max resp time 10] [gaddr 234.5.2.1]
              19:01:02.876799 IP 10.210.1.200 > 234.5.2.1: igmp query v2 [max resp time 10] [gaddr 234.5.2.1]
              19:01:03.911375 IP 10.210.1.200 > 234.5.2.1: igmp query v2 [max resp time 10] [gaddr 234.5.2.1]
              ^C
              23 packets captured
              170582 packets received by filter
              0 packets dropped by kernel
              
              1 Reply Last reply Reply Quote 0
              • E
                Eugene
                last edited by Nov 2, 2009, 2:12 PM

                Стучись в личку. Какая версия? я тебе вышлю рабочие файлы.

                http://ru.doc.pfsense.org

                1 Reply Last reply Reply Quote 0
                • P
                  PavkaTUBY
                  last edited by Jan 3, 2010, 7:14 PM

                  Сначала опишу свою ситуацию, может быть у кого есть похожая.
                  Есть два провайдера. Первый раздаёт интернет через PPTP, а второй - раздаёт интернет через ADSL, одновременно он же является оператором предоставления услуг IPTV, тоже по технологии ADSL. Интернет и IPTV у последнего провайдера висят на разных VPI/VCI-каналах.
                  Что я сделал. Чтобы не покупать 2-WAN-овый роутер, я достал свой старый комп (PII-266/320M) и всунул туда 4 сетевухи Realtek :)

                  Скачал и установил pfSense, версия 1.2.3 (сборка LiveCD ), типа последняя из стабильных. Настойка и превращение старого компа в роутер прошла практически без проблем.
                  Шнур от первого провайдера воткнул в rl0 (это WAN), ADSL-модем воткнул в rl1 (это OPT1), а rl2 назначил в качестве LAN-интерфейса, и его соединил с рабочим компом.

                  Короче, проблема. Интернет трафик от первого и второго провайдера проходят, а IPTV от последнего - нет, в логах пишет, что заблокированы IGMP-пакеты, хотя в рулах тупо поставил Pass any any и поднял bridge между LAN и OPT1 интерфейсами, поставил галку System -> Advansed -> "Disables the PF scrubbing option which can sometimes interfere with NFS and PPTP traffic", кстати, в своей версии pfSense я не обнаружил опцию "This allows packets with ip options to pass otherwise they are blocked by default i.e. with multicast routing/proxing." (Rules -> Edit -> Advanced options) :(
                  Когда на ADSL-модеме стоит режим bridge, и между LAN и OPT1 тоже проброшен bridge, то я без проблем могу поднять виртуальное PPPoE соединение на рабочем компе, и интернет трафик от второго прова (тот который ADSL) спокойно проходит через роутер, но при прочих равных в режиме IPTV, этот канал к сожалению не фурычит :(

                  Вопросы:
                  1. Что надо сделать, чтобы pfSense пропускал IGMP-пакеты через роутер ?
                  2. Поможет ли установка pfSense, версия 2 (последней бэты, LiveCD), и прикручивание к нему демона igmpproxy? Да, и насколько нужен этот демон, если смотреть IPTV буду я один, да и то лишь через бридж на OPT1, без ретрансляции далее в локальную сетку.

                  Конфигурация рабочего компа:
                  Ось: Vista, в брандмауэре IGMP протокол разрешён  через "Брандмауэр Windows в режиме повышенной безопасности"
                  Плеер: "IP-TV Player", если воткнуть ADSL-модем непосредственно в комп, то есть без роутера, IPTV тоже прекрасно работает.

                  Заранее спасибо за ответы и с Новым Годом !  :)

                  ПС. Всё таки неплохо бы увидеть подробный HOWTO с решением проблемы IGMP в pfSense …

                  1 Reply Last reply Reply Quote 0
                  • E
                    Eugene
                    last edited by Jan 3, 2010, 11:25 PM

                    кстати, в своей версии pfSense я не обнаружил опцию "This allows packets with ip options to pass otherwise they are blocked by default i.e. with multicast routing/proxing." (Rules -> Edit -> Advanced options)

                    Эта опция появляется, когда устанавливаешь пакет igmpproxy.
                    По твоей ситуации - я не работал с bridge между двумя интерфейсами, поэтому точно не скажу. Но на сколько я понимаю "бриджей", нужно сделать следующее.
                    1. Установить пакет igmpproxy - только для того, чтобы появилось поле "allow ip options".
                    2. Остановить сервис igmpproxy (если запустился)
                    3. На OPT1 и LAN создать правила, разрешающие IGMP с "allow ip options".

                    pfSense 2.0 пробовать можно, но на свой страх и риск, ибо сырой ещё.

                    http://ru.doc.pfsense.org

                    1 Reply Last reply Reply Quote 0
                    • P
                      PavkaTUBY
                      last edited by Jan 5, 2010, 4:41 PM Jan 5, 2010, 4:25 PM

                      2 Eugene
                      Всё сделал по твоёму, igmpproxy запустился, галку поставил, потом я его снёс, а галка осталась  ;D
                      версия роутера 1.2.3
                      Кстати, опция "Disables the PF scrubbing option which can sometimes interfere with NFS and PPTP traffic" оказалась не нужна

                      Щаз смотрю IPTV, спасибо :)

                      Выкладываю сюда страничку с рабочими настройками проброса моста между OPT1 и LAN интерфейсами

                      OPT1.png
                      OPT1.png_thumb

                      1 Reply Last reply Reply Quote 0
                      • E
                        Eugene
                        last edited by Jan 5, 2010, 5:05 PM

                        Вот и славненько, будем знать, что и с бриджом работает.

                        http://ru.doc.pfsense.org

                        1 Reply Last reply Reply Quote 0
                        • E
                          Eugene
                          last edited by Apr 9, 2010, 6:07 PM Jan 6, 2010, 5:49 AM

                          Howto
                          Я свято и наивно верю, что если человек понимает, что он делает, то он делает это намного эффективнее, чем если просто тупо следует алгоритму, а посему - немного теории.
                          Смотрим схему - PC1 хочет смотреть IPTV.
                          (1) player генерирует  IGMP-report, тем самым говоря, что хочет получать multicast поток с неким multicast адресом (пусть будет 239.0.0.1), multicast поток - это поток UDP пакетов (звук + изображение). Разные multicast адреса - разные каналы. Данный IGMP-report также является multicast пакетом, потом транслируется локальным свичом на все порты (в пределах сегмента сети), т.е. его получают все устройства, подключенные к данному свичу (если свич не шибко умный).
                          (2) Но всем устройствам глубоко фиолетово на этот IGMP-report, однако, только не pfSense'у с работающим igmpproxy, который осознаёт, что у него на LAN появилось какое-то устройство, жаждущее получить multicast-поток с адресом 239.0.0.1. LAN на данной схеме в терминологии igmpproxy является Downstream интерфейсов, т.е. интерфейс, где находится получатель(и) потока. Теперь pfSense'у надо где-то взять этот поток и он формирует IGMP-report на Upstream интерфейсе (WAN), надеясь поиметь этот поток с провайдера. Заметим, что это не пакет (1) просто смаршрутизированный на WAN интерфейс, это совершенно новый пакет, сгенерированный самим pfSense'ом (хотя это сути не меняет).
                          (3) Устройство провайдера, получив, IGMP-report с интересным адресом 239.0.0.1 восклицает "ба! да здесь кто-то хочет смотреть первый канал!" и начинает лупить в вашу сторону UDP-поток с destination IP address 239.0.0.1.
                          (4) pfSense уже знает, кто хочет смотреть первый канал, ибо на шаге (2) igmpproxy ядру сказал, что этот поток желают на интерфейсе LAN и ядро FreeBSD уже без какого-либо участия igmpproxy начинает маршрутизировать этот UDP поток на LAN-интерфейс, где благодарные пользователи видят оживший экран своего Player'а.

                          Процедура установки/конфигурирования.
                          1. Установить пакет igmpproxy из System->Packages
                          2. Создать правило на LAN-интерфесе в Firewall->Rules
                          Pass Proto=IGMP Source=LANnet Destination=224.0.0.0/4 AdvancedOptions отметить "This allows packets with ip options to pass …"
                          Save/Apply
                          3. Создать правило на WAN-интерфейсе в Firewall->Rules
                          Pass Proto=UDP Destination=224.0.0.0/4
                          Save/Apply
                          4. Сконфигурировать igmpproxy в Services->IGMP proxy. Сделать LAN Downstream, а WAN Upstream.
                          5. Проверить, что igmpproxy запустился в Status->Services.

                          Всё, в 90% случаев это заработает.
                          Опционные шаги:
                          6. Сложный случай раз - провайдер вещает из какой-то сети, отличной от той, что прописана на Upstream (от 1.1.1.0/24 на моей диаграмме), например с адреса 3.4.5.42. Необходимо в конфигурации igmpproxy на Upstream интерфейсе добавить эту сеть в Networks - 3.4.5.0/24 (можно 3.4.5.42/32 для пущего страха).
                          7. Сложный случай два - у вас крутая сеть и на pfSense LAN есть маршрутизатор, который может маршрутизировать multicast пакеты и за этим маршрутизатором, скажем в сети 10.10.10.0/24, есть устройство, которое хочет смотреть первый канал. Необходимо в конфигурации igmpproxy на Downstream интерфейсе добавить эту сеть в Networks. Возможно, придётся создать правило, аналогичное пункту 2 для данной сети, хотя врядли (зависит от того, как работает этот маршрутизатор).
                          8. Сложный случай три - это одновременно имеем сложные случаи раз и два. Выполняем пункты 6 и 7.

                          PS: правила могут быть (и должны быть) жёстче, здесь приведён пример, аналогичный "разрешить всё" для обычного трафика.
                          PPS: UDP-поток IPTV - это обычно много маленьких пакетов, т.е. довольно интенсивная нагрузка на pfSense, если изображение рассыпается, посмотрите на нагрузку - тянет ли Ваше железо.
                          PPPS: наверняка что-то забыл, поправки и вопросы приветствуются.

                          Рекомендовано чтение: IGMP protocol.

                          igmpproxy.jpg
                          igmpproxy.jpg_thumb

                          http://ru.doc.pfsense.org

                          1 Reply Last reply Reply Quote 2
                          • S
                            Shraik
                            last edited by Jan 19, 2010, 4:04 AM Jan 6, 2010, 6:54 PM

                            Добавлю свои пять копеек.

                            У меня милая для России конфигурация сети
                            локальный IP по DHCP + PPPoE  всё это добро на одной сетевухе. PFsense такие конфигурации штатно не поддерживает.

                            IPTV ходит ес-но по локалке.

                            нам нужно получить локальный IP на интерфейсе WAN.
                            Делаем согласно http://forum.pfsense.org/index.php/topic,2996.msg17972.html#msg17972
                            я дописал в config.xml

                            
                            	 <system>....
                            	<shellcmd>dhclient vr0;</shellcmd></system> 
                            
                            

                            ну и есно загрузить этот конфиг  (делаем бекап, правим его ручками, делаем Restore)

                            остальное согласно предыдущего поста.
                            прописать правила для мультикаст на WAN и LAN
                            и настроить igmpproxy
                            пример моей настройки на скриншоте

                            P.S.
                            Спасибо "Eugene" за помошь  ;D
                            P.P.S.
                            Как показала практика этой настройки не хватает для полностью автоматической работы. Необходимо, чтобы в настройках igmpproxy Upstream указывал на физический интерфейс сетевой платы, а не на PPPoe.
                            Пока приходится в файле igmpproxy.conf править ручками интерфейс, например для меня, ng0 -> vr0
                            Сейчас думаю как изменить скрипт генерации конфига для igmpproxy для автоматизации этого процесса.

                            igmpproxy.jpg
                            igmpproxy.jpg_thumb

                            1 Reply Last reply Reply Quote 0
                            • T
                              TEN
                              last edited by Jun 9, 2010, 6:40 PM

                              Подскажите, откуда можно установить igmpproxy, работающую версию. Версия ж из пакетов не рабочая, я правильно понял?

                              1 Reply Last reply Reply Quote 0
                              • E
                                Eugene
                                last edited by Jun 9, 2010, 6:52 PM

                                Почему нерабочая, должна быть рабочей.

                                http://ru.doc.pfsense.org

                                1 Reply Last reply Reply Quote 0
                                • T
                                  TEN
                                  last edited by Jun 9, 2010, 7:16 PM Jun 9, 2010, 7:08 PM

                                  Пару страниц назад было о том, что версия 0.1 бета не дает нужного эффекта, а в пакетах именно эта версия.
                                  Хотя может причина неудачи в моих настройках, несмотря на подробную инструкцию.

                                  1 Reply Last reply Reply Quote 0
                                  • E
                                    Eugene
                                    last edited by Jun 9, 2010, 7:15 PM

                                    @TEN:

                                    Пару страниц назад было о том, что версия 0.1 бета не дает нужного эффекта, а в пакетах именно эта версия.

                                    Эти циферки ничего не значат. Пробуй смело.

                                    http://ru.doc.pfsense.org

                                    1 Reply Last reply Reply Quote 0
                                    • T
                                      TEN
                                      last edited by Jun 10, 2010, 4:20 PM

                                      Помогите пожалуйста, у меня не получается настроить. Сделано по инструкции, вроде бы с пониманием процесса, но результат нулевой. Не знаю, нужно ли выкладывать результат tcpdump и какого интерфейса?

                                      1 Reply Last reply Reply Quote 0
                                      • E
                                        Eugene
                                        last edited by Jun 10, 2010, 4:24 PM

                                        Для начала нужно выложить скриншоты своих настроих вместе с конфигурацией/правилами интерфейсов.
                                        Далее нужно выложить лог Status->System log после того, как нажал Save на Services->Igmpproxy
                                        Надеюсь следовал вот этому руководству, когда настраивал http://ru.doc.pfsense.org/index.php/%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C_IPTV ?

                                        http://ru.doc.pfsense.org

                                        1 Reply Last reply Reply Quote 0
                                        • T
                                          TEN
                                          last edited by Jun 10, 2010, 5:02 PM Jun 10, 2010, 5:00 PM

                                          Настраивал по руководству.
                                          Лог:

                                          Jun 10 20:01:37 	igmpproxy: Warn: select() failure; Errno(4): Interrupted system call
                                          Jun 10 20:01:37 	igmpproxy: Note: Got a interupt signal. Exiting.
                                          Jun 10 20:01:37 	igmpproxy: Note: Route is not active. No kernel updates done.
                                          Jun 10 20:01:37 	igmpproxy: Note: leaveMcGroup: 224.0.0.2 on vr0
                                          Jun 10 20:01:37 	igmpproxy: Note: Route is not active. No kernel updates done.
                                          Jun 10 20:01:37 	igmpproxy: Note: leaveMcGroup: 224.0.0.22 on vr0
                                          Jun 10 20:01:37 	igmpproxy: Note: Removing MFC: 192.168.0.100 -> 239.192.152.143, InpVIf: 1
                                          Jun 10 20:01:37 	igmpproxy: Note: leaveMcGroup: 239.192.152.143 on vr0
                                          Jun 10 20:01:37 	igmpproxy: Note: Route is not active. No kernel updates done.
                                          Jun 10 20:01:37 	igmpproxy: Note: leaveMcGroup: 239.255.255.250 on vr0
                                          Jun 10 20:01:37 	igmpproxy: Note: Route is not active. No kernel updates done.
                                          Jun 10 20:01:37 	igmpproxy: Note: leaveMcGroup: 224.0.0.252 on vr0
                                          Jun 10 20:01:37 	igmpproxy: Note: Route is not active. No kernel updates done.
                                          Jun 10 20:01:37 	igmpproxy: Note: leaveMcGroup: 224.0.0.253 on vr0
                                          Jun 10 20:01:37 	igmpproxy: Note: All routes removed. Routing table is empty.
                                          Jun 10 20:01:37 	igmpproxy: Note: adding VIF, Ix 0 Fl 0x0 IP 0xd98496b2 vr0, Threshold: 1, Ratelimit: 0
                                          Jun 10 20:01:37 	igmpproxy: Note: adding VIF, Ix 1 Fl 0x0 IP 0x0100a8c0 rl0, Threshold: 1, Ratelimit: 0
                                          Jun 10 20:01:37 	igmpproxy: Note: joinMcGroup: 224.0.0.2 on rl0
                                          Jun 10 20:01:37 	igmpproxy: Note: RECV V2 member report from 192.168.0.1 to 224.0.0.2 (ip_hl 24, data 8)
                                          Jun 10 20:01:37 	igmpproxy: Note: The IGMP message was from myself. Ignoring.
                                          Jun 10 20:01:37 	igmpproxy: Note: RECV Membership query from 192.168.0.1 to 224.0.0.1 (ip_hl 20, data 8)
                                          Jun 10 15:01:37 	php: /pkg_edit.php: Started Igmpproxy service sucsesfully.
                                          Jun 10 20:01:38 	igmpproxy: Note: RECV V2 member report from 192.168.0.101 to 239.255.255.250 (ip_hl 24, data 8)
                                          Jun 10 20:01:38 	igmpproxy: Note: joinMcGroup: 239.255.255.250 on vr0
                                          Jun 10 20:01:39 	igmpproxy: Note: RECV V2 member report from 192.168.0.100 to 239.192.152.143 (ip_hl 24, data 8)
                                          Jun 10 20:01:39 	igmpproxy: Note: joinMcGroup: 239.192.152.143 on vr0
                                          




                                          Что-то еще добавить нужно?

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post
                                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
                                            This community forum collects and processes your personal information.
                                            consent.not_received