- Oznacz jako nowe
- Zakładka
- Obserwuj
- Wycisz
- Subskrybuj źródło RSS
- Wyróżnij
- Drukuj
- Zgłoś
Orange IPTV na UniFi Express 7 + USW Ultra
Cześć,
Chcę się podzielić stabilnym rozwiązaniem na uruchomienie telewizji od Orange (IPTV) na sprzęcie UniFi. U mnie działa to na zestawie UniFi Express 7 + switch USW Ultra, do którego podpięty jest dekoder.
Standardowa zabawa z konfiguracją igmpproxy przez konsolę na UniFi to loteria – program często się wiesza, sypie błędami o zajętych portach, a każda zmiana w panelu potrafi ubić proces.
Zamiast tego zastosowałem wirtualny mostek w warstwie drugiej. Skrypt wirtualnie spina kabel z telewizją od Orange bezpośrednio z Twoim domowym VLAN-em dla dekodera. Router staje się "przezroczysty" i nie marnuje procesora na obróbkę wideo. Żeby całość była odporna na restarty i zmiany w panelu UniFi, skrypt jest pilnowany przez usługę systemową, która w razie awarii sama podnosi mostek w 5 sekund.
Poniżej znajdziesz opis konfiguracji dla kabla oraz dla Wi-Fi, a na dole uniwersalny skrypt z kreatorem.
KROK 1: Przygotowanie w panelu UniFi
Niezależnie od tego, czy dekoder podłączasz kablem, czy przez Wi-Fi, zacznij od tego:
Stwórz sieć dla TV: Wejdź w Settings -> Networks i dodaj nową sieć (np. Orange_TV). Przypisz jej dowolny VLAN ID (np. 7).
Włącz IGMP Snooping: W ustawieniach koniecznie włącz IGMP Snoopingdla tej sieci. Dzięki temu switch/AP nie zaleje reszty domowych urządzeń ruchem z telewizji.
A. Jeśli podłączasz dekoder KABLEM:
W ustawieniach portów switcha (np. USW Ultra), ustaw na porcie prowadzącym do dekodera profil sieci Orange_TV (VLAN 7).
B. Jeśli podłączasz dekoder przez WI-FI:
Wejdź w Settings -> WiFi i stwórz nową, osobną sieć bezprzewodową (np. Orange_TV_WiFi).
Przypisz ją do sieci Orange_TV (VLAN 7) - Do tej sieci podłączasz tylko dekoder.
KROK 2: Uruchomienie Kreatora przez SSH
Zaloguj się na UniFi Express przez SSH i wklej poniższy kod. Skrypt wyświetli listę interfejsów w Twoim routerze, zapyta, gdzie masz wpięty światłowód (ONT), a potem zapyta o numery VLAN-ów. Wszystko ustawi sam.
cat << 'EOF' > /tmp/install-orange-iptv.sh
#!/bin/sh
clear
echo "====================================================================="
echo " KREATOR INSTALACJI ORANGE IPTV DLA UNIFI OS (BRIDGE)"
echo "====================================================================="
echo ""
# 1. Wybór interfejsu WAN (ONT)
echo "Wykryte interfejsy sieciowe w routerze:"
echo "---------------------------------------------------------------------"
interfaces=$(ip -o link show | awk -F': ' '{print $2}' | grep -E "eth|eth0|eth1|ra|rai|wlan")
if [ -z "$interfaces" ]; then
interfaces=$(ip -o link show | awk -F': ' '{print $2}' | grep -v "lo")
fi
count=1
for iface in $interfaces; do
echo " $count) $iface"
eval "iface_$count=\$iface"
count=$((count+1))
done
echo "---------------------------------------------------------------------"
printf "Wybierz numer interfejsu, pod który podpięty jest ONT (zwykle eth1): "
read wan_choice
eval "SELECTED_WAN=\$iface_$wan_choice"
if [ -z "$SELECTED_WAN" ]; then
echo "Błędny wybór. Przerywam."
exit 1
fi
# 2. Wybór interfejsu LAN (VLAN TV)
echo ""
echo "Wykryte mostki sieciowe (VLAN-y) w routerze:"
echo "---------------------------------------------------------------------"
bridges=$(ip -o link show | awk -F': ' '{print $2}' | grep "br")
count=1
for br in $bridges; do
echo " $count) $br"
eval "br_$count=\$br"
count=$((count+1))
done
echo "---------------------------------------------------------------------"
printf "Wybierz interfejs swojego domowego VLANu dla TV (np. br7 dla VLAN 7): "
read lan_choice
eval "SELECTED_LAN=\$br_$lan_choice"
if [ -z "$SELECTED_LAN" ]; then
echo "Błędny wybór. Przerywam."
exit 1
fi
# 3. Podanie VLAN-ów Orange
echo ""
printf "Podaj VLAN dla VoD/EPG Orange [domyślnie 838]: "
read vlan_vod
[ -z "$vlan_vod" ] && vlan_vod="838"
printf "Podaj VLAN dla TV na żywo Orange [domyślnie 839]: "
read vlan_tv
[ -z "$vlan_tv" ] && vlan_tv="839"
echo ""
echo "Podsumowanie konfiguracji:"
echo " -> Port WAN (ONT): $SELECTED_WAN"
echo " -> Port LAN (VLAN Domowy): $SELECTED_LAN"
echo " -> Orange VoD VLAN: $vlan_vod"
echo " -> Orange Multicast VLAN: $vlan_tv"
echo ""
printf "Czy wszystko się zgadza? (y/n): "
read confirm
if [ "$confirm" != "y" ] && [ "$confirm" != "Y" ]; then
echo "Instalacja anulowana."
exit 1
fi
echo ""
echo "[1/3] Tworzenie skryptu sieciowego w /usr/local/bin/orange-iptv.sh..."
cat << 'INNER_EOF' > /usr/local/bin/orange-iptv.sh
#!/bin/sh
WAN_IF="WAN_PLACEHOLDER"
LAN_IF="LAN_PLACEHOLDER"
VLAN_VOD="VOD_PLACEHOLDER"
VLAN_TV="TV_PLACEHOLDER"
echo "Konfiguracja Orange TV: WAN:$WAN_IF -> LAN:$LAN_IF (Tryb Mostka L2)"
# Czyszczenie starych procesów i kart
killall igmpproxy 2>/dev/null
killall udhcpc 2>/dev/null
ip link delete $WAN_IF.$VLAN_VOD 2>/dev/null
ip link delete $WAN_IF.$VLAN_TV 2>/dev/null
ip link set dev $WAN_IF.$VLAN_TV nomaster 2>/dev/null
# 1. Konfiguracja VLAN VoD (838)
ip link add link $WAN_IF name $WAN_IF.$VLAN_VOD type vlan id $VLAN_VOD
ip link set up dev $WAN_IF.$VLAN_VOD
udhcpc -i $WAN_IF.$VLAN_VOD -q -A 10 -b -x hostname:sagemcom -V "sagemcom"
iptables -t nat -A POSTROUTING -o $WAN_IF.$VLAN_VOD -j MASQUERADE
iptables -I FORWARD -i $LAN_IF -o $WAN_IF.$VLAN_VOD -j ACCEPT
iptables -I FORWARD -i $WAN_IF.$VLAN_VOD -o $LAN_IF -m state --state RELATED,ESTABLISHED -j ACCEPT
# 2. Konfiguracja VLAN TV na żywo (839) + Mostek L2 z priorytetem CoS=4
ip link add link $WAN_IF name $WAN_IF.$VLAN_TV type vlan id $VLAN_TV egress-qos-map 0:4 1:4 2:4 3:4 4:4 5:4 6:4 7:4
ip link set up dev $WAN_IF.$VLAN_TV
ip link set dev $WAN_IF.$VLAN_TV master $LAN_IF
echo 0 > /sys/class/net/$LAN_IF/bridge/multicast_snooping 2>/dev/null
echo "Konfiguracja zaaplikowana pomyślnie!"
INNER_EOF
# Wstrzykiwanie wybranych zmiennych do skryptu docelowego
sed -i "s/WAN_PLACEHOLDER/$SELECTED_WAN/g" /usr/local/bin/orange-iptv.sh
sed -i "s/LAN_PLACEHOLDER/$SELECTED_LAN/g" /usr/local/bin/orange-iptv.sh
sed -i "s/VOD_PLACEHOLDER/$vlan_vod/g" /usr/local/bin/orange-iptv.sh
sed -i "s/TV_PLACEHOLDER/$vlan_tv/g" /usr/local/bin/orange-iptv.sh
chmod +x /usr/local/bin/orange-iptv.sh
echo "[2/3] Tworzenie usługi startowej z auto-restartem..."
cat << 'INNER_EOF' > /etc/systemd/system/orange-iptv.service
[Unit]
Description=Orange IPTV Bridge Configuration
After=network.target
Wants=network-online.target
[Service]
Type=forking
ExecStart=/usr/local/bin/orange-iptv.sh
Restart=always
RestartSec=5s
[Install]
WantedBy=multi-user.target
INNER_EOF
echo "[3/3] Przeładowanie usług systemowych i uruchomienie..."
systemctl daemon-reload
systemctl enable orange-iptv.service
systemctl restart orange-iptv.service
echo ""
echo "=== INSTALACJA ZAKOŃCZONA! ==="
echo "Zrestartuj teraz dekoder z prądu na 10 sekund."
echo "====================================================================="
EOF
sh /tmp/install-orange-iptv.sh
rm /tmp/install-orange-iptv.shKROK 3: Restart dekodera
Po zakończeniu działania kreatora odłącz dekoder Orange od zasilania na 10 sekund i włącz ponownie, żeby pobrał świeże trasy sieciowe. Telewizja, menu i VoD powinny działać od razu.
Przydatne info: Jeśli kiedyś zmienisz ustawienia sieciowe w panelu UniFi, system zresetuje interfejsy, a telewizja może na moment zgasnąć. Usługa wykryje to sama i po 5 sekundach automatycznie postawi mostek z powrotem, bez konieczności wchodzenia na SSH.
Na koniec dodam jeszcze kilka ważnych uwag praktycznych. Pamiętaj, że to rozwiązanie opiera się na grzebaniu w systemie routera przez SSH. O ile mniejsze aktualizacje samej aplikacji Network niczego nie zepsują, o tyle duża aktualizacja całego systemu operacyjnego UniFi najprawdopodobniej wyczyści partycję systemową. Skrypt i usługa wtedy znikną, więc w razie takiej sytuacji trzeba będzie po prostu zalogować się ponownie na SSH i odpalić kreator jeszcze raz. Cała konfiguracja, którą wyklikasz w panelu przeglądarki, oczywiście zostanie nienaruszona, więc ponowne postawienie mostka zajmie dosłownie minutę.
Zanim w ogóle dotkniesz konsoli i zaczniesz cokolwiek wklejać, zrób sobie dla świętego spokoju backup ustawień w panelu UniFi. Jak już wszystko ruszy i telewizja zacznie pięknie działać, zrób drugą kopię zapasową.
Oczywiście cała zabawa odbywa się na Twoją własną odpowiedzialność. Udostępniam to rozwiązanie całkowicie za darmo i nie odpowiadam za to, jeśli coś pójdzie nie tak, sieć się rozjedzie albo internet nagle zgaśnie. Na mojej konfiguracji, czyli UniFi Express i switchu USW Ultra, wszystko działa stabilnie i bez zająknięcia, ale nie daję gwarancji, że u każdego ruszy to od kopnięcia. Gdyby ktoś jednak utknął przy konfiguracji, coś poszło nie tak z VLAN-ami albo ogólnie pojawił się problem z ustawieniem sieci w UniFi, daj znać w komentarzach. W wolnej chwili chętnie zerknę na logi i postaram się pomóc rozwiązać problem.
- Oznacz jako nowe
- Zakładka
- Obserwuj
- Wycisz
- Subskrybuj źródło RSS
- Wyróżnij
- Drukuj
- Zgłoś
Orange IPTV na UniFi Express 7 + USW Ultra
Jedna uwaga: odpuść sobie VLAN 838, on do niczego nie jest potrzebny, jedynie Funbox potrafi w jakąś sensowną interakcję z nim wejść, na pewno nie jest tam przekazywane VOD - sprawdziłem i jestem tego pewien na 100%. Na własnym sprzęcie ten VLAN jest niepotrzebny a może wręcz zaszkodzić.
- Oznacz jako nowe
- Zakładka
- Obserwuj
- Wycisz
- Subskrybuj źródło RSS
- Wyróżnij
- Drukuj
- Zgłoś
Orange IPTV na UniFi Express 7 + USW Ultra
Zwracam honor, masz w 100% rację z tym VOD.
Odpaliłem tcpdumpa wycinając multicast, żeby podejrzeć co tam dokładnie lata i faktycznie - dekoder gada po publicznym internecie. VLAN 838 do samej autoryzacji i odtwarzania jest tu kompletnie niepotrzebny.
Ale tu wchodzi niezły plot twist
Skoro dekoder tego nie używa, to pomyślałem, że wywalę 838 z configu, bo po co ma wisieć w systemie. Po tym telewizja zaczęła się ciąć.
Może orange traktuje vlan 838 jako trigger do QoS-u? Nawet jeśli router nigdy nie dostanie stamtąd adresu IP, to samo wysyłanie w eter zapytań DHCP Discover działa jako "puls". Centrala to widzi i wie: "aha, wisi tu dekoder, dajemy multicastowi na 839 najwyższy priorytet".
No nic, została nam ciekawostka przyrodnicza, bo raczej oficjalniej odpowiedzi nie dostaniemy 😉
- Oznacz jako nowe
- Zakładka
- Obserwuj
- Wycisz
- Subskrybuj źródło RSS
- Wyróżnij
- Drukuj
- Zgłoś
Orange IPTV na UniFi Express 7 + USW Ultra
No nie wiem. Ja nie mam VALN 838 i telewizja chodzi płynnie. QoS jest realizowany według znaczników DSCP... Świetnie współpracuje z cake. Na VLAN 838 zaobserwowałem tylko wymianę urzejmości po DHCP która zakończyła się ustawieniem serwerów DNS i NTP które w dodatku nie odpowiadały na indagacje. Był też przepis na statyczne ścieżki poprzez intranet. Ponieważ ten DNS psuł mi konfigurację, to wywaliłem cały ten VLAN. Cała ta komunikacja była możliwa tylko po podszyciu się pod Funboxa, inaczej serwer DHCP na tym VLAN milczał. A VOD idzie normalnie przez internet, podobnie jak multinagrywarka i komunikacja do Stream4k, Duo, i apki Orange TV na własnym sprzęcie.
PS. Co do jednego masz absolutną rację: ta irytująca polityka nieujawniania szczegółów i wymogów technicznych oznacza że chyba nigdy się nie dowiemy o co chodzi. Na zlocie próbowałem grilować techników którzy doskonale wiedzieli o co chodzi, i mimo iż byli bardzo mili i skądinąd sporo się od nich dowiedziałem, to w tej kwestii nie chcieli puścić przysłowiowej pary z gęby. Moja hipoteza jest taka, że ten VALN to do automatycznego zbierania telemetrii z Funboksów służy - Orange ma naprawdę drobiazgowe dane z tego sprzętu, dostępne w czasie rzeczywistym.