home

Configurando IPv6 en mi casa: Usando 6to4 y DD-WRT

Hola,
Les quería pasar cómo configuré IPv6 con 6to4 en mi casa usando el "tunnel broker" de ANTEL.
Tengo un ASUS WL-500W
Aqui van los pasos:
1) instalar version de dd-wrt-24 con ipv6 habilitado. Bajandolo de:
http://www.crushedhat.com/downloads/DD-WRT/
2) en la Pantalla: Administration/Management:
a) "Enable IPv6"
b) "Enable Radvd"
c) Radvd config:
interface br0 {
   MinRtrAdvInterval 3;
   MaxRtrAdvInterval 10;
   AdvLinkMTU 1280;
   AdvSendAdvert on;
   prefix 0:0:0:1::/64 {
    AdvOnLink on;
    AdvAutonomous on;
    AdvValidLifetime 86400;
    AdvPreferredLifetime 86400;
    Base6to4Interface ppp0;
   };
};
3) En la pantalla Administration/Commands escribir:
sleep 5
WANIP=$(ip -4 addr show dev ppp0 | awk '/inet/ {print $2}' | cut -d/ -f1)
if [ -n "$WANIP" ]
then
 V6PREFIX=$(printf '2002:%02x%02x:%02x%02x' $(echo $WANIP | tr . ' '))
 ip tunnel add tun6to4 mode sit ttl 255 remote any local $WANIP 
 ip link set tun6to4 mtu 1280
 ip link set tun6to4 up
 ip addr add $V6PREFIX:0::1/48 dev tun6to4
 ip addr add $V6PREFIX:1::1/64 dev br0
 ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4
 kill -HUP $(cat /var/run/radvd.pid)
fi
Salvar con "Save Startup"
4) ANTEL cambia de direccion IPv4 de tiempo en tiempo y en particular cuando se desconecta el equipo, así que voy a colocar en el cron (yo lo puese cada 1 minutos) el siguiente script:
--------------
#!/bin/sh
# Primero chequeo si la interfaz WAN cambio:
WANIP=$(ip -4 addr show dev ppp0 | awk '/inet/ {print $2}' | cut -d/ -f1)
IPv4tun=$(ip -6 addr show dev tun6to4 | awk '/inet6/ {print $2}' | grep -e "^::" | cut -d/ -f1 | cut -d: -f3)
if [ -n "$WANIP" ]; then
if [ -n "$IPv4tun" -a $WANIP != $IPv4tun ] || [ ! -n "$IPv4tun" ]; then
# Elimino el tunel actual para borrar las direcciones.
if ifconfig | grep tun6to4 > /dev/null; then
ip tunnel del tun6to4
fi
# Elimino direcciones de la interfaz LAN
         LANIPv6=$(ip -6 addr show dev br0 | awk '/inet6/ {print $2}' | grep -e "^2002:")
if [ -n "$LANIPv6" ]; then
                 for i in $LANIPv6; do
                         ip addr del $i dev br0
                 done
fi
         V6PREFIX=$(printf '2002:%02x%02x:%02x%02x' $(echo $WANIP | tr . ' '))
           ip tunnel add tun6to4 mode sit ttl 255 remote any local $WANIP 
         ip link set tun6to4 mtu 1280
         ip link set tun6to4 up
         ip addr add $V6PREFIX:0::1/48 dev tun6to4
ip addr add $V6PREFIX:1::1/64 dev br0
ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4
         kill -HUP $(cat /var/run/radvd.pid)
  fi
 fi
--------------
Para eso:
a) Hacer ssh al equipo.
b) grabar un archivo script6to4.sh con el script en la memoria flash: /jffs y darle derechos de ejecucion.
c) en la pantalla Administration/Management habilitar el Con y agregar: */1 * * * * root /jffs/script6to4.sh
5) IP6TABLES:
Ejecutar los siguientes comandos, para deshabilitar las conexiones entrantes tcp. Al parecer el ip6tables no es "statefull" en DD-WRT, tengo que trabajar mas en esto...
insmod ip6t_REJECT 
ip6tables -F 
ip6tables -A FORWARD -i tun6to4 -p tcp --syn -j DROP
ip6tables -A INPUT -i tun6to4 -p tcp --syn -j DROP
Estos comandos tambien hay que grabarlos en el "Startup" com el mismo mecanismo que 3), por lo que el script de arranque tiene la siguiente forma:
-----------------
sleep 5
WANIP=$(ip -4 addr show dev ppp0 | awk '/inet/ {print $2}' | cut -d/ -f1)
if [ -n "$WANIP" ]
then
 V6PREFIX=$(printf '2002:%02x%02x:%02x%02x' $(echo $WANIP | tr . ' '))
 ip tunnel add tun6to4 mode sit ttl 255 remote any local $WANIP 
 ip link set tun6to4 mtu 1280
 ip link set tun6to4 up
 ip addr add $V6PREFIX:0::1/48 dev tun6to4
 ip addr add $V6PREFIX:1::1/64 dev br0
 ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4
 kill -HUP $(cat /var/run/radvd.pid)
fi
ip6tables -F 
ip6tables -A FORWARD -i tun6to4 -p tcp --syn -j DROP
ip6tables -A INPUT -i tun6to4 -p tcp --syn -j DROP
-----------------
6) Pruebas desde el router:
Aqui algunas pruebas:
root@home:/jffs# traceroute6 www.antelv6.net.uy
traceroute to www.antelv6.net.uy (2800:a0:2:102::123) from 2002:be00:840e::1, 30 hops max, 16 byte packets
 1  2002:c058:6301::1 (2002:c058:6301::1)  22.67 ms  89.384 ms  136.112 ms
 2  2800:a0:4:2::19 (2800:a0:4:2::19)  151.61 ms  20.022 ms  19.945 ms
 3  2800:a0:0:a::12 (2800:a0:0:a::12)  330.679 ms  21.609 ms  87.155 ms
 4  2800:a0:2:2::a (2800:a0:2:2::a)  23.17 ms  23.737 ms  18.962 ms
 5  2800:a0:2:2::a (2800:a0:2:2::a)  19.655 ms !S  21.77 ms !S  19.455 ms !S
root@home:/jffs# 
root@home:/jffs# ifconfig 
br0       Link encap:Ethernet  HWaddr 00:1F:C6:21:5F:59  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: 2002:be00:840e:1::1/64 Scope:Global
          inet6 addr: fe80::21f:c6ff:fe21:5f59/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11974 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11612 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1232751 (1.1 MiB)  TX bytes:6224932 (5.9 MiB)
br0:0     Link encap:Ethernet  HWaddr 00:1F:C6:21:5F:59  
          inet addr:169.254.255.1  Bcast:169.254.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
eth0      Link encap:Ethernet  HWaddr 00:1F:C6:21:5F:59  
          inet6 addr: fe80::21f:c6ff:fe21:5f59/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:440 errors:0 dropped:0 overruns:0 frame:0
          TX packets:612 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:69492 (67.8 KiB)  TX bytes:83936 (81.9 KiB)
          Interrupt:4 
eth1      Link encap:Ethernet  HWaddr 00:1F:C6:21:5F:5A  
          inet6 addr: fe80::21f:c6ff:fe21:5f5a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2269 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2287 errors:0 dropped:0 overruns:0 carrier:0
          collisions:1 txqueuelen:1000 
          RX bytes:1580121 (1.5 MiB)  TX bytes:586076 (572.3 KiB)
          Interrupt:5 
eth2      Link encap:Ethernet  HWaddr 00:1F:C6:21:5F:5B  
          inet6 addr: fe80::21f:c6ff:fe21:5f5b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11517 errors:2 dropped:0 overruns:0 frame:12101
          TX packets:11500 errors:22 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1330861 (1.2 MiB)  TX bytes:6340639 (6.0 MiB)
          Interrupt:2 Base address:0x4000 
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING MULTICAST  MTU:16436  Metric:1
          RX packets:34 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3970 (3.8 KiB)  TX bytes:3970 (3.8 KiB)
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:190.0.132.14  P-t-P:200.40.19.67  Mask:255.255.255.255
          UP POINTOPOINT RUNNING MULTICAST  MTU:1492  Metric:1
          RX packets:1928 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1924 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:1504637 (1.4 MiB)  TX bytes:484384 (473.0 KiB)
tun6to4   Link encap:IPv6-in-IPv4  
          inet6 addr: 2002:be00:840e::1/48 Scope:Global
          inet6 addr: ::190.0.132.14/128 Scope:Compat
          UP RUNNING NOARP  MTU:1280  Metric:1
          RX packets:19 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2915 (2.8 KiB)  TX bytes:2104 (2.0 KiB)
root@home:/jffs# 
root@home:/jffs# traceroute6 ipv6.google.com
traceroute to ipv6.l.google.com (2001:4860:0:2001::68) from 2002:be00:840e::1, 30 hops max, 16 byte packets
 1  2002:c058:6301::1 (2002:c058:6301::1)  22.811 ms  20.887 ms  21.179 ms
 2  2800:a0:4:1::19 (2800:a0:4:1::19)  19.291 ms  21.54 ms  19.938 ms
 3  2800:a0:4:1::2 (2800:a0:4:1::2)  19.404 ms  20.425 ms  21.211 ms
 4  2001:41a8:4020:2::d (2001:41a8:4020:2::d)  312.163 ms  312.056 ms  311.429 ms
 5  2001:504:0:2:0:1:5169:1 (2001:504:0:2:0:1:5169:1)  312.858 ms  362.055 ms  313.909 ms
 6  2001:504:0:2:0:1:5169:1 (2001:504:0:2:0:1:5169:1)  314.608 ms  318.452 ms  314.867 ms
 7  * * *
 8  2001:4860:0:2001::68 (2001:4860:0:2001::68)  314.477 ms  318.186 ms  314.67 ms
root@home:/jffs# 
 
Distribuir contenido