Habilitar IPv6 en OpenWRT

written by uve 19 August 2011

Una vez que tenemos OpenWRT instalado en nuestro router llega el momento de habilitar IPv6. Para ello, vamos a utilizar Stateless auto configuration. Para ello necesitaremos hacer uso de IPv4. Aunque todo esto se puede configurar desde LuCI (la interfaz web de administración que usa OpenWRT), usaremos SSH por comodidad.

Es necesario disponer Internet accesible desde el router, ya que necesitaremos descargar algunos paquetes. Así que, lo primero es acceder al router y actualizar el repositorio:

$ ssh root@192.168.1.1
root@OpenWrt:~# opkg update
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc5/brcm63xx/packages/Packages.gz.
Inflating http://downloads.openwrt.org/backfire/10.03.1-rc5/brcm63xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/packages.

Y ahora vamos a instalar los paquetes para tener soporte IPv6:

root@OpenWrt:~# opkg install kmod-ipv6 ip kmod-ip6tables ip6tables
Installing kmod-ipv6 (2.6.32.27-1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc5/brcm63xx/packages/kmod-ipv6_2.6.32.27-1_brcm63xx.ipk.
Installing ip (2.6.29-1-2) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc5/brcm63xx/packages/ip_2.6.29-1-2_brcm63xx.ipk.
Installing kmod-ip6tables (2.6.32.27-1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc5/brcm63xx/packages/kmod-ip6tables_2.6.32.27-1_brcm63xx.ipk.
Installing ip6tables (1.4.6-2) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc5/brcm63xx/packages/ip6tables_1.4.6-2_brcm63xx.ipk.
Installing libip6tc (1.4.6-2) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc5/brcm63xx/packages/libip6tc_1.4.6-2_brcm63xx.ipk.
Configuring ip.
Configuring kmod-ipv6.
Configuring kmod-ip6tables.
Configuring libip6tc.
Configuring ip6tables.

Ahora, vamos a reiniciar el servicio de red y comprobar que todo ha ido bien:

root@OpenWrt:~# /etc/init.d/network restart
root@OpenWrt:~# ifconfig
br-lan    Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx 
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:245 errors:0 dropped:0 overruns:0 frame:0
          TX packets:180 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:20767 (20.2 KiB)  TX bytes:34236 (33.4 KiB)

Ya tenemos IPv6 habilitado. Ahora vamos a configurar nuestro router para que responda "Router Advertisement" y actúe realmente como un router. Para ello vamos a necesitar el demonio radvd, quien se encargará de esta tarea.

root@OpenWrt:~# opkg install radvd
Installing radvd (1.7-1) to root...
Downloading http://downloads.openwrt.org/backfire/10.03.1-rc5/brcm63xx/packages/radvd_1.7-1_brcm63xx.ipk.
Configuring radvd.

Y ahora editamos el fichero /etc/config/radvd:

config 'interface'
    option 'interface' 'lan'
    option 'AdvSendAdvert' '1'
    option 'ignore' '0'
    option 'IgnoreIfMissing' '1'
    option 'AdvSourceLLAddress' '1'
    option 'AdvDefaultPreference' 'medium'

config 'prefix'
    option 'interface' 'lan'
    option 'AdvOnLink' '1'
    option 'AdvAutonomous' '1'
    option 'ignore' '0'
    list 'prefix' '2001::/64'

Y por último, vamos a comprobar que todo esté funcionando. Ahora mismo estoy en Ubuntu, por lo que hay que ir al NetworkManager > Editar las conexiones > Red cableada y editamos nuestra interfaz de red, eth0. En Ajustes de IPv4 deshabilitamos el método y en Ajustes de IPv6 seleccionamos método Automático. Además, marcamos la opción "Requiere de dirección IPv6 para que esta conexión se complete". Guardamos y conectamos.

Tags

La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.