- Oznacz jako nowe
- Zakładka
- Obserwuj
- Wycisz
- Subskrybuj źródło RSS
- Wyróżnij
- Drukuj
- Zgłoś
W następnej wiadomości przedstawiam konfigurację własnego routera potrzebną do uzyskania dostępu do uslug IPTV i VoD.
Rozwiązane! Idź do rozwiązania
Rozwiązanie:
- Oznacz jako nowe
- Zakładka
- Obserwuj
- Wycisz
- Subskrybuj źródło RSS
- Wyróżnij
- Drukuj
- Zgłoś
Poniższa konfiguracja została wykonana na routerze pfSense 2.6.0 (na bazie FreeBSD 12.3).
Założenie: osoba wykonująca konfigurację potrafi konfigurować router, potrafi wykonać konfigurację podstawową która tu została jedynie zasygnalizowana (PPoE Neostrada, podstawowe usługi LAN), zna / potrafi uzyskać niezbędne informacje dot. opisanych tu protokołów i usług.
Urządzenia, połączenia fizyczne (kable):
- - zakończenie ONT
- - router na bazie pfSense, konfigurowane porty:
- - <WAN>: połączony z ONT
- - <TV>: do dekodera IPTV. Podłączyłem dekoder do osobnego portu karty sieciowej, żeby nie obciążać portu <LAN> ruchem telewizyjnym. Oczywiście możliwe są inne konfiguracje, zgodnie z preferencjami użytkownika.
- - dekoder IPTV
Konfiguracja sieci - VLANy, (rozpoznane na podstawie analizy ruchu):
- - <WAN>:
- - 35: Internet, przez protokół PPPoE (standardowa konfiguracja Neostrady)
- - 838: IPTV, ruch DHCP do konfiguracji interfejsu multicast
- - 839: IPTV, ruch IGMP i multicast (kanały telewizji)
- - <TV>: bez VLAN-ów, ruch unicast i multicast prowadzony w jednej podsieci IP
Konfiguracja interfejsu IP od strony <WAN> do komunikacji z usługą IPTV
- Strumień IPTV dostarczany jest przez VLAN 839. Na tym VLAN-ie musi być ustawiony interfejs protokołu IP (potocznie: musi być adres IP), który jest konfigurowany przez protokół DHCP. Jednakże łączność z serwerem DHCP odbywa się po VLAN 838.
- Podłączenie więcej niż jednego VLAN-u do interfejsu IP uzyskałem przez skonfigurowanie bridge'a na interfejsach założonych dla poszczególnych VLAN-ów, i założenie interfejsu IP na bridge'u:
- - na interfejsie <WAN> założyć VLAN-y 838, 839 (Interfaces > Assignments > VLANs). VLAN-y przypisane do portu pojawią się na liście interfejsów. Warto nadać im opisowe nazwy. Dalej będę używał nazw <WAN.838>, <WAN.839>
- - założyć bridge (Interfaces > assignments > Bridges) na interfejsach <WAN.838>, <WAN.839>. Założony bridge pojawi się na liście interfejsów i dalej będzie konfigurowany jak zwykły interfejs. Warto bridge-owi nadać opisową nazwę, dalej będę używał <BR_IPTV_WAN>
- - skonfigurować protokół IP na interfejsie bridge <BR_IPTV_WAN>:
- - konfiguracja przez DHCP
- - włączona konfiguracja zaawansowana, w polu "Send options" wpisać:
- dhcp-client-identifier 1:{mac_addr_asciiU:}, dhcp-class-identifier "sagemcom", user-class "&FSVDSL_funbox3.MLTV.softathome.Funbox3"
- Uwaga: FunBox wysyła opcje DHCP zgodne z dokumentem RFC 3004. PfSense formatuje pakiet DHCP zgodnie z wcześniejszym RFC 2132. Wstawienie znaku '&' na początku fragmentu "&FSVDSL_funbox3.MLTV.softathome.Funbox3" powoduje, że ta opcja staje się zgodna z RFC 3004 (ten znak reprezentuje długość pozostałego tekstu opcji). Prawidłowe ustawienie tego parametru jest niezbędne, by serwer DHCP przydzielił dzierżawę adresu IP.
- Po wykonaniu tej konfiguracji, interfejs <BR_IPTV_WAN> powinien uzyskać adres IP (w moim przypadku był to adres z podsieci prywatnej klasy A, czyli 10.x.x.x)
Konfiguracja interfejsu <TV>
- Interfejs powinien być skonfigurowany analogicznie do interfesju <LAN>:
- - nadać adres IP
- - w typowej konfiguracji, dla tego interfejsu należy skonfigurować serwer DHCP
- Po wykonaniu podstawowej konfiguracji, podłączony dekoder powinien uzyskać adres IP z serwera DHCP
- Reguły firewalla (Firewall > Rules).
Poniższe reguły opisują minimalny, określony przeze mnie doświadczalnie, zakres ruchu potrzebnego do działania IPTV.- Interfejs <BR_IPTV_WAN>
- IPV4, od: <TV> net : any, do: any:any. Zaznaczyć "Allow packets with IP options to pass".
- Interfejs <WAN.839>
- IPV4 IGMP, od: 10.0.0.0/8:any, do: 224.0.0.0/4:any. Zaznaczyć "Allow packets with IP options to pass".
- IPV4 UDP, od: 10.0.0.0/8:any, do: 224.0.0.0/4:any. Zaznaczyć "Allow packets with IP options to pass".
- Interfejs <TV>
- <dostęp do podstawowych usług, takich jak DCHP i DNS>
- <dostęp do serwerów NTP Orange: UDP/123 do serwerów ntp1.tp.pl, ntp2.tp.pl>
korzystając z funkcjonalności pfSense, utworzyłem regułę zezwalająca na ruch NTP do serwerów określonych przez alias. W utworzonym aliasie podałem zaobserwowane serwery: ntp1.tp.pl, ntp2.tp.pl - HTTP, od: <TV net> do: any (VoD, pobieranie aktualizacji oprogramowania)
- HTTPS, od: <TV net>, do: any (ruch sterujący, treści statyczne, VoD gdy niedrożne HTTP)
- IPV4 UDP, od: <TV net>, do: any:1900 (SSDP)
- IPV4 IGMP, od: <TV net>, do: 224.0.0.0/4:any. Zaznaczyć "Allow packets with IP options to pass".
- Po wykonaniu tej konfiguracji dekoder powinien połączyć się z usługą IPTV i wyświetlać statyczną treść (menu, opisy kanałów). Nie będzie jeszcze działać strumień video.
- Interfejs <BR_IPTV_WAN>
- - nadać adres IP
Konfiguracja usługi IGMP Proxy (Services > IGMP Proxy)
IGMP Proxy umożliwia urządzeniom z różnych podsieci dołączanie do grup broadcast. W praktyce: umożliwia odbiór strumieni IPTV urządzeniom oddzielonym od serwera barierą translacji adresów (NAT).
- Interfejs upstream: <BR_IPTV_WAN>, docelowe sieci: 224.0.0.0/4, 10.0.0.0/8
- Interfejs downstream: <TV>, docelowe sieci: 224.0.0.0/4
- pfSense generuje plik konfiguracyjny /var/etc/igmpproxy.conf:
- quickleave
phyint igb1 downstream ratelimit 0 threshold 1 # <TV>
altnet 224.0.0.0/4
phyint bridge0 upstream ratelimit 0 threshold 1 # <BR_IPTV_WAN>
altnet 224.0.0.0/4
altnet 10.0.0.0/8
# pozostale interfejsy: phyint <interfejs> disabled
- quickleave
- Uwaga: zaobserwowałem, że po wyłączeniu dekodera (przypuszczalnie: po utracie połączenia na porcie karty sieciowej) proces igmpproxy zostaje zakończony, co skutkuje, po krótkim czasie, brakiem dostępu do kanałów IPTV. Prymitywnym, ale skutecznym rozwiązaniem jest cykliczne, co minutę, uruchamianie tego procesu, uzyskane przez umieszczenie poniższej linii w crontab:
- * * * * * /usr/local/sbin/igmpproxy -vv /var/etc/igmpproxy.conf # opcja v / vv loguje w routing.log
Po wykonaniu powyższej konfiguracji dekoder powinien odbierać strumienie IPTV i VoD.
- Oznacz jako nowe
- Zakładka
- Obserwuj
- Wycisz
- Subskrybuj źródło RSS
- Wyróżnij
- Drukuj
- Zgłoś
Konfiguracja własnego routera do telewizji IPTV i VoD
@larmalarma zakładam, że podasz też informację, na jakim sprzęcie skonfigurowałeś.
- Oznacz jako nowe
- Zakładka
- Obserwuj
- Wycisz
- Subskrybuj źródło RSS
- Wyróżnij
- Drukuj
- Zgłoś
Poniższa konfiguracja została wykonana na routerze pfSense 2.6.0 (na bazie FreeBSD 12.3).
Założenie: osoba wykonująca konfigurację potrafi konfigurować router, potrafi wykonać konfigurację podstawową która tu została jedynie zasygnalizowana (PPoE Neostrada, podstawowe usługi LAN), zna / potrafi uzyskać niezbędne informacje dot. opisanych tu protokołów i usług.
Urządzenia, połączenia fizyczne (kable):
- - zakończenie ONT
- - router na bazie pfSense, konfigurowane porty:
- - <WAN>: połączony z ONT
- - <TV>: do dekodera IPTV. Podłączyłem dekoder do osobnego portu karty sieciowej, żeby nie obciążać portu <LAN> ruchem telewizyjnym. Oczywiście możliwe są inne konfiguracje, zgodnie z preferencjami użytkownika.
- - dekoder IPTV
Konfiguracja sieci - VLANy, (rozpoznane na podstawie analizy ruchu):
- - <WAN>:
- - 35: Internet, przez protokół PPPoE (standardowa konfiguracja Neostrady)
- - 838: IPTV, ruch DHCP do konfiguracji interfejsu multicast
- - 839: IPTV, ruch IGMP i multicast (kanały telewizji)
- - <TV>: bez VLAN-ów, ruch unicast i multicast prowadzony w jednej podsieci IP
Konfiguracja interfejsu IP od strony <WAN> do komunikacji z usługą IPTV
- Strumień IPTV dostarczany jest przez VLAN 839. Na tym VLAN-ie musi być ustawiony interfejs protokołu IP (potocznie: musi być adres IP), który jest konfigurowany przez protokół DHCP. Jednakże łączność z serwerem DHCP odbywa się po VLAN 838.
- Podłączenie więcej niż jednego VLAN-u do interfejsu IP uzyskałem przez skonfigurowanie bridge'a na interfejsach założonych dla poszczególnych VLAN-ów, i założenie interfejsu IP na bridge'u:
- - na interfejsie <WAN> założyć VLAN-y 838, 839 (Interfaces > Assignments > VLANs). VLAN-y przypisane do portu pojawią się na liście interfejsów. Warto nadać im opisowe nazwy. Dalej będę używał nazw <WAN.838>, <WAN.839>
- - założyć bridge (Interfaces > assignments > Bridges) na interfejsach <WAN.838>, <WAN.839>. Założony bridge pojawi się na liście interfejsów i dalej będzie konfigurowany jak zwykły interfejs. Warto bridge-owi nadać opisową nazwę, dalej będę używał <BR_IPTV_WAN>
- - skonfigurować protokół IP na interfejsie bridge <BR_IPTV_WAN>:
- - konfiguracja przez DHCP
- - włączona konfiguracja zaawansowana, w polu "Send options" wpisać:
- dhcp-client-identifier 1:{mac_addr_asciiU:}, dhcp-class-identifier "sagemcom", user-class "&FSVDSL_funbox3.MLTV.softathome.Funbox3"
- Uwaga: FunBox wysyła opcje DHCP zgodne z dokumentem RFC 3004. PfSense formatuje pakiet DHCP zgodnie z wcześniejszym RFC 2132. Wstawienie znaku '&' na początku fragmentu "&FSVDSL_funbox3.MLTV.softathome.Funbox3" powoduje, że ta opcja staje się zgodna z RFC 3004 (ten znak reprezentuje długość pozostałego tekstu opcji). Prawidłowe ustawienie tego parametru jest niezbędne, by serwer DHCP przydzielił dzierżawę adresu IP.
- Po wykonaniu tej konfiguracji, interfejs <BR_IPTV_WAN> powinien uzyskać adres IP (w moim przypadku był to adres z podsieci prywatnej klasy A, czyli 10.x.x.x)
Konfiguracja interfejsu <TV>
- Interfejs powinien być skonfigurowany analogicznie do interfesju <LAN>:
- - nadać adres IP
- - w typowej konfiguracji, dla tego interfejsu należy skonfigurować serwer DHCP
- Po wykonaniu podstawowej konfiguracji, podłączony dekoder powinien uzyskać adres IP z serwera DHCP
- Reguły firewalla (Firewall > Rules).
Poniższe reguły opisują minimalny, określony przeze mnie doświadczalnie, zakres ruchu potrzebnego do działania IPTV.- Interfejs <BR_IPTV_WAN>
- IPV4, od: <TV> net : any, do: any:any. Zaznaczyć "Allow packets with IP options to pass".
- Interfejs <WAN.839>
- IPV4 IGMP, od: 10.0.0.0/8:any, do: 224.0.0.0/4:any. Zaznaczyć "Allow packets with IP options to pass".
- IPV4 UDP, od: 10.0.0.0/8:any, do: 224.0.0.0/4:any. Zaznaczyć "Allow packets with IP options to pass".
- Interfejs <TV>
- <dostęp do podstawowych usług, takich jak DCHP i DNS>
- <dostęp do serwerów NTP Orange: UDP/123 do serwerów ntp1.tp.pl, ntp2.tp.pl>
korzystając z funkcjonalności pfSense, utworzyłem regułę zezwalająca na ruch NTP do serwerów określonych przez alias. W utworzonym aliasie podałem zaobserwowane serwery: ntp1.tp.pl, ntp2.tp.pl - HTTP, od: <TV net> do: any (VoD, pobieranie aktualizacji oprogramowania)
- HTTPS, od: <TV net>, do: any (ruch sterujący, treści statyczne, VoD gdy niedrożne HTTP)
- IPV4 UDP, od: <TV net>, do: any:1900 (SSDP)
- IPV4 IGMP, od: <TV net>, do: 224.0.0.0/4:any. Zaznaczyć "Allow packets with IP options to pass".
- Po wykonaniu tej konfiguracji dekoder powinien połączyć się z usługą IPTV i wyświetlać statyczną treść (menu, opisy kanałów). Nie będzie jeszcze działać strumień video.
- Interfejs <BR_IPTV_WAN>
- - nadać adres IP
Konfiguracja usługi IGMP Proxy (Services > IGMP Proxy)
IGMP Proxy umożliwia urządzeniom z różnych podsieci dołączanie do grup broadcast. W praktyce: umożliwia odbiór strumieni IPTV urządzeniom oddzielonym od serwera barierą translacji adresów (NAT).
- Interfejs upstream: <BR_IPTV_WAN>, docelowe sieci: 224.0.0.0/4, 10.0.0.0/8
- Interfejs downstream: <TV>, docelowe sieci: 224.0.0.0/4
- pfSense generuje plik konfiguracyjny /var/etc/igmpproxy.conf:
- quickleave
phyint igb1 downstream ratelimit 0 threshold 1 # <TV>
altnet 224.0.0.0/4
phyint bridge0 upstream ratelimit 0 threshold 1 # <BR_IPTV_WAN>
altnet 224.0.0.0/4
altnet 10.0.0.0/8
# pozostale interfejsy: phyint <interfejs> disabled
- quickleave
- Uwaga: zaobserwowałem, że po wyłączeniu dekodera (przypuszczalnie: po utracie połączenia na porcie karty sieciowej) proces igmpproxy zostaje zakończony, co skutkuje, po krótkim czasie, brakiem dostępu do kanałów IPTV. Prymitywnym, ale skutecznym rozwiązaniem jest cykliczne, co minutę, uruchamianie tego procesu, uzyskane przez umieszczenie poniższej linii w crontab:
- * * * * * /usr/local/sbin/igmpproxy -vv /var/etc/igmpproxy.conf # opcja v / vv loguje w routing.log
Po wykonaniu powyższej konfiguracji dekoder powinien odbierać strumienie IPTV i VoD.
- Oznacz jako nowe
- Zakładka
- Obserwuj
- Wycisz
- Subskrybuj źródło RSS
- Wyróżnij
- Drukuj
- Zgłoś
Konfiguracja własnego routera do telewizji IPTV i VoD
Dobra robota.
W kwestii stabilności procesu igmpproxy to wydaje mi się że może to być ewentualnie spowodowane usunięciem interfejsu po zaniku połączenia. W przypadku konfiguracji na komputerze wystarczy wymusić utrzymanie interfejsu i proces jest stabilny.
- Oznacz jako nowe
- Zakładka
- Obserwuj
- Wycisz
- Subskrybuj źródło RSS
- Wyróżnij
- Drukuj
- Zgłoś
Konfiguracja własnego routera do telewizji IPTV i VoD
Nie należy dedykować osobnego interfejsu dla dekodera, tylko całość przepuścić przez switch, który i tak musi się tu znaleźć. Z właściwie dobranym switchem (igmp snooping) IPTV nie obciąża sieci. Wtedy odłączenie dekodera nie wpływa fizycznie na iface routera i nic się nie dzieje. Chyba że odepnie się kabelek, tak jak to opisałem tutaj, proponując podobne jak OP remedium na taki przypadek.
- Oznacz jako nowe
- Zakładka
- Obserwuj
- Wycisz
- Subskrybuj źródło RSS
- Wyróżnij
- Drukuj
- Zgłoś
Konfiguracja własnego routera do telewizji IPTV i VoD
W uzupełnieniu opisuję, jak udało mi się wstawić zarządzalny switch pomiędzy ONT a router.
[ONT]---[switch]---[router]
Dlaczego chciałem tak zrobić?
1. Bo czemu nie
2. Zaawansowane switche mają możliwość monitorowania ruchu.
Wszystkiego dobrego w nadchodzącym 2024 roku!