domingo, 20 de diciembre de 2015

Configuración túnel 6to4 en OPENWRT para tener IPv6 en casa

Actualmente los ISP que operan en España no ofrecen IPv6 de forma nativa, y dado que ya se han acabado las direcciones IPv4, he estado mirando para poder obtener IPv6 en casa e irnos familiarizando con el entorno que nos espera próximamente.

La forma de realizarlo es usando un router antiguo de los que tengo rodando por casa, y darle utilidad de nuevo, gracias a OPENWRT. Una vez instalado el firmware al route, sólo nos queda empezar la configuración del túnel 6to4 que va a ser el método usado para poder acceder a IPv6.

El túnel lo vamos a crear con Tunnel Broker que nos ofrece crear hasta 5 túneles de forma gratuita. Una vez montado el túnel desde nuestro router con OPENWRT hacia Tunnel Broker, debemos expandir la subred IPv6 hacia nuestra red local.

1.-Lo primero que se va hacer es instalar el firmware OPENWRT, para ello, nos vamos a la web oficial de OPENWRT, y descargamos el firmware para nuestro router antiguo(en mi caso es el Comtrend HG-536+)


2.-Una vez instalado el firmware correspondiente a nuestro modelo de router, pasamos a configurarlo. En nuestro caso, lo hemos configurado conectándolo en modo cliente a la red Wifi de casa(se puede hacer por comandos, o por la interfaz gráfica LUCI)

El modelo de red que vamos a montar es el siguiente:



3.-Para configurar el túnel 6to4, previamente tenemos que crearnos una cuenta en Tunnel Broker, para ello, podemos seguir el manual paso a paso siguiente.


4.-Por fin, podemos entrar a nuestro router, y empezar a configurar el túnel, para ello, antes que nada debemos instalar los siguientes paquetes:
root@ipv6:~# opkg update && opkg install ip6tables kmod-ip6tables && fw restart


5.-Una vez instalados los paquetes, ya se puede configurar IPv6 de forma nativa en nuestro router. Dado que nuestro proveedor no ofrece dicha opción, debemos seguir configurando nuestro router, esta vez, para configurar el túnel 6to4, para ello:
root@ipv6:~# opkg update && opkg install 6in4


6.-(OPCIONAL)Para editar más facilmente, los ficheros de configuración, hemos instalado el editor de texto "nano":
root@ipv6:~# opkg update && opkg install nano


7.-Vamos a configurar el túnel 6to4 de forma dinámica, gracias a los parámetros obtenidos de Tunnel Broker, Para ello, editamos el fichero de configuración /etc/config/network con la siguiente información:


8.-Ahora debemos editar el firewall, para que permita el tráfico del túnel, que va a ser sobre la interfaz "wan" y el protocolo 41, para ello, se debe modificar el fichero /etc/config/firewall (SÓLO AÑADIR LO ESCRITO EN NEGRITA):
config 'zone' option 'name' 'wan' option 'network' 'wan henet' option 'input' 'REJECT' option 'forward' 'REJECT' option 'output' 'ACCEPT' option 'masq' '1' config rule option src wan option proto 41 option target ACCEPT


9.-Para activar el enrutado de IPv6, se debe añadir un dirección IPv6 estática a la interfaz "lan" para que haga de puerta de enlace, para ello, hay que editar el fichero /etc/config/network(AÑADIR SÓLO TEXTO EN NEGRITA):
config 'interface' 'lan'
        option 'type' 'bridge'
        option 'ifname' 'eth1'
        option 'proto' 'static'
        option 'ipaddr' '192.168.1.1'
        ...
        option 'ip6addr' '2001:470:1f13:6b5::1/64'


10.-Ahora debemos activar el bit de forwarding, para que nuestro router reenvíe el tráfico que no va para él, para ello, se debe modificar el fichero /etc/sysctl.conf y descomentar la línea (#net.ipv6.conf.all.forwarding=1), para ello simplemente debemos quitar la almohadilla:
net.ipv6.conf.all.forwarding=1

Seguidamente se debe reiniciar el servicio sysctl para aplicar los cambios:
root@ipv6:~# /etc/init.d/sysctl restart

Para verificar que se ha aplicado correctamente la modificación, se puede ver con la siguiente orden, y nos debe devolver 1:
root@ipv6:~# cat /proc/sys/net/ipv6/conf/all/forwarding


PROPAGAR SUBRED IPv6 A LA LAN
En IPv6 no tenemos que hacer NAT, entonces las direcciones IPv6 son globales, además utilizando ICMPv6 es posible que los equipos de la red local se configuren de forma automática, así que sólo es necesario instalar el programa Router ADVertisement Daemon(radvd), para ello:
root@ipv6:~# opkg update && opkg install radvd

Para dar una dirección IPv6 de un pool de direcciones a los clientes de la LAN, se debe instalar DHCPv6, con la siguiente orden:
root@ipv6:~# opkg update && opkg install wide-dhcpv6-server

1.-Una vez instalados los paquetes, empezamos a configurar el DHCPv6, que para activar el servicio se debe modificar la siguiente línea del fichero /etc/config/dhcp6s y ponerla a 1(SÓLO MODIFICAR LÍNEA MARCADA):
config 'dhcp6s' 'basic'
          option 'enabled' '1'
          option 'interface' 'br-lan'
          option 'config_file' '/etc/dhcp6s.conf

Para crear la configuración que va a ofrecer nuestro servidor DHCPv6, se debe crear el fichero /etc/dhcp6s.conf con la siguiente información:
interface br-lan {
        address-pool pool1 86400;
};

pool pool1 {
        range 2001:470:1f13:6b5::1000 to 2001:470:1f13:6b5::2000 ;
};



Ahora se debe actualizar los siguientes parámetros en el servicio RADVD, cuyo fichero de configuración es /etc/config/radvd(SÓLO MODIFICAR TEXTO EN NEGRITA):
config interface option interface 'lan' option AdvSendAdvert 1 option AdvManagedFlag 1 option AdvOtherConfigFlag 1 option ignore 0

Y reiniciar el servicio de nuevo.
root@ipv6:~# /etc/init.d/radvd restart



Y finalmente, podemos navegar por la web con IPv6, para cualquier consulta o duda, pueden escribir en el post, e intentaré contestar lo más breve posible.