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

    IPtv multicast

    Scheduled Pinned Locked Moved Russian
    270 Posts 50 Posters 350.8k 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.
    • E
      Eugene
      last edited by

      Проверить просто - подержать подольше (минуты три) tcpdump на WAN и посомотреть проходят "igmp v3 report" или нет.
      Можно глянуть на это правило: "Разрешить с сетки LAN IGMP протокол на наш 224.x.x.x"
      лучше через```
      pfctl -sr | grep <lan interface="" namve=""></lan>

      По поводу мультикаст рутинга (видите PIM на WAN - провайдер хочет раутинг) - на pfSense это не заработает. Мы пытаемся работать, как простой клиент IGMP. Для этого необходимо и достаточно отправить IGMP membership request/report провайдеру и дальше пропустить multicast stream извне на LAN.
      Давайте сначала попробуем IGMP победить, ибо без этого ничего не выйдет.

      http://ru.doc.pfsense.org

      1 Reply Last reply Reply Quote 0
      • H
        HardSE
        last edited by

        Не проходят igmp v3 report - дампил больше 3х минут, ни один не попался…

        1 Reply Last reply Reply Quote 0
        • E
          Eugene
          last edited by

          А rule всё-таки не показали…
          Ладно, "мы пойдём другим путём" (с) не моё.
          Создайте Loadbalancer в Services->Loadbalancer Type=Gateway(failover) на интерфейсе WAN с мониторингом DefaultGatewayWAN.
          Далее в созданном ранне правиле для IGMP поменяйте gateway с default на только что созданный Loadbalancer.
          IGMP должны начать проходить с LAN на WAN. Если нет, то всё-таки нужен или скриншот правил на LAN, или pfctl -sr | grep<lan interface="" name=""></lan>

          http://ru.doc.pfsense.org

          1 Reply Last reply Reply Quote 0
          • H
            HardSE
            last edited by

            Не не проходят IGMP, по чему непонятно…
            Вот правила LAN
            pass in quick on re0 inet proto udp from any port = bootpc to 255.255.255.255 port = bootps keep state label "allow access to DHCP server on LAN"
            pass in quick on re0 inet proto udp from any port = bootpc to 192.168.1.1 port = bootps keep state label "allow access to DHCP server on LAN"
            pass out quick on re0 inet proto udp from 192.168.1.1 port = bootps to any port = bootpc keep state label "allow access to DHCP server on LAN"
            block drop in on ! re0 inet from 192.168.1.0/24 to any
            block drop in on re0 inet6 from fe80::2e0:42ff:fe38:1b1 to any
            pass out quick on re0 proto icmp all keep state label "let out anything from firewall host itself"
            pass out quick on re0 all flags S/SA keep state label "let out anything from firewall host itself"
            pass in quick on re0 inet from any to 192.168.1.1 flags S/SA keep state label "anti-lockout web rule"
            pass in quick on re0 proto igmp all keep state label "USER_RULE: LAN_IGMP"
            pass in quick on re0 inet from 192.168.1.0/24 to any flags S/SA keep state label "USER_RULE: Default LAN -> any"
            pass in quick on re0 inet proto tcp from any to 127.0.0.1 port = ftp-proxy flags S/SA keep state label "FTP PROXY: Allow traffic to localhost"
            pass in quick on re0 inet proto tcp from any to 127.0.0.1 port = ftp flags S/SA keep state label "FTP PROXY: Allow traffic to localhost"

            1 Reply Last reply Reply Quote 0
            • E
              Eugene
              last edited by

              Я не вижу loadbalancer'а в Ваших правилах.

              http://ru.doc.pfsense.org

              1 Reply Last reply Reply Quote 0
              • H
                HardSE
                last edited by

                @Eugene:

                Я не вижу loadbalancer'а в Ваших правилах.

                Сорри, loadbalancer - создавал. И менял правило для LAN. Он создался с ip-адресом WAN интерфейса + 10 в последнем разряде, после этого я генерировал IGMP запросы? но по tcpdump -i <wan interface="" name="">-n -s0 net 224.0.0.0/4  -  ни один igmp v3 report так и не прошел. Чуть позже смогу выложить правила для LAN c loadbalancer-ом.</wan>

                1 Reply Last reply Reply Quote 0
                • H
                  HardSE
                  last edited by

                  Правила с включённым лоадбаленсером:

                  pass in quick on re0 inet proto udp from any port = bootpc to 255.255.255.255 port = bootps keep state label "allow access to DHCP server on LAN"
                  pass in quick on re0 inet proto udp from any port = bootpc to 192.168.1.1 port = bootps keep state label "allow access to DHCP server on LAN"
                  pass out quick on re0 inet proto udp from 192.168.1.1 port = bootps to any port = bootpc keep state label "allow access to DHCP server on LAN"
                  block drop in on ! re0 inet from 192.168.1.0/24 to any
                  block drop in on re0 inet6 from fe80::2e0:42ff:fe38:1b1 to any
                  pass out quick on re0 proto icmp all keep state label "let out anything from firewall host itself"
                  pass out quick on re0 all flags S/SA keep state label "let out anything from firewall host itself"
                  pass in quick on re0 inet from any to 192.168.1.1 flags S/SA keep state label "anti-lockout web rule"
                  pass in quick on re0 proto igmp from any to <vpns>keep state label "NEGATE_ROUTE: Negate policy route for local network(s)"
                  pass in quick on re0 route-to (fxp0 84.52.X.X) inet proto igmp all keep state label "USER_RULE: LAN_IGMP"
                  pass in quick on re0 inet from 192.168.1.0/24 to any flags S/SA keep state label "USER_RULE: Default LAN -> any"
                  pass in quick on re0 inet proto tcp from any to 127.0.0.1 port = ftp-proxy flags S/SA keep state label "FTP PROXY: Allow traffic to localhost"
                  pass in quick on re0 inet proto tcp from any to 127.0.0.1 port = ftp flags S/SA keep state label "FTP PROXY: Allow traffic to localhost"</vpns>

                  и то что удалось надампить на WAN - во время попыток посмотреть IPTV:

                  19:59:28.773573 IP 172.25.0.1 > 224.0.0.1: igmp query v2
                  19:59:30.174871 IP 172.25.0.1 > 239.255.10.60: igmp query v2 [max resp time 10] [gaddr 239.255.10.60]
                  19:59:31.173620 IP 172.25.0.1 > 239.255.10.60: igmp query v2 [max resp time 30] [gaddr 239.255.10.60]
                  19:59:34.228291 IP 172.25.0.1 > 239.255.10.60: igmp query v2 [max resp time 30] [gaddr 239.255.10.60]
                  19:59:46.566442 IP 172.25.0.1 > 224.0.0.13: PIMv2, Hello, length 42
                  20:00:02.286527 IP 172.25.0.1 > 224.0.0.13: PIMv2, Bootstrap, length 36
                  20:00:02.287693 IP 172.25.0.1 > 224.0.0.13: PIMv2, Bootstrap, length 36
                  20:00:13.530540 IP 192.168.90.22.37266 > 233.34.28.6.1001: UDP, length 1316
                  20:00:15.865689 IP 172.25.0.1 > 224.0.0.13: PIMv2, Hello, length 42
                  20:00:15.866983 IP 172.25.0.1 > 224.0.0.13: PIMv2, Hello, length 42
                  20:00:15.883895 IP 172.25.0.1 > 224.0.0.13: PIMv2, Hello, length 42
                  20:00:15.885180 IP 172.25.0.1 > 224.0.0.13: PIMv2, Hello, length 42
                  20:00:15.886464 IP 172.25.0.1 > 224.0.0.13: PIMv2, Hello, length 42
                  20:00:17.115696 IP 172.25.0.1 > 239.255.10.41: igmp query v2 [max resp time 10] [gaddr 239.255.10.41]
                  20:00:18.111663 IP 172.25.0.1 > 239.255.10.41: igmp query v2 [max resp time 30] [gaddr 239.255.10.41]
                  20:00:21.127125 IP 172.25.0.1 > 239.255.10.41: igmp query v2 [max resp time 30] [gaddr 239.255.10.41]
                  20:00:28.771786 IP 172.25.0.1 > 224.0.0.1: igmp query v2
                  20:00:45.764935 IP 172.25.0.1 > 224.0.0.13: PIMv2, Hello, length 42
                  20:00:45.766224 IP 172.25.0.1 > 224.0.0.13: PIMv2, Hello, length 42

                  1 Reply Last reply Reply Quote 0
                  • E
                    Eugene
                    last edited by

                    Должен признать, я был не прав. На сегодняшний день, видимо, смотреть IPtv через pfSense невозможно. И проблема не в том, что мультикаст передать через pfSense нельзя, это похоже работает:

                    20:00:13.530540 IP 192.168.90.22.37266 > 233.34.28.6.1001: UDP, length 1316
                    

                    Проблема в том, что невозможно передать IGMP. Будем ждать пока кто-нибудь не соорудить igmpproxy пакетикт для pfSense.
                    Прошу прощения за то, что морочил Вам голову.

                    http://ru.doc.pfsense.org

                    1 Reply Last reply Reply Quote 0
                    • H
                      HardSE
                      last edited by

                      @Eugene:

                      Должен признать, я был не прав. На сегодняшний день, видимо, смотреть IPtv через pfSense невозможно. И проблема не в том, что мультикаст передать через pfSense нельзя, это похоже работает:

                      20:00:13.530540 IP 192.168.90.22.37266 > 233.34.28.6.1001: UDP, length 1316
                      

                      Проблема в том, что невозможно передать IGMP. Будем ждать пока кто-нибудь не соорудить igmpproxy пакетикт для pfSense.
                      Прошу прощения за то, что морочил Вам голову.

                      Да на самом деле igmpproxy уже есть в пакетах, которые предлагаются через Web-интерфейс, в pfSense 1.2.3RC1 - точно есть. У меня он стоит, но как его настроить тоже непонятно. Был бы благодарен если бы подсказали верные настройки. В Web-интерфейсе есть выбор : WAN/LAN , upstream/Downstream и Network Address - что и куда нужно прописать?

                      1 Reply Last reply Reply Quote 0
                      • E
                        Eugene
                        last edited by

                        Как говорят наши американские друзья "уау!", не знал, не знал… у меня везде 1.2-RELEASE стоит. На досуге обязательно гляну и отпишу.

                        http://ru.doc.pfsense.org

                        1 Reply Last reply Reply Quote 0
                        • H
                          HardSE
                          last edited by

                          Удалось ли заставить работать IPTV через IGMP ?

                          1 Reply Last reply Reply Quote 0
                          • E
                            Eugene
                            last edited by

                            Пока нет. Разработчики pfSense молчат  -(

                            http://ru.doc.pfsense.org

                            1 Reply Last reply Reply Quote 0
                            • F
                              filosoff96
                              last edited by

                              Для правильной работы igmp-proxy нужно ядро с опцией MROUTING
                              настройки igmp-proxy стандартные найдено в сети:

                              После этого лезем в /usr/local/etc/ и исправляем igmpproxy.conf
                              У меня это:
                              ##Начало конфига
                              quickleave
                              phyint rl0 upstream ratelimit 0 threshold 1
                              ##rl0 заменть на буквенное обозначение внешнего(интернет) интерфеса.
                              ##Кто забыл как посмотреть - ifconfig
                              altnet 239.255.1.0/24
                              altnet 239.255.0.0/24
                              altnet 212.48.127.0/24
                              altnet 212.49.127.0/24
                              ##Сегменты сети с мультикаст траффиком. Одинаковы для всей планеты.
                              phyint dc0 downstream ratelimit 0 threshold 1
                              ##Заменить dc0 на буквенное обозначение внутреннего интерфеса
                              phyint lo disabled
                              ##Отключаем передачу мультикаст траффика на внутренний интерфес
                              ##(петлю loopback) ОБЯЗАТЕЛЬНО!
                              ##Конец конфига

                              1 Reply Last reply Reply Quote 0
                              • H
                                HardSE
                                last edited by

                                @filosoff96:

                                Для правильной работы igmp-proxy нужно ядро с опцией MROUTING
                                настройки igmp-proxy стандартные найдено в сети:

                                После этого лезем в /usr/local/etc/ и исправляем igmpproxy.conf
                                У меня это:
                                ##Начало конфига
                                quickleave
                                phyint rl0 upstream ratelimit 0 threshold 1
                                ##rl0 заменть на буквенное обозначение внешнего(интернет) интерфеса.
                                ##Кто забыл как посмотреть - ifconfig
                                altnet 239.255.1.0/24
                                altnet 239.255.0.0/24
                                altnet 212.48.127.0/24
                                altnet 212.49.127.0/24
                                ##Сегменты сети с мультикаст траффиком. Одинаковы для всей планеты.
                                phyint dc0 downstream ratelimit 0 threshold 1
                                ##Заменить dc0 на буквенное обозначение внутреннего интерфеса
                                phyint lo disabled
                                ##Отключаем передачу мультикаст траффика на внутренний интерфес
                                ##(петлю loopback) ОБЯЗАТЕЛЬНО!
                                ##Конец конфига

                                Это все хорошо известно. У Вас есть "ядро с опцией MROUTING" для pfsense и которое работает с igmpproxy, т.е. на компе можно смотреть IPTV ?

                                1 Reply Last reply Reply Quote 0
                                • F
                                  filosoff96
                                  last edited by

                                  Все выходные бились над этим вопросом.
                                  Ядро взяли 7.1 GENERIC откомпилировали с нужной опцией а вот подсунуть в PFSens не вышло …
                                  Может есть исходники PFSensa или может подскажете как подсунуть?

                                  1 Reply Last reply Reply Quote 0
                                  • H
                                    HardSE
                                    last edited by

                                    Тут Eugene отписался, что возможно скоро все заработает в тестовой сборке от разработчиков.

                                    1 Reply Last reply Reply Quote 0
                                    • F
                                      filosoff96
                                      last edited by

                                      Ставил последнюю Альфу от 6 августа вроде
                                      все так же не работает ….

                                      1 Reply Last reply Reply Quote 0
                                      • E
                                        Eugene
                                        last edited by

                                        Пока пробовать что-либо бесполезно. Ошибка в коде igmpproxy. Ошибка найдена и поправлена, остаётся ждать, когда исправленный вариант будет скомпилирован и доступен всеобщему пользованию. Я дам знать - потестируете.

                                        PS: ядро в pfSense скомпилировано с опцией MROUTING

                                        http://ru.doc.pfsense.org

                                        1 Reply Last reply Reply Quote 0
                                        • F
                                          filosoff96
                                          last edited by

                                          Тогда ждемс …
                                          Вопрос а при помощи диска разработчика можно откомпилировать и собрать свой PFSENSE ?

                                          PS Хотя по логам igmpproxy пишет что то вроде "не могу включить маршрут тк не поддерживает ядро"
                                          и на сайте лазил и не видел в настройках включенную опчию

                                          1 Reply Last reply Reply Quote 0
                                          • E
                                            Eugene
                                            last edited by

                                            pfSense-Developers-1.2.2.iso.gz здесь http://files.pfsense.org/mirror/downloads/
                                            Можно глянуть на лог igmpproxy?

                                            http://ru.doc.pfsense.org

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.