Triple VLAN: Cómo configurar Movistar TV totalmente funcional en Ubiquiti
La guía definitiva para configurar la Triple VLAN de Movistar con UDM Pro/SE + ONT Huawei.

Regístrate en HDS+
Tutoriales y soporte sobre sistemas NAS, Redes, Docker y SelfHosting.
Sin SPAM. Es gratuito. Ten acceso a todo el contenido.
Antes de nada decir que esta guía ha sido elaborada íntegramente por el compañero @12bitlog en su blog de Medium recientemente, tras haber mantenido una pequeña discusión con el en un hilo de GitHub, decidió crear una guía detallada. Todo el agradecimiento hacia su persona.
Yo, solamente hago eco para que llegue al mayor número de personas posible ya que no es posible utilizar Movistar TV de forma oficial en Ubiquiti.
Si además tienes teléfono fijo, también tendrás que configurar la ONT Huawei tal y como explico en el artículo enlazado. Con todo esto, tendrás configurada correctamente la Triple VLAN de Movistar en nuestro equipamiento Ubiquiti.
Introducción

El objetivo de esta guía es configurar el UDM Pro/SE para que funcione completamente con la IPTV de Movistar, prescindiendo del router facilitado por el operador (HGU) y sustituyéndolo por una ONT de Huawei pero manteniendo todas las funcionalidades del router original (Guía de canales, VOD, Últimos 7 días, etc). Para ello tenemos que utilizar un paquete llamado udm-iptv.
Prerequisitos
Para que la configuración funcione correctamente hay que cumplir con los siguientes prerequisitos:
- Sustituir el router de Movistar por una ONT de Huawei: el router de Movistar entrega ya el tráfico separado sin los tags de la VLAN, por lo que queremos una ONT que nos entregue la información con sus correspondientes VLANs (aparte de que necesitaremos gestionar el VOD desde la UDM Pro/SE).
- Instalar el paquete
upm-iptv
. Esto se requiere porque el UDM Pro/SE sólo admite una VLAN por la conexión WAN, que es lo que va a gestionar el paquete udm-iptv. El script de instalación delupm-iptv
instala también un paquete llamado igmpproxy, que gestiona la redirección del tráfico IPTV (UDM Pro/SE ha incluído recientemente soporte IGMP de forma nativa pero el script delupm-iptv
requiere el paquete igmpproxy). - Una máquina virtual de Linux para compilar el Kernel de Linux de la UDM Pro/SE y los módulos RTSP (para el funcionamiento de VOD, U7D en el desco), o crear una regla de firewall para permitir el tráfico de los servidores de VOD.
- Solicitar a Ubiquiti el código fuente del Kernel de nuestro UDM Pro/SE a través del email opensource-requests@ui.com.
Instalación de los paquetes
En la página del paquete udm-iptv se detallan las instrucciones, pero básicamente hay que ejecutar el siguiente comando (que instalará también el igmpproxy) en nuestro UDM Pro/SE a través de SSH:
sh -c "$(curl https://raw.githubusercontent.com/fabianishere/udm-iptv/master/install.sh -sSf)"
Configuración del PPPoE de Movistar en el UDM Pro SE

Tutorial para configurar Internet con Movistar y nuestro Ubiquiti
Antes de nada, tendremos que configurar la conexión a Internet con Movistar mediante PPPoE, y lo haremos de la siguiente manera:
- Ir al Menú Internet de la página principal y seleccionar la conexión primaria (
Primary (WAN1)
):

- Configurar la conexión de la forma siguiente:

Llegados a este punto ya tendremos conexión a Internet. Ahora falta la parte "complicada" así que vamos a ello.
Configurar la red para la IPTV
- Ir al Menú Networks de la página principal y pinchar en
Create New Network
- Crear una red con los siguientes parámetros:

Donde:
VLAN ID
es el ID de la VLAN donde queremos poner la IPTV (3 en nuestro caso).Network Type
seráStandard
.Host Address
yNetmask
son los parámetros de red que alojará el IPTV. En nuestro caso hemos seleccionado una subred 192.168.3.1/24 para ser consistentes con la denominación de la VLAN.- Muy importante habilitar
IGMP Snooping
yMulticast
para que los paquetes de la IPTV no inunden toda la red (los switches intermedios también deberían tener habilitada esta funcionalidad).
Para finalizar, asignaremos esta VLAN creada al puerto Ethernet del UDM Pro/SE donde hemos conectado nuestro descodificador de Movistar TV:

Configuración del paquete udm-iptv
Edición del fichero de configuración
En el primer paso, lo hemos instalado, pero ahora tenemos que editar el fichero de configuración que se encuentra en: /etc/udm-iptv.conf
y dejarlo tal cual se detalla a continuación:
# Interface on which IPTV traffic enters the router
IPTV_WAN_INTERFACE="eth8"
# ID of VLAN which carries IPTV traffic (use 0 if no VLAN is used)
IPTV_WAN_VLAN="2"
# Name of the IPTV VLAN interface
IPTV_WAN_VLAN_INTERFACE="iptv"
# IP ranges from which the IPTV traffic originates (separated by spaces)
IPTV_WAN_RANGES="172.26.0.0/16 239.0.0.0/8 10.0.0.0/8 239.0.0.0/16 172.0.0.0/8 0.0.0.0/1"
# Set ip static IP instead of using
IPTV_WAN_DHCP="false"
# DHCP options to send when requesting an IP address
IPTV_WAN_DHCP_OPTIONS=""
# MOVISTAR'S STATIC IPTV (unique to each client)
IPTV_WAN_STATIC_IP="10.160.XX.XX/9"
# Static Routes (TV guide, channel icons, etc. need to be configured manually)
IPTV_STATIC_ROUTES="10.128.0.0/9 172.23.96.0/21 172.26.22.0/26 172.26.23.0/27 172.26.80.0/21"
# LAN interfaces on which IPTV should be made available
IPTV_LAN_INTERFACES="br3"
# Disable quickleave for igmpproxy
IPTV_IGMPPROXY_DISABLE_QUICKLEAVE="false"
# Enable debugging for igmpproxy
IPTV_IGMPPROXY_DEBUG="false"
IPTV_WAN_DHCP_OPTIONS=""
IPTV_IGMPPROXY_PROGRAM="igmpproxy"
IPTV_IGMPPROXY_IGMP_VERSION=""
Donde:
IPTV_WAN_INTERFACE
es la interfaz por donde entra la señal de IPTV (e Internet) al router, en nuestro caso la WAN1 (puerto 9).IPTV_WAN_VLAN
es la VLAN de la IPTV.IPTV_WAN_RANGES
es el rango de IPs desde donde se origina el tráfico IPTV, que están obtenidas de este enlace.IPTV_WAN_DHCP
lo ponemos afalse
porque Movistar proporciona al decodificador una dirección IP estática.IPTV_WAN_STATIC_IP
es la dirección estática proporcionada por Movistar a nuestro decodificador, en nuestro caso10.160.XX.XX/9
IPTV_STATIC_ROUTES
son las rutas estáticas de Movistar para las diferentes funciones auxiliares (Guía, iconos de canales, etc.).IPTV_LAN_INTERFACES
es la interfaz que hemos definido en el UDM Pro para la IPTV, en nuestro casobr3
(br seguido del número de VLAN que hemos especificado, se puede verificar con unnetstat -nr
IPTV_IGMPPROXY_DISABLE_QUICKLEAVE
dejarlo afalse
IPTV_IGMPPROXY_DEBUG
dejarlo afalse
salvo que necesitemos debugear.
systemctl restart udm-iptv
Parcheo del fichero udm-iptvd para gestionar rutas estáticas del fichero de configuración
Para que la variable IPTV_STATIC_ROUTES
del fichero de configuración sea tenida en cuenta es necesario hacer lo siguiente:
- Editar el fichero:
/usr/lib/udm-iptv/udm-iptvd
- En la función
_network_setup()
, debajo delecho “Creating static routes (if necessary)”
(línea 74) hay que sustituir este código (fuente: lista discusión udm-iptv):
echo "Creating static routes (if necessary)"
for range in $IPTV_STATIC_ROUTES; do
ip route add "$range" dev "$target"
done
}
Por este otro:
echo "Creating static routes (if necessary)"
GW=$(route -n | awk '/iptv/ { print $1 }' | sed 's/.$/1/')
for range in $IPTV_STATIC_ROUTES; do
ip route add "$range" via $GW dev "$target"
done
}
Comandos útiles para verificar la configuración del paquete udm-iptv
Los siguientes comandos son de gran utilidad para verificar la configuración del udm-iptv:
dpkg-reconfigure -p medium udm-iptv
: configuración interactiva del paquete, aunque en nuestro caso vamos a tiro hecho.systemctl restart udm-iptv
: para reiniciar el udm-iptv después de cualquier cambio en el fichero de configuración.udm-iptv-diag
: para revisar los mensajes de error del udm-iptv.journalctl -u udm-iptv
: para revisar los mensajes de error del igmpproxy.- Para verificar que la conexión se ha establecido correctamente podemos ejectuar el comando
ip -4 addr show dev iptv
, lo que debería mostrar algo como lo siguiente:
31: iptv@eth8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
inet 10.160.XX.XX/9 scope global iptv
valid_lft forever preferred_lft forever
- Para ver las rutas creadas podemos ejecutar el comando
ip route list
10.128.0.0/9 dev iptv proto kernel scope link src 10.160.XX.XX
172.23.96.0/21 via 10.128.0.1 dev iptv
172.26.22.0/26 via 10.128.0.1 dev iptv
172.26.23.0/27 via 10.128.0.1 dev iptv
172.26.80.0/21 via 10.128.0.1 dev iptv
192.168.3.0/24 dev br3 proto kernel scope link src 192.168.3.1
192.168.5.0/24 dev br0 proto kernel scope link src 192.168.5.1
192.168.11.0/24 dev br11 proto kernel scope link src 192.168.11.1
192.168.144.1 dev ppp0 proto kernel scope link src 81.34.YY.YY
- Donde las líneas finalizadas en
dev iptv
son las rutas estáticas de Movistar. - El comando
netstat -nr
nos muestra la tabla de rutas, incluyendo las diferentes interfaces. - El comando
ip route list
nos muestra de forma más compacta las rutas definidas. - Para capturar el tráfico de la VLAN X en la interfaz Y podemos ejecutar el comando
tcpdump -i Y -nn -e vlan X
- Para capturar el tráfico multicast podemos ejecutar el comando
tcpdump -n "broadcast and multicast"
Configuración de rutas estáticas de forma manual
Si no queremos editar el fichero que se encarga de leer las rutas estáticas del fichero de configuración podemos crearlas de forma manual mediante los comandos siguientes:
GW=$(route -n | awk '/iptv/ { print $1 }' | sed 's/.$/1/')
ip route add 172.23.96.0/21 via $GW
ip route add 172.26.22.0/26 via $GW
ip route add 172.26.23.0/27 via $GW
ip route add 172.26.80.0/21 via $GW
Se trata de una configuración adicional que vemos que se ha utilizado en un hilo del foro de bandaancha, aunque no sabemos muy bien su impacto. Para activarla hay que seguir los siguientes pasos:
- Ir a
Networks
y seleccionar laIPTV-LAN
- En
Custom DHCP Options
pinchar enApply Options
- En el diálogo que aparece pinchar en
Add New
- Poner los valores siguientes:
Enter DHCP Name: DHCP-Movistar
Type: text (ya aparece por defecto)
Text: :::::239.0.2.10:22222:v6.0:239.0.2.30:22222
Code: 240
Configuración del descodificador de Movistar TV
Para que el descodificador de Movistar funcione correctamente debemos configurarlo para que opere en la VLAN que hemos definido en el UDM Pro/SE.
Para ello hay que hacer lo siguiente:
- Entrar en el menú de configuración del decodificador. Para ello hay que pulsar repetidamente el botón del muñequito mientras se inicia el descodificador.
- Introruciremos los siguientes parámetros:
Dirección IP: 192.168.3.200
Máscara de Subred: 255.255.255.0
Pasarela: 192.168.3.1
Dirección IP del OPCH: 239.0.2.30:22222
DNS Primario: 172.26.23.3
Donde:
Dirección IP
: es la dirección estática que hemos asignado al descodificador en el UDM Pro/SE.Pasarela
: es la dirección del gateway en la VLAN donde hemos puesto el descodificador.- El resto de parámetros son los que vienen por defecto y que no debemos tocar.
Configuración del VOD
La configuración del VOD es necesaria por la forma de trabajar de Movistar (y de los proveedores de IPTV en general), en que se realiza una petición de video bajo demanda a un servidor del proveedor, pero el video es servido desde otro servidor distinto al que se le hace la petición, por lo que hay que hacer un NAT dinámico (netfilter) para que se permita el tráfico desde ese servidor que proporciona el vídeo (que no sabemos a priori cual es). Todo esto queda ilustrado en el siguiente diagrama:

Para que el VOD funcione en el UDM Pro SE tenemos dos opciones:
- Compilar los módulos de RTSP con los fuentes del kernel del UDM Pro SE e instalarlos.
- Obviar el netfilter y crear una regla de firewall para permitir pasar todo el tráfico MPEG2/TS proveniente de los servidores de Movistar al UDM Pro (no recomendamos este método por ser más inseguro y exponer al UDM Pro).
Hay que decir que el método más seguro y efectivo es la de compilar los módulos. Esto permite además, disponer de varios descos funcionando de forma simultánea en casa.
Compilación e instalación de los módulos del RTSP
Preparación del entorno
- Lo primero de todo creamos una VM de Linux, p.ej. Ubuntu 18.04 arquitectura AMD.
- Una vez creada hacemos (para poder acceder por ssh):
sudo su -
apt update
apt install -y openssh-server
- Instalamos los paquetes requeridos:
apt install libncurses-dev gawk flex bison openssl libssl-dev gcc-aarch64-linux-gnu
- Da un problema al hacer el make porque no lo tiene, por lo que hacemos:
apt install -y make
Parcheo y compilación de los módulos
El módulo nf_nat_rtsp
por defecto no funciona con Movistar; si observamos el tráfico mediante el dmesg
veremos una traza como la siguiente (si hemos compilado los módulos con la opción de debug):
[ 3212.119830] nf_nat_rtsp v0.7 loading
[ 3274.477380] conntrackinfo = 2
[ 3274.483501] IP_CT_DIR_REPLY
[ 3274.553324] IP_CT_DIR_REPLY
[ 3274.560429] found a setup message
[ 3274.560431] tran='Transport: MP2T/H2221/UDP;unicast;client_port=27473'
[ 3274.560434] lo port found : 27473
[ 3274.560436] udp transport found, ports=(0,27473,27473)
[ 3274.560441] expect_related 0.0.0.0:0-10.160.XX.XX:27473
[ 3274.560443] NAT rtsp help_out
[ 3274.565217] IP_CT_DIR_REPLY
[ 3274.571049] IP_CT_DIR_REPLY
[ 3284.510360] teardown handled
[ 3284.514298] IP_CT_DIR_REPLY
Pero lo que deberíamos observar (al hacer una solicitud de VOD en el decodificador) en su lugar es algo como esto:
[ 4803.795715] nf_nat_rtsp v0.7 loading[
4952.440314] conntrackinfo = 2
[ 4952.448843] IP_CT_DIR_REPLY
[ 4952.506634] IP_CT_DIR_REPLY
[ 4952.512640] found a setup message
[ 4952.512643] tran='Transport: MP2T/H2221/UDP;unicast;client_port=27557'
[ 4952.512646] lo port found : 27557
[ 4952.512648] udp transport found, ports=(0,27557,27557)
[ 4952.512652] expect_related 172.26.83.37:0-10.160.XX.XX:27557
[ 4952.512657] NAT rtsp help_out
Con las siguientes cabeceras de transporte entre el NAT rtsp help_out
[ 4952.512659] hdr: len=9, CSeq: 3
[4952.512661] hdr: len=25, User-Agent: MICA-IP-STB
[ 4952.512663] hdr: len=53, Transport: MP2T/H2221/UDP;unicast;client_port=27557
[ 4952.512664] hdr: Transport
[ 4952.512667] stunaddr=10.160.XX.XX (auto)
[ 4952.512676] using port 27557
[ 4952.512683] rep: len=53, Transport: MP2T/H2221/UDP;unicast;client_port=27557
[ 4952.512685] hdr: len=14, x-mayNotify:
Y el IP_CT_DIR_REPLY
Buscando por Internet encontramos este post en Google Groups de una persona con un problema similar, donde se apunta a este parche que contiene las modificaciones necesarias para que el nat_helper funcionara.
NOTA: en el post origina se hace mención a otra versión del parche que es ligeramente diferente, porque en vez de declarar el char* rtsp_buffer
dentro de la función lo hace globalmente como un static char rtsp_buffer
, aunque el funcionamiento es el mismo.
Para recompilar los módulos debemos hacer lo siguiente:
- Solicitamos el código fuente del UDM Pro/SE a Ubiquiti.
- Descomprimimos el código fuente en un directorio, no hace falta compilarlo porque viene ya compilado.
- Descargamos el módulo del RTSP:
git clone https://github.com/maru-sama/rtsp-linux.git
- Descargamos el parche de este enlace y lo guardamos en un fichero (p.ej.
rtsp.patch
). - Aplicamos el parche mediante el comando
patch < rtsp.patch
(el parche sabe a qué fichero aplicarse) o (patch nt_nat_rtsp.c < rtsp.patch
). - Nos movemos al directorio del módulo y lo compilamos (fuente: foro tweakers):
- Importante compilarlo para arquitecturaarm64
.
-udm-kernel
es el directorio donde hemos descomprimido previamente el kernel.
- Para la instalación definitiva recompilar eliminando la opcióndebug
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- KERNELDIR=../udm-kernel EXTRAVERSION="-al-linux-v10.2.0" LOCALVERSION= debug
- Por último, subimos los dos módulos compilados (
nf_conntrack_rtsp.ko
ynf_nat_rtsp.ko
) al UDM SE p.ej. al directorio/tmp
mediante CyberDuck o similares a través de SFTP.
Módulos compilados
Si tienes un UDM SE con versión de Kernel 4.19.152-ui-alpine, pongo a disposición de descargar los módulos ya compilados y así agilizar el proceso. Para conocer la versión de Kernel iniciamos sesión en nuestro UDM y ejecutamos: uname -r
.
Prueba de los módulos
Para probar los módulos recién compilados, nos vamos al directorio /tmp
y tendremos que cargarlos con los siguientes comandos:
insmod nf_conntrack_rtsp.ko
insmod nf_nat_rtsp.ko
A continuación verificamos que funciona el vídeo bajo demanda (VOD) en nuestro descodificador de Movistar TV. Si es así, lo hemos hecho todo bien. Podemos continuar.
Para extraer los módulos y preparar la instalación definitiva tendremos que ejecutar los siguientes comandos:
rmmod nf_nat_rtsp.ko
rmmod nf_conntrack_rtsp.ko
Instalación definitiva de los módulos
Para instalar los módulos definitivamente una vez verificados que funcionan correctamente, seguiremos los siguientes pasos:
- Copiamos los modulos al directorio de modulos del kernel.
cp nf_conntrack_rtsp.ko /lib/modules/4.19.152-ui-alpine/kernel/net/netfilter
cp nf_nat_rtsp.ko /lib/modules/4.19.152-ui-alpine/kernel/net/netfilter
- Ejecutamos
depmod -a
para recrear las dependencias. - Cargamos los módulos mediante los comandos:
modprobe nf_conntrack_rtsp
modprobe nf_nat_rtsp
Para que los módulos se carguen automáticamente con el arranque del UDM Pro SE tenemos que hacer lo siguiente:
- Ir al directorio
/etc/modules-load.d/
- Crear un fichero, p.ej.
rtsp.conf
y poner en su interior las siguientes líneas:
nf_conntrack_rtsp
nf_nat_rtsp
Crear una regla de firewall para permitir el tráfico.
Si no queremos compilar e instalar los módulos RTSP es preciso habilitar una regla especial en el UDM Pro/SE que redirija el tráfico proveniente de los servidores VOD de Movistar, dirigidos a la IP pública 10.160.XX.XX, a la dirección del descodificador 192.168.3.200.
Para ello creamos la siguiente regla con iptables mediante SSH:
iptables -t nat -I PREROUTING 1 -i iptv -p udp --dst 10.160.XX.XX -j DNAT --to 192.168.3.200
Donde:
- Ponemos el
-I PREROUTING 1
porque queremos que la regla se ejecute la primera de todas, aunque si la ponemos al final de la cadena como en el caso siguiente el VOD sigue funcionando correctamente. iptv
es la interfaz que hemos definido al comienzo de este proceso para la iptv.10.160.XX.XX
es la dirección IP que nos facilita Movistar para nuestro decodificador.10.168.3.200
es la IP local de nuestro descodificador (sustituir por la que corresponda).
Si queremos visualizar la regla podemos ejecutar el comando siguiente:
iptables -L PREROUTING -n -t nat --line-number
Y si queremos borrarla basta con ejecutar el comando:
iptables -t nat -D PREROUTING <NUMBER>
Donde se corresponde con el número de la regla obtenido mediante el comando anterior.
Cambios tras un upgrade del UniFi OS
Hay que tener en cuenta que tras actualizar la versión de UniFi OS a una próxima versión, se borrarán los siguientes elementos:
- El udm-iptv.
- Los módulos RTSP.
Por lo tanto tras una actualización de UniFi OS habrá que volver a instalar estos elementos. Lo que si permanecerá son los archivos de configuración. Así que recomiendo altamente deshabilitar la actualización automática del sistema.