PPPoE con gentoo y Movistar FTTH y OTN Huawei HG8240 (Internet, VoIP, IPTV)

From Luniwiki
Jump to: navigation, search

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

--Daniel Simao 19:17 21 feb 2012 (UTC)