Hola,
El jueves hice la portabilidad de Cable a FTTH. Ya tenía la primera versión del ASUS RT-AC68U y como el técnico me instalaba los equipos que quisiera (tenía todos los modelos en la furgoneta) le pedí un HGU Mitrastar para ponerlo en bridge completo y la intención era poner al ASUS a gestionar toda la red, pero si estáis como yo habréis visto que no funciona del todo ni con el firmware oficial, ni con Merlín, ni a mano mediante los scripts.
También he notado que aunque la TV funciona con el oficial o con Merlín, cuando se activa el proxy IGMP otros servicios de streaming como
Twitch se ven afectados y el stream va tirones, es imposible ver los vídeos. Y con el Mitrastar como router me pasa exactamente lo mismo.
En mi caso con un RT-AC68U v1 y un HGU Mitrastar la situación es la siguiente:
- Firmware Oficial con el perfil Triple-VLAN de Movistar: funciona la TV e Internet pero no funcionan los teléfonos ni los softphones como Mi Fijo 2.0 y servicios como Twitch van a tirones.
- Firmware Merlín con perfil Triple-VLAN de Movistar: misma situación que con el firmware oficial.
- Firmware Merlín con scripts: funciona Internet, el teléfono y los softphones pero no se ve la TV.
- HGU Mitrastar como router (con NAT y gestionando las VLAN) y ASUS RT-AC68U detrás con todas las funciones IGMP activadas: funciona todo pero Twitch y otros servicios de streaming van a tirones.
He estado el fin de semana estudiando el firmware, viendo las diferencias entre los scripts y el código que hay detrás del perfil Triple-VLAN que ha implementado ASUS en sus routers y he visto que:
- IGMPPROXY no está bien configurado en el perfil Triple-VLAN ni en los scripts
- Faltan/Sobran algunas reglas de filtrado en el Firewall
- Falta la configuración de dnsmasq para el DHCP de los decodificadores
- Para que se vea la TV se necesitan Zebra y RIPd.
He modificado los scripts y he añadido lo que me hacía falta. De momento me va perfecto: hay Internet, se ve la TV en el VLC y el decodificador, funciona el teléfono, Mi Fijo 2.0 y Twitch y el resto de streaming va fluido, no hay cortes, salvo momentos puntuales que me da que es por los típicos problemas de saturación/capado de Movistar...
Lo dejo aquí por si a alguien le sirve de ayuda.
Copiar y pegar salvo que se indique lo contrario:
/jffs/configs/dnsmasq.conf.add
Código:
dhcp-vendorclass=ial,IAL
dhcp-option=ial,6,172.26.23.3
dhcp-option=ial,240,:::::239.0.2.10:22222:v6.0:239.0.2.30:222227
/jffs/configs/igmpproxy.conf
Código:
quickleave
phyint vlan2 upstream ratelimit 0 threshold 1
altnet 172.0.0.0/8;
phyint br0 downstream ratelimit 0 threshold 1
phyint ppp0 disabled
phyint vlan6 disabled
phyint vlan3 disabled
/jffs/configs/ripd.conf
Código:
hostname RT-AC68U
password zebra
debug rip events
debug rip packet
router rip
version 2
network vlan2
passive-interface vlan2
log file /tmp/ripd.log
log stdout
/jffs/configs/zebra.conf
Código:
hostname RT-AC68U
password zebra
enable password zebra
log file /tmp/zebra.log
/jffs/scripts/firewall-start
Código:
#!/bin/sh
logger "[firewall-start] Estableciendo reglas para $1"
iptables -A INPUT -i ppp0 -s 10.0.0.0/255.0.0.0 -j DROP
iptables -A INPUT -i ppp0 -s 172.16.0.0/255.255.15.0 -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A INPUT -i vlan2 -p icmp --icmp-type 8 -j DROP
iptables -A INPUT -i vlan2 -s 172.16.0.0/255.255.15.0 -j ACCEPT
iptables -A INPUT -p 2 -d 224.0.0.0/4 -j ACCEPT
iptables -A INPUT -p udp -d 224.0.0.0/4 ! --dport 1900 -j ACCEPT
iptables -A FORWARD -p udp -d 224.0.0.0/4 -j ACCEPT
iptables -A FORWARD -o vlan2 ! -i br0 -j DROP
iptables -A INPUT -i vlan3 -p icmp --icmp-type 8 -j DROP
iptables -A INPUT -i vlan3 -s 10.31.255.134/255.255.255.255 -j ACCEPT
iptables -A FORWARD -o vlan3 ! -i br0 -j DROP
exit 0
/jffs/scripts/nat-start (sustituir MOVISTAR_TV_IP por el valor obtenido al seguir el tutorial)
Código:
#!/bin/sh
MOVISTAR_TV_IP="10.XX.XX.XX"
# Habilita NAT en VLAN3 (VoIP)
iptables -t nat -A POSTROUTING -o vlan3 -j MASQUERADE
# Habilita NAT en VLAN2 (IPTV)
iptables -t nat -A PREROUTING -d $MOVISTAR_TV_IP -j VSERVER
iptables -t nat -A POSTROUTING -o vlan2 ! -s $MOVISTAR_TV_IP -j MASQUERADE
# Deshabilita Reverse Path Filtering en VLAN2 (IPTV)
/bin/echo 0 > /proc/sys/net/ipv4/conf/vlan2/rp_filter
# Deshabilita Reverse Path Filtering en br0 (¿Switch y/o WAN?)
/bin/echo 0 > /proc/sys/net/ipv4/conf/br0/rp_filter
exit 0
/jffs/scripts/services-start (sustituir MOVISTAR_TV_IP y los puertos "0t 7t" por los valores obtenidos al seguir el tutorial)
Código:
#!/bin/sh
MOVISTAR_TV_IP="10.XX.XX.XX"
MOVISTAR_TV_MASK="255.192.0.0"
MOVISTAR_TV_GW="10.64.0.1"
# Configura el switch para IPTV (VLAN2) con las interfaces obtenidas de VLAN6 usando robocfg show
robocfg vlan 2 ports "0t 7t"
# Añade VLAN2 en puerto WAN
vconfig add eth0 2
# Asiga IP a VLAN del router
ifconfig vlan2 $MOVISTAR_TV_IP netmask $MOVISTAR_TV_MASK up
# Añade la ruta de Movistar+
ip route add to 172.26.0.0/16 via $MOVISTAR_TV_GW
sleep 30
# Lanza IGMPPROXY
/usr/sbin/igmpproxy /jffs/configs/igmpproxy.conf
# Lanza Zebra
/usr/sbin/zebra -d -f /jffs/configs/zebra.conf
# Lanza RIPd
/usr/sbin/ripd -d -f /jffs/configs/ripd.conf
exit 0
/jffs/scripts/wan-start (sustituir IP_VLAN3, VOIP_GATEWAY y los puertos "0t 7t" por los valores obtenidos al seguir el tutorial)
Código:
#!/bin/sh
IP_VLAN3="10.XX.XX.XX"
VOIP_GATEWAY="10.XX.XX.XX"
MASK_VLAN3="255.255.224.0"
VOIP_DEST="10.31.255.128"
MASK_DEST="255.255.255.224"
sleep 10
# Configura el switch para VoIP con las interfaces obtenidas de la VLAN6 usando robocfg show
robocfg vlan 3 ports "0t 7t"
# Añade VLAN3 en puerto WAN
vconfig add eth0 3
# Asigna IP a VLAN del router
ifconfig vlan3 $IP_VLAN3 netmask $MASK_VLAN3 up
# Añade rutas VoIP
route add -net $VOIP_DEST gw $VOIP_GATEWAY netmask $MASK_DEST vlan3
udhcpc -i vlan3 -p /var/run/udhcpc1.pid -s /tmp/udhcpc -b
exit 0
Sólo lo he probado con el último firmware Merlín estable (versión 380.66) que salió hace unos días.
Un saludo.