PPPoE con gentoo y Movistar FTTH y OTN Huawei HG8240 (Internet, VoIP, IPTV)
Contents
Paquetes
emerge -av net-dialup/rp-pppoe emerge -av vconfig
Configuración de Movistar
Analizando los parámetros del router comtrend suministrado por telefónica, vemos que el router crea 3 redes virtuales la 2, la3 y la 6. Sobre la 2 llega imagenio, sobre la 3 pasan los datos de VoIP, y sobre la 6 pasan los datos PPPoE.
Interface Description Type Vlan8021p VlanMuxId ConnId Igmp NAT Firewall Remove eth0.2 ipoe_eth0.2 IPoW 4 2 N/A Enabled Enabled Disabled eth0.3 ipoe_eth0.3 IPoW 4 3 N/A Disabled Enabled Disabled ppp0.6 pppoe_eth0.6 PPPoE 1 6 N/A Disabled Enabled Enabled
PPPoE
La configuración esta en el archivo /etc/ppp/pppoe.conf, parametros modificados:
ETH=vlan6 USER=adslppp@telefonicanetpa DEMAND=no DNSTYPE=NOCHANGE DEFAULTROUTE=yes CONNECT_TIMEOUT=30 CONNECT_POLL=2 PING="." PIDFILE="/var/run/rp-pppoe.pid" SYNCHRONOUS=no CLAMPMSS=1412 LCP_INTERVAL=20 LCP_FAILURE=3 PPPOE_TIMEOUT=80 FIREWALL=NONE LINUX_PLUGIN=rp-pppoe.so
Ponemos la contraseña en el fichier /etc/ppp/pap-secrets
# Secrets for authentication using PAP # client server secret IP addresses "adslppp@telefonicanetpa" * "adslppp"
Si usamos el modulo pppoe en userzone, el uso de CPU es tan intenso, que el router no es capaz de mover más de 90Mps. Al usar el plugin, se gestiona como un modulo del kernel, y practicamente no usa CPU, pero no realiza el cambio de señalización de tamaño maximo de paquete MSS a 1412 bytes, y no funciona para los ordenadores enroutados. Este problema se puede solucionar con Iptables añadiendo la linea de FORWARD siguiente:
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -s 192.168.1.0/24 -o ppp0 -j TCPMSS --set-mss 1412
Vlans
Creamos la vlans 2, 3 y 6 sobre la interfaz eth0 , y que la interfaz se nombre vlanX /etc/conf.d/net.
config_eth0=( null ) vlans_eth0="2 3 6" vlans_eth0="set_name_type VLAN_PLUS_VID_NO_PAD" vlan2_name="vlan2" vlan3_name="vlan3" vlan6_name="vlan6"
La configuración de la vlan2 (IPTV) tiene una IP fija que nos ha atribuido movistar. Para conocerla, hay que mirar la configuración del router suministrado por movistar.
config_vlan2="10.2xx.xxx.xxx netmask 255.128.0.0 brd 10.255.255.255"
La configuración de la vlan3 (VoIP) es dada por DHCP
modules="dhclient" config_vlan3="dhcp" dhcpcd_vlan3="nogateway nodns nontp nosendhost nonis"
La configuración de la vlan6 sera mediante pppoe, por lo tanto no le configuramos su dirección IP.
config_vlan6=( null )
Levantamos pppoe, una vez configurado las interfaces, y lo cortamos antes de apagarlas.
postup(){ if [ ${IFACE} = "eth0" ] ; then /usr/sbin/pppoe-start fi } predown(){ if [ ${IFACE} = "eth0" ] ; then /usr/sbin/pppoe-stop fi }
Cuando la interfaz eth1 esta totalmente levantada (y por consecuente la vlan6, ejecutamos el comando pppoe-start. Y antes de eliminar la interfaz, paramos el pppoe.
ln -s /etc/init.d/net.lo /etc/init.d/net.eth0 rc-update add net.eth0 boot
Dhcp para la interfaz interna para el descodificador Movistar
El descodificador de Movistar se configura por DHCP Tenemos que proporcinarle el DNS de imagenio, y la opción 240 con los datos del OPCH. Lineas a dar al fichero dhcpd.conf
option ial code 240 = string; #Opción 240 que es de tipo text subnet 10.X.0.0 netmask 255.255.255.0 { # Rango de IP's de nuestra red imagenio en la que esta pinchado el descodificador range 10.X.0.20 10.XX.0.60; option domain-name-servers 172.26.23.3; #DNS de imagenio option routers 10.XX.0.1; #Pasarela de salida de la red interna imagenio option ial "':::::239.0.2.10:22222:v6.0:239.0.2.30:22222'"; #Opciones del OPCH }
RIP (Routing information protocol) pasivo de movistar
Telefoníca envia la información de enrutamiento de las vlan2 y 3 (de VoIP y IPTV) mediante el protocolo RIP. /etc/quagga/zebra.conf
hostname vega password XXXXXX enable password XXXXXX log file /var/log/ripd/zebra.log interface eth0 interface lo interface ppp0 interface vlan2 interface vlan3 interface vlan6 interface br0 interface eth2 ip forwarding ipv6 forwarding
/etc/quagga/ripd.conf
hostname ripd password XXXXXX log file /var/log/ripd/ripd.log router rip version 2 network vlan2 network vlan3 passive-interface vlan2 passive-interface vlan3
Añadimos el enroutado automatico al arranque
rc-update add ripd default
Cuando esta arrancado tenemos unas rutas parecidas a estas (puede cambiar dinamicamente por Movistar
# ip route default via XX.XX.XX.XX dev ppp0 default via 10.27.96.1 dev vlan3 metric 11 10.27.96.0/19 dev vlan3 proto kernel scope link src 10.27.97.212 10.31.255.128/27 via 10.27.96.1 dev vlan3 proto zebra metric 3 10.128.0.0/9 dev vlan2 proto kernel scope link src 10.248.252.85 XX.XX.XX.XX dev ppp0 proto kernel scope link src YY.YY.YY.YY 127.0.0.0/8 dev lo scope host 172.26.22.0/26 via 10.128.0.1 dev vlan2 proto zebra metric 3 172.26.22.56/29 via 10.128.0.1 dev vlan2 proto zebra metric 3 172.26.23.0/27 via 10.128.0.1 dev vlan2 proto zebra metric 3 172.26.23.4 via 10.128.0.1 dev vlan2 proto zebra metric 3 172.26.23.5 via 10.128.0.1 dev vlan2 proto zebra metric 3 172.26.23.23 via 10.128.0.1 dev vlan2 proto zebra metric 3 172.26.23.24 via 10.128.0.1 dev vlan2 proto zebra metric 3 172.26.23.30 via 10.128.0.1 dev vlan2 proto zebra metric 3 172.26.80.0/21 via 10.128.0.1 dev vlan2 proto zebra metric 3 192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.100
Imagenio y IGMPProxy
Tenemos que redirigir que acceptar el trafico imagenio, y desabilitar el rp_filter para que los paquetes IGMP puedan ser leidos por el descodificador.
echo "1" > /proc/sys/net/ipv4/ip_forward echo "0" > /proc/sys/net/ipv4/conf/vlan2/rp_filter ipTV=`ip addr show dev vlan2 | grep "inet " | awk '{print $2}' | cut -d '/' -f 1` iptables -I INPUT -d 224.0.0.0/4 -j ACCEPT iptables -I OUTPUT -d 224.0.0.0/4 -j ACCEPT iptables -I FORWARD -d 224.0.0.0/4 -j ACCEPT iptables -t nat -A POSTROUTING -o vlan2 -s 192.168.1.0/24 -j SNAT --to-source $ipTV
Al tener ya el trafico IGMP correctamente enroutado, hay que poner el proxy igmp /etc/igmpproxy.conf
##------------------------------------------------------ ## Enable Quickleave mode (Sends Leave instantly) ##------------------------------------------------------ quickleave ##------------------------------------------------------ ## Configuration for eth0 (Upstream Interface) ##------------------------------------------------------ phyint vlan2 upstream ratelimit 0 threshold 1 altnet 172.0.0.0/8 ##------------------------------------------------------ ## Configuration for eth1 (Downstream Interface) ##------------------------------------------------------ phyint br0 downstream ratelimit 0 threshold 1 ##------------------------------------------------------ ## Configuration for eth2 (Disabled Interface) ##------------------------------------------------------ phyint eth1 disabled phyint ppp0 disabled phyint vlan6 disabled phyint vlan3 disabled
Añadimos igmproxy al arranque
rc-update add igmpproxy default
Referencias
- PPPoE Client
- HOW-TO: Ver Imagenio en Linux
- How to configure "full cone" NAT using iptables
- Linux: Multicast Routing and IGMP settings
- Gentoo Linux amd64 Handbook: Network configuration
- Movistar Fusión Fibra + TV + VoIP con router Linux
--Daniel Simao 19:17 21 feb 2012 (UTC)