Buenas nandex
A ver, un pequeño resumen porque no podré ponerme hasta el lunes ya, cuento rápidamente luces y sombras
No sé el resto de modelos, pero la configuración por web es bastante limitada y tediosa, eso último opinión personal. La mayoría de los ajustes no pueden hacerse por la interfaz Web debido a que por diferentes matices no permite especificar algunas cuestiones importantes. Todo aquello que no puede hacerse por la interfaz Web se requiere hacerlo manualmente por Shell.
Algunas nociones a tener claras antes de nada:
El Router en cuestión posee dos interfaces Ethernet, llamadas eth0 aka "lan" y eth1 aka "wan". Cuando creamos un marcado PPPoE, este crea como es habitual una interfaz virtual, que vamos a llamar pppoe. Esto puede variar de modelos, fabricantes.... pero espero intentar no confundir cundo hablo de WAN si es a la conexión PPPoE o a eth1. Es decir, la conexión PPPoE es una interfaz Virtual que hace uso de la interfaz física eth1. Desde el punto de vista del Router son dos interfaces diferentes.
1º. Es necesario especificar datos IP correctos a la interfaz eth1. Esto no lo permite... lo permite si configuras WAN como IP, pero no si levantas una conexión PPPoE. Sí, la conexión PPPoE recibe los datos IPs, pero el puerto físico (no la conexión PPPoE que es una interfaz virtual) no se puede. Esto requiere por ende hacerlo de forma externa.
2º. Rutas.... las rutas son necesarias y son básicas. Y sí, se pueden añadir Rutas estáticas. No obstante, al menos en este modelo, no se puede escoger una interfaz física concreta para ellas. Es decir, que si se crean, estas son para la interfaz WAN por defecto (que será la conexión PPPoE, no el puerto físico). Por el mismo motivo que el punto primero, tenemos que hacerlo de forma externa.
3º. Enmascaramiento... exactamente lo mismo, se pueden crear enmascaramientos, pero no escoger la interfaz física... los hace sobre la conexión PPPoE...
4º. IGMP Proxy... exactamente lo mismo. IGMP Proxy se levanta sobre la interfaz PPPoE, pero el tráfico IPTV no viene desde PPPoE (Internet), sino desde el HGU, que se accede por eth1. A sí que no nos vale, otro problema a solucionar.
5º. Servidor DNS alternativo... no he rebuscado enormemente por la interfaz web porque potencialmente es posible que se pueda con el control de filtros o de algún otro modo, pero no se podría añadir de todos modos el Option240. Así que de nuevo lo tenemos que hacer de forma externa.
6º- RTSP... Houston, tenemos un problema.
------------
Ya pondré con más tiempo todo, pero analizando los puntos anteriores, se requiere obligatoriamente configuración manual por medio de la Shell. Para que esto tenga sentido debemos de permitir de algún modo que el ROuter ejecute el código al iniciarse, de lo contrario no es útil... te imaginas tener que teclear y teclear cada vez que reinicias?? No gracias.
Ubiquiti ha deshabilitado esta opción en estos modelos, curiosamente lo permite con los EdgeRouter... De forma nativa no podemos hacerlo. Por suerte no está todo perdido, y gracias a un pequeño paquete que podemos instalar por shell, nos otorga la posibilidad de poder ejecutar tantos scripts como queramos al inicio. No me detengo ahora en enlaces, códigos y otros, es solo un resumen de momento.
Solucionado el problema por tanto del poder crear scripts, el resto es poner en orden todo lo necesario. Hablo de varios pero puede ser un solo script.
1º. Un script para añadir la configuración que necesitamos al servidor DHCP del Router (dnsmasq). Por suerte el Router añade a la configuración de dnsmasq todo lo que esté en una carpeta concreta, con lo que solo tenemos que crear en tiempo de ejecución el archivo. Ahí ponemos simplemente que vamos a usar un IDVendor [IAL] al que los clientes les vamos a asignar un servidor DNS en particular y un Option240. Así que una vez creado se reinicia el servidor DHCP y listo.
2º. Un script para configurar los datos IPs de la interfaz eth1 (depende del modelo puede ser otra interfaz diferente, en mi caso WAN es eth1), se le asigna IP, máscara. Con esto pasamos a añadir las rutas estáticas. Y para terminar, en ese mismo script lo he usado para levantar IGMP Proxy... como he dicho este lo puedes habilitar en la interfaz Web, pero solo lo habilita para PPPoE, eso no nos vale de nada. Así que el mismo script crea un pequeño archivo de configuración e invoca el proceso que se hace cargo de igmp proxy.
3º. Un script para contener diferentes reglas que puedan ser necesarias para iptables... como mínimo el enmascaramiento.
------
Ok, hasta aquí todo funciona perfectamente, lo conecté pensando que estaba todo y... casi funcion todo. Llegados a este punto todo funciona como debería. La interfaz eth1 se configura bien, las rutas se añaden bien, el servidor DHCP asigna perfectamente los datos al deco e IGMP Proxy funcionando en la interfaz adecuada.
Entonces solo hace falta un archivito a copiar y listo? Nop, me temo que no, creía que estaba todo pero no... es más, creo que la primera vez funcionó tal cual pero tengo ya dudas.
Funcionan las cadenas por supuesto, funciona VOD (lo que he podido comprobar), la guía... en principio funciona todo exceptuando el time shift y no he comprobado 7UD. No he tenido mucho tiempo de revisarlo todo, pero estoy bastante convencido de que es un problema con RTSP.
RTSP es un protocolo de transmisión de streams, y es uno de esos "maravillosos" protocolos que no son amigables con NAT... los Router si quieren funcionar bien con ellos, requieren de "ayudantes" para ello. El Router en cuestión posee unos cuantos ayudantes integrados, incluso habilitados por defecto... pero no el ayudante de RTSP. He mirado en toda la firmware para ver si quizás no estaba cargado pero si existía... y no, no está en la firmware.
Llegado a este punto estamos en complicaciones importantes. Si realmente es debido a esto, y tiene toda la pinta que sí, las opciones son limitadas:
1º. Ideal, buscar un módulo compatible (quizás en ddwrt o en alguna otra suite, incluso intentar sacarlo de los edgeRouter que sí está presente) y cargarlo. Esta opción sería rápida y efectiva... si el módulo compilado funciona, claro
2º. Hacer un remapeo de puertos brutal o DMZ hacia el deco para que reciba el tráfico RTSP... no es buena idea, no adecuado, no gusta.
3º. Intentar compilar el módulo para unifi... problema?? Pues para empezar que no veo lugar donde Ubiquiti haya publicado el código fuente del kernel, y sin él no se puede asegurar que funcione como es debido...
--------
La semana que viene intentaré asegurar de que es ese el problema, y si lo es intentaré probar algunos módulo ya compilados... pero que funcione o no es más suerte que otra cosa.
Indicar que ubiquiti ya le pasó algo similar con EdgeRouter y terminaron incluyéndolo internamente el módulo, en unifi, o al menos este modelo, no está presente. Igual está presente en otros, no lo sé, pero en este no. Puedo intentar ver una versión más vieja u otro modelo por si por casualidad lo incluyeron en algún momento, pero poco más.
Con el kernel también podríamos compilarlo, al menos intentarlo... es más, ubiquiti tiene obligación de suministrar el código GPL del kernel, en teoría si se solicita lo tienen que dar. Eso sí... a saber cuanto tiempo tardarían...
Hasta aquí por ahora!
Saludos.
Edito: He compilado un módulo de un helper para rtsp, no obstante no he podido usar el kernel 4.4.60 de ubi, sino el kernel 4.4.60 oficial con el config de ubi. El módulo se carga correctamente pero no he podido probarlo, la semana que viene ya