Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. IPV6 BÁSICO 1
3. CONFIGURACIÓN AVANZADA. 64
3.1. ICMPV6. 64
3.1.1. LOS MENSAJES 65
3.1.2. NEIGHBOR DISCOVERY 71
3.1.3. OTRAS POSIBILIDADES DE ICMPV6 78
3.2. CONFIGURACIÓN STATELESS. 84
3.2.1. INTRODUCCIÓN 84
3.2.2. DESCRIPCIÓN 84
3.2.3. AUTOCONFIGURACIÓN DE DIRECCIONES GLOBALES 85
3.2.4. OBTENCIÓN DE DIRECCIONES DE AUTOCONFIGURACIÓN 87
3.2.5. ALGORITMOS DE GENERACIÓN DE DIRECCIONES GLOBALES 88
3.2.6. ROUTER IPV6 89
3.3. DHCPV6. 94
3.3.1. DHCPV6 UBUNTU 9.10 SERVER 95
1. IPv6 Básico
A pesar de no tener dueño y de dar la sensación de ser un mundo incontrolable,
desde el punto de vista técnico, Internet está totalmente regulada.
Ejemplos:
Todos los equipos del mundo que se conectan a Internet, están identificados de
forma unívoca por medio de una especie de matrícula digital: la dirección IP.
Todos los datos que circulan por la red van empaquetados y tienen su origen y
destino perfectamente identificados, así como cuál es la aplicación que les espera.
Las comunicaciones que se establecen entre equipos, tanto vía Internet como en
nuestras redes locales, se rigen por una serie de protocolos estándar totalmente
definidos.
Las direcciones están organizadas por rangos de modo que hay direcciones
públicas y direcciones privadas.
Las privadas se pueden utilizar en cualquier tipo de red local sin mayores
problemas, ya que son direcciones que no se enrutan hacia Internet y por lo tanto no
pueden provocar conflictos. Los rangos de las direcciones privadas son:
Las públicas son las que nos identifican en Internet y deben ser únicas para cada
equipo. Precisamente por su carácter global es necesario que existan mecanismos de
control para organizar el reparto de las mismas.
Puede parecer que más de 4.000 millones de direcciones deberían ser suficientes
para abastecer de direcciones a todo el planeta, pero como vamos a ver, no es así.
Fuente: www.arin.net/knowledge/stats.pdf
Como puede verse, quedan tan solo 26 bloques /8 de los 256 teóricamente
disponibles, esto es, poco más de un 10%. Incluso aunque las direcciones no disponibles
(por estar preasignadas o reservadas) se agregaran a las direcciones disponibles, se ve
claro que, con la tendencia actual, en cuestión de unos pocos años no habría direcciones
IPv4 que repartir.
Paseo de Heríz, 82 DONOSTIA GIPUZKOA TEL: 943313907 2
Centro de Estudios A.E.G.
Por ello, el achacar el problema del agotamiento a las economías emergentes como
China (1 dirección IPv4 para cada 5 habitantes) o India (1 dirección IPv4 para cada 50
habitantes) no es muy riguroso. El verdadero problema es que hay pocas direcciones y
están mal repartidas.
Por otro lado, el número de dispositivos que se pueden conectar a Internet es cada
vez mayor: PDAs, móviles, consolas, sistemas de seguridad (alarmas, cámaras),
televisores y hasta frigoríficos...
Las previsiones indican que en un futuro cercano elementos como los contadores de
agua, gas o electricidad estarán también online y lo mismo ocurrirá con los coches..
Además, las soluciones para monitorización remota de todo tipo de máquinas serán
cada vez más frecuentes.
Cuando fue diseñado, a finales de los años 70, no había preocupación por hacer
frente a la saturación de los medios disponibles debido al alto número de equipos
conectados ni era una prioridad la seguridad.
Por ello, a parte del ya comentado problema del agotamiento del rango de
direcciones, IPv4 presenta otros inconvenientes que se repasan a continuación.
Problemas de rendimiento:
Por ejemplo, en IPv4 existe la posibilidad de generar tráfico de broadcast. Esto son
paquetes de datos que parten de un equipo con la pretensión de llegar a todos los
equipos que estén a "tiro de PING", es decir, a todos los equipos que se encuentran en
el mismo dominio de difusión.
El uso indiscriminado de este tipo de tráfico, incluso por algunos de los protocolos
incluidos en TCP/IP, provoca el colapso de las redes debido a las colisiones que tienen
lugar. Colisiones que se solucionan con la retransmisión de los datos después de esperar
cierto tiempo. Ya tenemos un retardo.
Cada vez que un paquete viaja de un equipo al siguiente que le acerca a su destino se
dice que ha realizado un salto (hop). En cada salto se analiza la información recibida
para determinar si el paquete se queda en la red a la que acaba de llegar o si hay que
enviarlo a otra red diferente. Aquí surgen nuevos retardos.
Por último, los routers que reciben la información, después de analizarla y decidir
que tienen que reenviarla, tienen que aplicar algoritmos de selección de rutas para que
la elección sea la óptima. En la aplicación de estos algoritmos aparecen nuevos retardos.
Con el paso de los años empezaron a surgir diversas técnicas que aprovechaban estas
debilidades y que hacían las delicias de los aficionados a la "seguridad" informática
(hackers).
El aplicar estas técnicas implica una carga adicional para el procesamiento de los
datos (nuevos retardos) y por lo tanto, una nueva reducción del rendimiento.
Hay varios documentos que explican los motivos de la no conveniencia del NAT:
Los campos de carga útil tienen un tamaño de 64Kb, para que sean más fácilmente
"digeridos" por los micros de 64bits.
Las tablas de los routers se descongestionan, y necesitan menos tiempo para decidir
cuál será el siguiente salto.
En relación a la seguridad:
IPsec está integrado en IPv6, de modo que se reduce el procesamiento externo para
implementarlo y se consigue por un lado mejorar la seguridad y por otro reducir los
retardos.
El control del tráfico es más efectivo, ya que hay reservados campos para QoS
(Quality of Service) y CoS (Class of Service), con los que se puede regular el tráfico en
función de su sensibilidad al retardo de red.
Las VPNs se soportan de forma nativa, y por ello resulta más barato implementarlas
pues no es necesario adquirir productos de terceros.
Lo que no va a ser posible es establecer una fecha para realizar una transición total
de IPv4 a IPv6. En otras palabras, de momento no va a producirse un "Apagón IP".
La situación requiere una transición gradual en la que los dos protocolos convivan,
cosa que se ilustra en la siguiente figura.
Puesto que la IP es uno de los datos incluidos en la cabecera del protocolo, el hecho
de ampliar el rango de direcciones implicaba un rediseño de la cabecera, esto es, había
que desarrollar una versión nueva de IP.
Movilidad IP.
Paseo de Heríz, 82 DONOSTIA GIPUZKOA TEL: 943313907 7
Centro de Estudios A.E.G.
CATNIT (Common Architecture for the Internet): este era un protocolo compatible
con IP, IPX y OSI que aportaba un largo de direcciones variable.
SIPP (Simple Internet Protocol Plus): este era una evolución de IPv4, con
encabezado más simple y 64 bits para direccionamiento.
TUBA (TCP and UDP with Bigger Addresses): este era la propuesta usando
direcciones de red OSI (CLNP).
El motivo por el que saltaron de IPv4 a IPv6 omitiendo IPv5 fue que dicho nombre
ya había sido utilizado para un protocolo experimental descrito la RFC 1819 (Internet
Stream Protocol Version 2).
A partir de ahí se han ido creando distintos grupos para fomentar la implantación de
IPv6. Entre los más destacables tendríamos el IPv6 Forum.También se pusieron en
marcha proyectos como 6bone (1996-2006) mediante el que se fomentaba la
experimentación sobre una red mundial IPv6.
Por otro lado se hablará del direccionamiento en IPv6, repasando los distintos tipos
de direcciones existentes y explicando su utilidad.
• Path MTU: el path es la ruta que siguen los datos desde el host de origen al
de destino y el Path MTU es el valor de MTU que se puede utilizar a lo largo
de dicha ruta. Para no tener problemas en ningún punto, el valor a adoptar
debería ser el más pequeño de los MTU que aparezcan en el path.
Como se puede ver, la cabecera IPv6 es mucho más simple que la de IPv4 y esto
acelera el procesamiento de los datos.
La cabecera IPv6 tiene una longitud fija de 40 bytes, organizados en dos grupos de
16 bytes para las direcciones de Origen y Destino y solo 8 bytes más para información
general.
En el siguiente punto se explican los motivos por los que se han eliminado ciertos
campos de la cabecera IPv4.
Longitud de la cabecera
En IPv6 las cabeceras tienen una longitud fija de 40 bytes, por lo tanto el campo
"Longitud de la cabecera" no tiene sentido.
La fragmentación tiene lugar cuando un paquete grande tiene que ser transmitido en
una red que sólo soporta paquetes más pequeños.
En ese caso, el router IPv4 trocea el paquete original en otros más pequeños y los
envía.
Si se detecta que falta algún fragmento (aunque solo sea uno), hay que volver a
retransmitirlos todos.
Ya en IPv6, el host emisor utiliza un proceso llamado "Path MTU Discovery" para
saber el cuál es el mayor tamaño de paquete que se puede gestionar en el camino que
seguirán los datos desde el origen hasta el destino, esto es, en el Path. Esa información
es lo que se llama "Path MTU" (Maximum Transmission Unit).
Con esta información, el host emisor decide si hay que fragmentar el paquete o no.
En caso de tener que hacerlo utiliza la cabecera de Extensión correspondiente.
También por eso no hacen falta los campos de Identificación, Flags y Fragment
Offset en la cabecera IPv6. En caso de necesitar la fragmentación estos campos serán
insertados por el host origen en la correspondiente cabecera de Extensión.
Checksum de cabecera
Opciones
Version (4 bits)
Este campo de 4 bits contiene la versión del protocolo. Para IPv6 su valor es 6.
Por medio de este campo ("Traffic Class) los equipos que envían los paquetes y los
routers pueden identificar y distinguir distintas clases o prioridades de paquetes IPv6.
Gracias a este campo, algunos datos que requieran un tratamiento especial se pueden
manejar, en tiempo real, con mayor facilidad.
Este campo sirve para marcar paquetes que requieren un mismo tratamiento, de
forma que se facilita su manipulación en tiempo real.
Los routers pueden mantener bajo control los flujos y pueden procesar los paquetes
pertenecientes al mismo flujo de forma más eficiente porque no tienen que reprocesar
cada cabecera de paquete.
El hecho de que la longitud de este campo sea de 2 bytes, limita el tamaño máximo
del payload a 64KBytes. (2¹⁶ = 65536 Bytes = 64KB)
Paseo de Heríz, 82 DONOSTIA GIPUZKOA TEL: 943313907 13
Centro de Estudios A.E.G.
Los paquetes de tamaños mayores son soportados por IPv6 por medio de la cabecera
de Extensión "Jumbograma".
Si la siguiente cabecera es UDP o TCP, este campo contendrá los mismos números
de protocolo que en IPv4 (TCP = 6, UDP = 17...)
En caso de que usen las cabeceras de Extensión de IPv6, este campo contiene el tipo
de la siguiente cabecera de Extensión.
En IPv6, este campo ha pasado a llamarse "Hop Limit". Su valor representa ahora el
número de saltos en lugar del número de segundos. Cada nodo retransmisor decrementa
este valor en uno. Si un router recibe un paquete con “Hop Limit” = 1, lo decrementa a
0, descarta el paquete, y envía al equipo emisor original el mensaje ICMPv6 “Hop Limit
exceeded in transit”.
En caso de estar presente una cabecera de Enrutado, puede ser la dirección del
siguiente router.
• Permite asegurar que el origen del datagrama tiene autorización para ser
transmitido. Son opciones usadas por la NSA, la CIA...
En este caso se pretende rellenar el final del campo de opción para que el tamaño
total sea múltiplo de 32 bits.
En IPv6 las opciones se manejan por medio de las llamadas Cabeceras de Extensión
(Extension Headers). Estas cabeceras se insertan en el paquete solo si las opciones son
necesarias.
En el primer paquete hay una única cabecera IPv6 que precede a los datos de la capa
superior de transporte.
En el segundo paquete se ha insertado una tercera cabecera entre las dos anteriores.
Ahora, la cabecera IPv6 indica que la siguiente cabecera es una cabecera de Extensión
del tipo Routing, cuyo código identificativo es el 43 y que se utiliza para dar una lista de
uno o más nodos que deben estar en la ruta seguida por un paquete.
En el tercer paquete se ha insertado una cabecera más. En este caso es una cabecera
de Extensión de Fragmento, cuyo código es el 44.
Como se puede ver los campos Next Header de las distintas cabeceras mantienen la
lógica explicada.
Tipos de cabecera
• De enrutado (RFC 2460). Se utiliza para dar una lista de uno o más nodos
que deben estar en la ruta seguida por un paquete.
Orden de ejecución
1. Cabecera IPv6.
5. Cabecera de Fragmento.
Cuando se encapsula IPv6 en IPv4, la cabecera de capa superior puede ser otra
cabecera IPv6 y puede contener cabeceras de Extensión que tienen que seguir las reglas
mencionadas.
2.2. Direccionamiento
Una vez analizados y aclarados los problemas de IPv4 en relación a la gestión de
direcciones y a la disponibilidad de las mismas, nos centraremos en el direccionamiento
de IPv6.
Cuando trabajamos con IPv4 estamos acostumbrados a tener que asignar una
dirección IP del estilo 192.168.0.10 a la tarjeta de red de nuestro ordenador, y solo en
situaciones concretas tenemos varias direcciones IPv4 asignadas a nuestra interfaz de
red. Esto último ocurre, por ejemplo, cuando usamos "interfaces de red virtuales", las
cuales permiten, entre otras cosas, ofrecer distintos servicios de red en cada una de las
direcciones empleadas.
En IPv6 lo normal es que una tarjeta de red tenga varias direcciones asignadas. En la
RFC 4291 "IP Version 6 Addressing Architecture" se especifica cuáles son las
direcciones IPv6 que tiene que tener cada host.
• La dirección de loopback.
• Las direcciones multicast de todos los grupos a los que pertenezca el host.
ABFE:CD67:2143:6574:AFDE:DB87:6543:2109
2191:0:0:7:0:900:300B:528B
Pero el trato especial que reciben los ceros no termina aquí, de hecho, existe incluso
una "Notación abreviada para los ceros":
Por ejemplo:
2191:6:0:0:0:700:311B:528D = 2191:6::700:311B:528D
FF01:0:0:0:0:0:0:101 = FF01::101
0:0:0:0:0:0:0:1 = ::1
0:0:0:0:0:0:0:0 = ::
En entornos mixtos en los que hay nodos IPv4 e IPv6 hay también un formato válido
que permite representar una dirección IPv4 como IPv6. Esto se hace poniendo
0:0:0:0:0:0 y a continuación la dirección IPv4. Hay que tener en cuenta que la
representación se puede hacer expresando la dirección IPv4 en decimal o en
hexadecimal y que también se puede emplear la notación abreviada. Teniendo todo esto
en cuenta, las siguientes notaciones son equivalentes:
0:0:0:0:0:0:192.168.44.1
::192.168.44.1
0:0:0:0:0:0:C0A8:2C01
::C0A8:2C01
Esta notación está descrita en la RFC 4291 "IP Version 6 Addressing Architecture".
Un prefijo es un conjunto de bits (en la zona de mayor peso) en una dirección IPv6,
que se utiliza para identificar subredes o el tipo de dirección.
En IPv6 tenemos:
Gracias al prefijo, los routers saben como dirigir los paquetes que les llegan hacia su
destino correcto en una subred determinada.
2E78:DA53:1200::/40
En este enlace se puede ver cómo organiza la IANA los prefijos reservados y las
direcciones especiales (direcciones de enlace local, multicast...).
0000::/8 → Las direcciones que empiezan con 8 ceros están reservadas para la IETF.
En cuanto a las direcciones Anycast, se toman del rango de direcciones Unicast, por
lo tanto, no es posible saber si una dirección es Anycast tan solo con mirar su prefijo.
Dirección de Loopback
Estas son las direcciones que se reconocen a nivel global, por lo que, a efectos
prácticos, juegan el papel de las direcciones públicas IPv4.
Puesto que van a ser direcciones válidas a nivel global es lógico pensar que deben
estar controladas como lo están las IPs públicas de IPv4. En seguida veremos que es así.
Todas las Direcciones Unicast Globales tienen 001 en sus tres bits de mayor peso,
por lo que el prefijo es 2000::/3. Esto indica que si la dirección empieza tanto por 0010
(0x2) como por 0011(0x3), estaremos ante una dirección unicast global.
Como se puede ver en la imagen, los 128 bits se descomponen en tres campos:
Para redes de tamaño pequeño y medio suele constar de 48 bits y es gestionado por
los servicios de registro internacionales y los ISPs.
Fuente: http://www.iana.org/numbers
Aunque el prefijo para las direcciones unicast globales es 2000::/3, IANA solo
permite el uso de ciertos rangos. En este enlace se puede ver cuál es el reparto actual.
El Identificador de Interfaz identifica una interfaz en una subred y debe ser único
dentro de esa subred. Este identificador se puede configurar de varias maneras.
00– 03 – cd – 39 – 2b – 42
00 – 03 – cd – ff – fe – 39 – 2b – 42
Para terminar hay que complementar el bit universal/local, que es el segundo bit de
menor peso en el primer byte (el de mayor peso). En este ejemplo el primer byte es
0000 0000, y complementando el bit marcado en rojo se convierte en 0000 0010, es
decir, 0x02. Por lo tanto el identificador de interfaz obtenido mediante
autoconfiguración es:
02 – 03 – cd – ff – fe – 39 – 2b – 42
privadas con la dirección IPv4 pública disponible. Ese mecanismo es el NAT (Network
Address Translation).
Como se puede ver en la captura de Ubuntu, hay una relación directa entre la MAC
de la tarjeta de red y la dirección de enlace local. El procedimiento mediante el que se
crea el Identificador de Interfaz a partir de la dirección MAC ha sido ya explicado al
hablar de las “Direcciones Unicast Globales”.
Con el tiempo, ese último término fue sustituido por el de "Dirección Unicast Local
Única" o simplemente "Dirección IPv6 Local". En inglés se suele usar el término ULA
(Unique Local Unicast Address).
A pesar de que estas direcciones son únicas a nivel global, no deben ser enrutadas,
es decir, no deben ser utilizadas en comunicaciones fuera de los límites de la red
corporativa. Están diseñadas para ser usadas en local (dentro de sitios corporativos o
conjuntos de redes).
Las características de las Direcciones Unicast Locales Únicas son las siguientes:
Tienen un prefijo global único que facilita el filtrado en los límites de la red.
Permiten la interconexión de redes privadas sin que haya riesgo de que surjan
conflictos por direcciones duplicadas, lo cual implicaría la renumeración de una de las
redes.
Pueden ser utilizadas por las aplicaciones del mismo modo que utilizan las
direcciones unicast globales.
Por ello, siempre que la administración sea local, el prefijo será FD::/8 (1111 1101).
Se parte de la hora y fecha del día en formato NTP (Network Time Protocol) de
64bits. NTP es un protocolo que permite sincronizar los relojes de equipos conectados a
Internet.
En networking hay ocasiones en las que un servicio se ofrece por medio de varios
hosts o routers.
La gran ventaja del "Anycasting" es que simplifica la búsqueda del servidor más
apropiado (que suele ser el más cercano).
múltiples interfaces. Esto es lo que se usa, por ejemplo, en los servidores DNS raíz en
Internet.
También hay que ser conscientes de que al utilizar direcciones anycast, el emisor no
tiene control sobre cuál será la interfaz a la que se entregará el paquete, ya que esta
decisión se toma sobre el nivel del protocolo de enrutamiento.
Debido a esto pueden darse errores si un emisor envía varios paquetes a una
dirección anycast y los paquetes llegan a diferentes destinos. Lo mismo ocurre si hay
que establecer un diálogo con una serie de peticiones y respuestas o si hay que
fragmentar el paquete.
Las direcciones anycast están dentro del espacio de las direcciones unicast, por lo
que, sintacticamente, no se puede distinguir una dirección anycast de una unicast.
Esta dirección anycast es sintácticamente igual que cualquier otra dirección unicast
de una interfaz del enlace, con el identificador de interfaz a cero.
Paseo de Heríz, 82 DONOSTIA GIPUZKOA TEL: 943313907 29
Centro de Estudios A.E.G.
Todos los routers están obligados a soportar las "direcciones anycast del router de la
subred" de todas las subredes en las que tiene conectada una interfaz.
Se las identifica fácilmente porque son direcciones que empiezan por 0xFF (es decir,
por 1111 1111, en binario).
Los nodos que se configuran con una dirección multicast determinada forman lo que
se llama un GRUPO DE MULTIDIFUSIÓN.
• El primer bit (O) debe ser cero y está reservado para un uso futuro.
En la RFC 3956 se define cómo codificar la dirección del Rendezvous Point (RP) en
una dirección de grupo multicast y el bit que estamos tratando indica si la dirección
lleva, o no, insertado el "Rendezvous Point". En los usos más habituales, esto no será
así y el bit valdrá 0.
El tercer bit (P) indica si esta dirección de multidifusión incluye información acerca
del prefijo (RFC 3306). Esto se utiliza para realizar la asignación dinámica de
El último bit del campo de Flags indica si la dirección está asignada de forma
permanente, esto es, si es una de las direcciones de multidifusión llamadas "Well-
known" (bien conocidas), por estar asignadas por la IANA (bit a 0). O se trata de una
dirección de multidifusión de carácter temporal (bit a "1").
La lista actualizada de dirección multicast asignadas está en este enlace
1 = nodo local
2 = link local
5 = site local
14 = global (Internet)
1 = all nodes (Scope = 1 ó 2). Con un valor de Scope = 2 nos permitiría enviar un
mensaje a todos los nodos del enlace local.
Con todo lo dicho, podríamos utilizar, por ejemplo, la dirección FF02::1. Esta es la
dirección "Link Local All Nodes", con la cual podríamos enviar un paquete a todos los
nodos del enlace local. Esta dirección es la equivalente a la 255.255.255.255 de IPv4.
Otra dirección multicast que suele aparecer es la FF02::2, que es la dirección "Link
Local All Routers" y que nos permite comunicarnos con todos los routers que se
encuentran en el enlace local. Esto se usa, por ejemplo, cuando un nodo necesita
encontrar un router (mensajes "Router Solicitation" de ICMPv6) que le pueda informar
de cuál es la configuración de red que debe tomar.
Es ésta una dirección que todos los nodos tienen que agregar para cada una de sus
direcciones unicast y anycast. Se usa en Neighbor Discovery y se describe en la RFC
4291.
En IPv4, las peticiones ARP se utilizan para encontrar la MAC del nodo con el que
nos queremos comunicar, a partir de la dirección IP del mismo. La búsqueda se hace
Paseo de Heríz, 82 DONOSTIA GIPUZKOA TEL: 943313907 31
Centro de Estudios A.E.G.
mediante mensajes de broadcast, que son examinados por todas las hosts del enlace.
Esto genera mucho tráfico y es una de las cuestiones que se hecha en cara a IPv4.
Esta dirección se forma tomando los 24 bits menos significativos de una dirección
IPv6 (la última parte del host ID) y añadiendo estos bits al prefijo Well-known
FF02:0:0:0:0:1:FF00:: / 104. Por lo tanto, el rango para direcciones multicast de nodo
solicitado va de FF02:0:0:0:0:1:FF00:0000 a FF02:0:0:0:0:1:FFFF:FFFF.
Si este host tiene otras direcciones IPv6 unicast o anycast, cada una podría tener
asociada su propia dirección multicast de nodo solicitado.
• La dirección de loopback.
• Las direcciones multicast de todos los grupos a los que pertenezca el host.
En cuanto a los routers, tienen que reconocer todas las direcciones anteriores, y las
siguientes:
• La dirección de anycast de subred-router para las interfaces para las que está
configurado para actuar como un router en cada enlace.
• Todas las direcciones anycast con las que el router ha sido configurado.
• Las direcciones multicast de todos los demás grupos a los que pertenece el
router.
Cada vez más, será frecuente que los hosts soporten tanto IPv4 como IPv6.
Por todo ello, en las comunicaciones entre equipos de doble pila habrá que decidir
entre utilizar IPv4 o IPv6 e incluso, cuál de las direcciones IPv6 será la elegida.
Supongamos una situación en la que un cliente envía una petición DNS para un
servicio externo y recibe una dirección IPv6 global y una dirección IPv4 pública como
respuesta. Si este cliente tiene una dirección IPv4 privada y una dirección IPv6 global,
puede tener sentido utilizar IPv6 para acceder a este servicio externo. Pero si el cliente
tiene una dirección IPv6 de enlace local y una dirección IPv4 pública, elegirá la
dirección IPv4 para la conexión al servicio.
Estos son las situaciones y decisiones que tendrán que ser manejadas en un
escenario de redes mixtas con redes sólo-IPv4, redes sólo-IPv6 y redes con doble pila.
La RFC 3484 "Default Address Selection for IPv6", define dos algoritmos generales,
uno para la selección de la dirección de origen y el otra para la selección de la dirección
de destino. Esta RFC debe ser soportada por todos los nodos IPv6, es decir, tanto por
host como por routers.
Los algoritmos especifican el comportamiento por defecto para los nodos IPv6, pero
no anulan las decisiones tomadas por las aplicaciones o protocolos de la capa superior.
Antes de enumerar las principales reglas hay que saber que las direcciones asociadas
a las interfaces tienen un tiempo de vida que indica hasta cuándo está dicha dirección
asociada a la interface. Mientras ese tiempo no haya expirado, la dirección se considera
"preferida". Una vez agotado el tiempo, y hasta que se libera totalmente la dirección, se
la considera "obsoleta" (deprecated) y se puede seguir utilizando, aunque no se
recomienda.
• Si todos los criterios son similares, son preferibles los pares de direcciones
con el prefijo común más largo.
Las normas de la RFC 3484 se aplicarán cuando no haya otros criterios específicos.
La especificación también permite la configuración de una política que puede
reemplazar estos valores por defecto con combinaciones preferidas de direcciones de
origen y de destino.
Aunque lo más normal en una red es poseer un servidor de direcciones o router, para
comenzar no contemplaremos ningún elemento externo, por tanto la configuración
inicial de las direcciones será automática (stateless) sin router ni sernvidor, y más
Por tanto sin hacer nada, si desde la terminal de comandos, ejecutamos el comando
ip addr show . El comando ip sustituye entre otros comandos a ifconfig que ha quedado
obsoleto. Veamos la respuesta que obtenemos en ambos casos:
Interfaz Local Loopback o lo: Es la dirección local, ::1 , similar a 127.0.0.1 en IPv4.
ping6 ::1
ping6 al link-local
Para desinstalar:
Sin embargo, desde hace unos años y para el uso y configuración del entorno y
conexiones de red Microsoft aconseja el uso del comando "netsh" dentro de la consola
de comandos.
Inicio--> Mis sitios de red --> Ver conexiones de red--> Configuración de area local
-->Botón derecho --> Propiedades
Pulsamos Instalar
ipconfig
o ipconfig /all
o podemos usar el entorno netsh y sus comandos, por ejemplo, para ver la
información IPv4:
Como hemos podido observar al hacer ipconfig /all la dirección MAC de nuestro
adaptador es:
ping ::1
ping al link-local
o ping6 ::1
Para terminar también podríamos hacer ping6 a la dirección local configurada con el
siguiente formatu:
ping6 direcciónipv6local%interfaceautilizar
ping6 fe80::205:1cff:fe13:a63c%5
De esta forma tan sencilla, hemos incorporado IPv6 a nuestra red local usando
Windows XP.
Por tanto sin hacer nada, si desde la interfaz de comandos, ejecutamos ipconfig
observaremos la configuración existente:
o ipconfig /all
Utilizando netsh podemos ver los interfaces ipv6 instalados por defecto:
ping ::1
ping al link-local
Como hemos visto en Windows XP, podemos hacer ping a la dirección local de
enlace, indicando el número de interface tras el símbolo %
Con DHCPv6 un PC IPv6 puede recibir una dirección IPv6 además de otros
parámetros de configuración. Esta opción puede establecerse utilizando un servidor o un
router que pueda ejercer de tal. Un uso común de DHCPv6 para PCs es recibir y
configurar automáticamente la dirección IPv6 de los servidores DNS, los cuales no se
reciben a través del paquete “Router Advertisement” que envían los routers IPv6 de la
red. El paquete “Router Advertisement” que recibe un PC durante la fase del
descubrimiento de routers contiene un campo que indica si se va a utilizar también
DHCPv6 para configurar la dirección IPv6.
Tanto ip como netsh permiten una administración más centralizada de las diferentes
opciones en la configuración de nuestras redes. Aunque el estudio de las diferentes
posibilidades de dichos comandos debe analizarse en un contexto más amplio, en está
sección vamos a analizar algunas de sus opciones básicas, siempre dentro del contexto
de direccionamiento IPv6 que estamos estudiando. La adecuación al nuevo
direccionamiento IPv6 puede valernos para de paso, sustituir el uso de los anteriores
comandos por las nuevas opciones.
Para un estudio más profundo de iproute2 o netsh es necesario acudir a las diferentes
manuales de ayuda
Para el uso de IPv6 en Linux algunos comandos han sido adecuados. Veamos:
Comando ip:
COMANDO NUEVO
DESCRIPCIÓN
ANTERIOR COMANDO
Para facilitar el uso, los comandos pueden también ejecutarse sin introducir un
espacio a continuación del comando ip, es decir:
Graficamente:
Objeto Descripción
Comando tc:
El comando tc (traffic control) forma parte del nucleo o kernel y se utiliza para
controlar el tráfico. Al formar parte del núcleo no es solamente un “analizador” de
puertos. Permite un control total.
Graficamente:
Objeto Descripción
DESCRIPCIÓN COMANDO
Agregarle 20ms de espera al tc qdisc add dev lo root handle 1:0 netem delay
dispositivo de retorno (para 20msec
hacer pruebas)
Para borrar todas las reglas tc qdisc del dev eth1 root
Veamos un segundo ejemplo más completo para la gestión del ancho de banda:
DESCRIPCIÓN COMANDO
Vamos a crear una regla # /sbin/tc class add dev eth1 parent 1:0 classid 1:10
para el control del tráfico de htb rate 512kbps ceil 640kbps prio 0
(Definimos características de la clase)
salida HTTP para la interfaz
eth1. Permitimos un ancho de
banda de 512Kbytes y un # /sbin/iptables -A OUTPUT -t mangle -p tcp --sport
80 -j MARK --set-mark 10
máximo de 640Kbytes para el
(Asignamos el puerto a la clase)
puerto 80
Ipv6.exe install
Sin embargo, para facilitar la administración y gestión de redes, al igual que ocurre
con el comando ip en Linux, Microsoft ha desarrollado un entorno para la configuración
de redes englobado dentro del comando netsh (net shell o entorno para redes). Netsh
engloba características tanto para IPv4 como para IPv6. Sin embargo, al profundizar en
el estudio de IPv6 podemos de paso aprovechar para generalizar el uso de netsh en lugar
de los comandos más utilizados hasta ahora como pueden ser ipconfig, route o netstat.
Netsh:
Netsh es una utilidad de línea de comandos que nos ofrece varias opciones para la
configuración de una red.
Entre las principales opciones que se pueden realizar, están la posibilidad de ver,
modificar, administrar y diagnosticar la configuración de una red.
C:\>netsh
netsh>
Escribiendo, por ejemplo: interface obtenemos netsh interface> y así con todas las
opciones, podemos usar .. para subir de nivel.
C:\>netsh /?
netsh>?
netsh>exit
Para salir.
Algunos Ejemplos
DESCRIPCIÓN COMANDO
Las opciones de netsh son muchas. Veamos por ejemplo la ayuda que obtenemos en
Windows7:
DESCRIPCIÓN COMANDO
Parece que no puede hacer ping, pero este error no debe llevarnos a engaño. La
configuración es correcta. No responde al ping porque por defecto Windows 7 incorpora
un Firewall que por defecto no responde a los ping realizados desde otro Host, en este
caso el nuestro.
Responde satisfactoriamente.
La respuesta es satisfactoria.
Sin problemas.
En este caso utilizamos la opción -6 que permite al comando ping (en Windows 7)
forzar el uso de IPv6.
Un aspecto muy importante a tener en cuenta en IPv6 es que las direcciones locales
de enlace, es decir todas las que comienzan por FE80:: no son enrutables fuera de
nuestra red de área local. Por ello, como veremos más adelante, las tarjetas de red
pueden tener más de una dirección.
En el caso de querer poder acceder a una interfaz concreta desde dentro y también
desde fuera de nuestra red local, deberá configurarse una segunda dirección. Para ello
puede utilizarse un router y/o un servidor o puede añadirse una dirección manualmente
utilizando comandos del sistema operativo como veremos posteriormente.
3. Configuración avanzada.
Hasta aquí hemos tratado cuestiones generales sobre IPv6, tanto desde el punto de
visto del protocolo en si, como desde el punto de vista de distintos sistemas operativos.
3.1. ICMPv6.
Todo el mundo conoce el comando ping y su uso para comprobar si hay
conectividad entre dos equipos. Lo que no suele resultar tan familiar es el protocolo que
está detrás del ping, esto es, el ICMP (Internet Control Message Protocol).
ICMPv6 es mucho más potente que la versión anterior ya que se han integrado en el
mismo funcionalidades que se lograban en ICMPv4 usando otros protocolos. Por
ejemplo:
Una de las cosas que hace ICMPv6 es definir una serie de mensajes de error que
pueden ser utilizados por los nodos de la red para informar de situaciones en las que hay
problemas en la transmisión.
Además de esto, también hay mensajes definidos para valorar el estado de la red.
Aquí es donde aparecen los mensajes "Echo Request" y "Echo Reply", que son
utilizados por el famoso ping.
Por cierto, en ICMPv6 el nombre del comando ping también cambia en algunos
sistemas operativos, pasando a denominarse ping6. En otros casos seguiremos
utilizando el ping de siempre junto con un atributo que nos permite elegir el modo IPv6.
• Mensajes de error.
• Mensajes informativos.
El formato es el siguiente:
El bit más significativo del campo TIPO es el que determina el tipo del mensaje.
Los mensajes de error siempre empiezan por 0 y los informativos por 1. Por ello, los
mensajes de error tienen un tipo comprendido entre 0 y 127 y los informativos están
entre 128 y 255.
http://www.iana.org/assignments/icmpv6-parameters
3 → Dirección inalcanzable.
4 → Puerto inalcanzable.
Por último, el campo CUERPO. Éste varía en función del tipo y código del
mensaje. En caso de que se trate de un mensaje de error, el CUERPO contendrá una
copia lo más completa posible del paquete problemático, que podrá utilizarse en origen
para buscar una solución al problema planteado.
La cabecera de los mensajes ICMP sufre ligeras variaciones en función del tipo de
error o de la información que transporta. Estos cambios se localizan en el campo
“CUERPO” comentado en el punto anterior.
En caso de que un router no pueda enviar un paquete porque es más grande que el
MTU permitido, generará un mensaje “Packet To Big” que será enviado a la dirección
fuente del paquete.
Este error puede ser indicativo de un bucle en el enrutado o de que el “hop limit”
establecido por el emisor es demasiado bajo.
A continuación envía un segundo paquete con “hop limit = 2”. Este paquete es
reenviado por el primero router, que pone “hop limit = 1”. El segundo router
decrementa el “hop limit” poniéndolo a cero, lo descarta y envía el
correspondiente mensaje ICMP con TIPO = 3 y CÓDIGO = 0. Ahora el host
origen tiene identificado al segundo router del path.
En caso de que haya varios caminos hasta el destino, “traceroute” no tiene por
qué dar siempre los mismos resultados.
Este es el mensaje que se suele utilizar cuando el error que se produce no se ajusta a
ninguno de los anteriores.
En el CUERPO, los 4 primeros bytes actúan como puntero, señalando el punto del
paquete donde se ha detectado la irregularidad. También se envía de vuelta la mayor
porción posible del paquete original.
Los mensajes informativos definidos en la RFC 4443 son “Solicitud de eco” (Echo
Request) y “Respuesta de eco” (Echo Reply).
Los mensajes de Solicitud y Respuesta de Eco son utilizados en una de las utilidades
TCP/IP más populares: Packet Internet Groper (ping). Ping se usa para determinar si un
host está disponible en la red y está listo para comunicarse. El host de origen pone en
circulación un mensaje “Echo Request” dirigido al destino.
Paseo de Heríz, 82 DONOSTIA GIPUZKOA TEL: 943313907 68
Centro de Estudios A.E.G.
En el “CUERPO”, los dos primeros bytes se utilizan como “Identificador” y los dos
siguientes como “Número de secuencia”. A continuación se insertan cero o más bytes
arbitrarios para completar el paquete.
Estos dos campos se usan para emparejar las solicitudes con las respuestas. La
respuesta debe contener siempre los mismos números que la solicitud.
Algunos de los puntos vistos hasta aquí se pueden ver con una simple captura de
paquetes en un sniffer.
• El “-I” (es una “i” latina mayúscula) es para indicar el nombre de la interfaz
que se utilizará en el ping.
Como se puede ver en la cabecera IPv6, “Next Header” = 0x3a = 58, que es el valor
indicado anteriormente como asignado a ICMPv6.
También se pueden ver las direcciones de origen y destino, que son ambas del tipo
“de enlace local”, porque empiezan por 0xFE80.
Si nos fijamos ya en la cabecera ICMPv6, el primer campo indica “Type = 128”, que
es el código del mensaje “Echo Request”.
Después van los 54 bytes de datos arbitrarios. Con solo mirar el campo de los datos
arbitrarios podemos saber si el equipo que ha hecho ping es Windows o no, ya que estos
equipos utilizan como datos el alfabeto entre las letras “a” y “w”.
Los campos ID, Secuence y Data son una copia de los enviados en la Solicitud de
Eco.
• Router Solicitation.
• Router Advertisement.
• Neighbor Solicitation.
• Neighbor Advertisement.
• ICMP Redirect.
Los routers envían regularmente mensajes del tipo "Router Advertisement" para
anunciar su presencia.
El campo Current Hop Limit (Límite de Saltos Actual) sirve para informar a los
nodos del enlace de cuál es el valor de Hop Limit por defecto con el que se tienen que
configurar. Si este valor fuera 0, no estaría definido un Hop Limit por defecto y se
utilizaría el valor que tenga asignado por defecto el nodo transmisor.
que se llamaba configuración Stateful, pero ese término dejó de utilizarse cuando la
RFC 4861 dejó obsoleta a la RFC 2461 (Sept. 2007).
Los 2 bytes siguientes son el campo Router Lifetime. Este campo solo es importante
si el router se va a usado como router por defecto por los nodos del enlace. Si el campo
es cero, el router no es el utilizado por defecto. Cualquier otro valor indica, en
segundos, el tiempo que el router será considerado el router por defecto. El mayor
tiempo que se puede poner con 16 bits es de 65535 segundos, lo que equivale a 18,2
horas.
El campo Reachable Time (Tiempo alcanzable) indica el tiempo (en ms) que un host
va a suponer que los vecinos están al alcance después de haber recibido una
confirmación de accesilidad. Un valor de 0 indica que no se especifica.
El algoritmo NUD (Neighbor Unreachability Detection) usa este campo.
El campo Retrans Timer (Tiempo de Retransmisión) indica el tiempo (en ms) entre
retransmisiones de mensajes “Neighbor Solicitation”. Se utiliza en la resolución de
dirección y en los mecanismos de NUD. Si se pone a cero indica que ese router no está
configurado con el temporizador de retransmisión.
El Tipo = 135, Código = 0 y los 4 bytes que van después del Checksum no se usan y
se ponen a cero.
El campo Opciones puede contener la dirección MAC del origen, pero solo si no se
hace el envío desde la dirección “all-zeros”.
Este es un mensaje que los routers ponen en circulación para informar a un nodo de
cuál es el mejor “primer salto” para llegar a un destino determinado. Este tipo de
mensaje también puede informar a un nodo de que el destino solicitado es realmente un
vecino, y no un nodo en otra subred.
• IND Solicitation (Tipo = 141), que es enviado por el equipo que quiere hacer la
resolución a la dirección multicast all-nodes (FF02::1).
• IND Advertisement (Tipo = 142), que es enviado por el equipo objetivo y que
contiene las direcciones de dicho equipo.
Se usa solo con nodos vecinos y se lleva a cabo enviando un mensaje Neighbor
Solicitation dirigido a la dirección multicast de “nodo solicitado” del vecino en
cuestión.
• Neighbor Cache
o Es como la Caché ARP de IPv4.
o Contiene información de los vecinos con los que se ha intercambiado
tráfico recientemente.
o La información guardada es la dirección IP unicast, su dirección MAC y
un flag que indica si el vecino es un router o un host.
o Además tambíen indica si hay algún paquete en espera para ser enviado,
si el destino está al alcance y cuando se producirá la siguiente
comprobación NUD.
• Destination Cache
o Contiene exactamente la misma información que la Neighbor Cache más
la información de los destinos remotos. Es decir, la Neighbor Cache es
una parte de la Destination Cache.
o Para los destinos remotos, la entrada de la caché contiene la MAC del
siguiente router al que saltar.
o Esta caché se actualiza con los mensajes de Redirección de ICMPv6.
Autoconfiguración
Esta capacidad ahorrará mucho trabajo a los administradores de red y va a ser una de
las características clave de IPv6.
Permite que cualquier dispositivo (desde una TV hasta un móvil pasando por
frigoríficos, DVDs...) que requiera una dirección IP pueda conseguirla sin necesidad de
tener que ser configurado manualmente.
Para generar su dirección IP, los hosts utilizan una combinación de información
local, como su dirección MAC, e información recibida de los routers.
Los routers pueden anunciar múltiples prefijos, y los hosts extraen la información
del prefijo de esos anuncios.
Esto permite la renumeración sencilla de un sitio completo: solo hay que cambiar la
información del prefijo en el router. Por ejemplo, si se cambia de ISP y el nuevo ISP
asigna un nuevo prefijo IPv6, se pueden configurar los routers para que anuncien el
nuevo prefijo, manteniendo el resto de la dirección original. Todos los hosts conectados
a esos routers se renumerarán usando el mecanismo de autoconfiguración.
Si no hay routers, cada host se puede generar una dirección en enlace local (link-
local address) con el prefijo FE80.
La gran diferencia en IPv6 es que ahora, esa dirección FE80... es suficiente para la
comunicación de todos los nodos conectados al mismo enlace.
Llegados a este punto, es interesante saber que las direcciones IPv6 se asignan a los
nodos de forma temporal y que existe un intervalo de tiempo definido (lifetime) después
del cual la dirección deja de ser válida. Para asegurar que una dirección es única en un
enlace se usa el algoritmo DAD (= Duplicate Address Detection – RFC 4862).
Los estados por los que puede pasar una dirección IPv6 son los siguientes:
• Válida: son las direcciones que están activas (tanto la preferida como la
obsoleta).
Renumeración de red.
Este tema se trata en la RFC 4192 "Procedures for Renumbering an IPv6 Network
without a Flag Day". El llamado "Flag Day" (Día de la Bandera) es el día clave en el
que se va a interrumpir el funcionamiento de la red para realizar una tarea de
mantenimiento programada. Para evitar sufrir un "Flag Day" hay que pensar en una
estrategia distinta, que permita realizar un cambio progresivo en la configuración sin
necesidad de detenerla.
Este es el tipo de situación que tiene lugar cuando hay que realizar un cambio en el
prefijo de la red, cosa que puede ocurrir, por ejemplo, debido a un cambio de proveedor
de Internet.
Lo que se permite ICMPv6 es enviar mensajes para informar de cual será el nuevo
prefijo a utilizar, pero manteniendo aún el antiguo en funcionamiento. Una vez todos los
equipos están enterados del nuevo prefijo se "desactiva" el anterior, de modo que
continúan utilizando el nuevo. Se ha modificado la configuración de la red y se ha
evitado el “flag day”.
En IPv4, si un router detecta que un paquete es demasiado grande para ser enviado
por un enlace determinado, puede fragmentarlo. En IPv6 los routers no se dedican a
fragmentar paquetes, dejando esta tarea en mano del host de origen.
Antes de nada hay que recordar un par de conceptos. Por un lado, el significado de
“Link MTU(Maximum Transmission Unit”, que es el tamaño máximo de los
paquetes que pueden ser manejados en un enlace. Y por otro, el de “Path MTU”, que es
el valor de MTU más grande que se puede utilizar a lo largo de la ruta que siguen los
datos desde el origen al destino.
Para que no haya problemas en ningún punto, el valor de MTU a utilizar debería ser
el más pequeño de los que haya en el path.
Paseo de Heríz, 82 DONOSTIA GIPUZKOA TEL: 943313907 80
Centro de Estudios A.E.G.
En el caso de multicast, se usa el MTU más pequeño de los que hay en los caminos a
lo múltiples destinos.
Ya en IPv6, tenemos que multicast es una característica propia del protocolo y está
disponible en todos los nodos IPv6.
Después de una primera versión de MLD se llegó a MLDv2, que está basado en
IGMPv3 de IPv4 y que se diferencia de la versión anterior en soportar SSM (Source
Specific Multicast). Eso significa que un nodo puede elegir escuchar tan solo los
paquetes multicast procedentes de una dirección concreta, o de todas las posibles
fuentes excepto de una determinada. Esto es algo que en MLDv1 no es posible por
utilizar ASM (Any Source Multicast) en lugar de SSM.
Si nos centramos un poco en MLD vemos que este protocolo permite a los oyentes
multicast registrar las direcciones multicast que quieren utilizar, con objeto de conseguir
un enrutado eficiente.
Por otro lado, los routers utilizan MLD para descubrir qué direcciones multicast
tienen oyentes en cada uno de los links a los que están conectados.
El router mantiene una lista de direcciones con oyentes para cada uno de sus enlaces,
pero sin llegar a controlar cuántos oyentes activos hay.
Del mismo modo, un oyente puede darse de baja de un grupo por medio de un
mensaje.
En todos los mensajes MLD se usan direcciones de enlace local como origen y el
“hop limit” = 1. Así se limita el alcance al enlace local. También se usa la opción “Hop
By Hop” y se activa el flag Router Alert para garantizar de que el paquete será
procesado por el router aunque no sea miembro del grupo multicast.
Consta de tres mensajes, dos de los cuales, Multicast Router Advertisement (Tipo =
151) y Multicast Router Termination (Tipo = 153) permiten al router anunciar la
activación / desactivación de la difusión multicast.
El tercer mensaje, Multicast Router Solicitation (Tipo = 152), permite que cualquier
host pueda preguntar a todos los routers (FF02::2) si alguno trabaja con multicast.
Al igual que en MLD, todos estos mensajes se envían con “Hop Limit” = 1 y con la
opción “Router Alert” activa
Mixto: mediante mensajes RA configura la IPv6 del host y los datos referentes a las
direcciones de los servidores DNS y nombre dominio. En este caso se utiliza una
particularidad el servidor DHCPv6 configurado en modo "sin estado", de manera que no
da direcciones IPv6 y no controla el estado de los host que se conectan
3.2.2. Descripción
importantes a configurar son los mismos que los que se obtendrían de un servidor
DHCP con estado :
El funcionamiento del protocolo IPv6 a la hora de crear una red stateless se puede
resumir como sigue:
Por otro lado, un host puede solicitar los datos para autoconfiguración mediante el
envío de paquetes RS (Router Solicitation) que se envían a la dirección multicast
"Todos los routers del enlace local" (FE02::2) , a lo que los routers del enlace local
responden con paquetes RA enviados a su dirección local.
En la imagen siguiente podemos ver el flujo multicast generado por un host que
acaba de conectarse a la red. En este caso se trata de una red donde no se ha activado el
envío de paquetes RA, y por tanto intenta encontrar un servidor DHCP
Una vez activado el envío de paquetes RA por parte del router, el flujo queda
Desde el punto de vista del host podemos ver el estado inicial con las direcciones
auto-configuradas durante la instalación del protocolo IPv6
Veamos en este apartado como consigue un host las direcciones IPv6 necesarias
para autoconfigurarse.
El prefijo se añade a las direcciones IPv6 de cada host mediante un algoritmo que
combina el prefijo con la MAC de la interface basado en IEEE EUI-64 visto
anteriormente para la autoconfiguración de la dirección de enlace local.
Esta dirección es pública y fija, ya que siempre es la misma para un mismo prefijo, por
lo que puede dar problemas de seguridad al poder ser rastreada fácilmente
Direcciones anónimas
Para resolver el problema anterior se genera otra dirección global. Esta dirección se
puede obtener mediante un algoritmo hash que utiliza MD5 (Mesage Digest 5) o
aleatoriamente, dependiendo de que el protocolo IPv6 implementado memorice las
direcciones generadas previamente o no.
FEC0:0:0:0:FFFF::1,FEC0:0:0:0:FFFF::2 y FEC0:0:0:0:FFFF::3
En modo stateless las direcciones se generan a partir de un prefijo común a todos los
host de la misma red y un sufijo generado por el propio host bien mediante algún
algoritmo o bien de forma aleatoria.
2. Ponemos el séptimo bit, el bit U/L (universal/local) a 1, que indica una dirección
administrada de forma remota
3. Insertamos FFFE en medio de la MAC (bit 24 o Byte3º). El nº de 64 bits
obtenido se denomina Identificador de Interface
4. En la dirección IPv6 ponemos al final los 64 bits del Identificador de Interface
5. Cuando recibe el prefijo, este se coloca al inicio de la dirección y el resto se
rellena con ceros
Por ejemplo:
El proceso sería
Este proceso se repite continuamente cada cierto tiempo. Los tiempos pueden ser
configurados
Para que el router IPv6 pueda iniciar el proceso de autoconfiguración stateless debemos
configurar
• Mensaje RA
se recomienda.
RA Retransmit Se utiliza para ajustar un tiempo de intervalo entre 0 y
Time (ms) 4294967295 milisegundos para el envío de anuncios de enrutador
(RA) en esta interfaz en el enlace de red local, en respuesta a una
Mensaje de Solicitación de Vecino (RS). Este valor no debe
exceder el valor indicado en el campo el tiempo de vida se ha
mencionado anteriormente. Establecer este campo a cero, se
especifica que este cambio no se especifica el tiempo de
retransmisión para el enlace de red local. (y por lo tanto se
especificarán por otro router en la linklocal red. El valor
predeterminado es 0 milisegundos.
RA Managed Flag Utilice el menú desplegable para activar o desactivar la
bandera administrado. Cuando se activa, el mensaje RA indica
que hay que utilizar un proceso de configuración automática con
estado para obtener Direcciones IPv6 tanto a nivel global como
local. El valor predeterminado es Desactivado. Sería la
configuración statefull
RA Other Use el menú desplegable para activar o desactivar el flag
Configure Flag configurar otras. Cuando se activa, el mensaje RA indica que hay
que utilizar un proceso de configuración automática con estado
para obtener la información de configuración que no es la
dirección IP pero que, sin embargo, es importante para la
configuración de IPv6, como p.e los direcciones de los servidores
DNS. El valor predeterminado es Desactivado. Sería la
configuración mixta
RA Max Router Se utiliza para establecer el intervalo de tiempo máximo entre
AdvInterval (s) el envío de anuncios de enrutador (RA) por esta interfaz a través
del vínculo de red local. Esta entrada debe ser no menos de 4
segundos (4000 milisegundos) y no más de 1800 segundos. El
usuario puede configurar un tiempo de entre 4 y 1800 segundos,
con un valor predeterminado de 600 segundos.
RA Min Router Se utiliza para establecer el intervalo de tiempo mínimo entre
AdvInterval (s) el envío de anuncios de enrutador (RA) por esta interfaz a través
del vínculo de red local. Esta entrada debe ser no menos de 3
segundos y no más de 0’75 (3 / 4) de la MaxRtrAdvInterval. El
usuario puede configurar un tiempo entre 3 y 1350 segundos, con
un valor predeterminado de 198 segundos.
Configuración de RA
La siguiente imagen corresponde a una captura realizada con Wireshark del envío de
un mensaje RA (Type 134) donde se ven los flags Managed y Other desactivados y
demás datos de temporización.
• Prefijo
Flag Autónomo Habilitando este campo se indica que este prefijo puede ser
usado para autoconfigurar direcciones IPv6 en el enlace de red
local.
En la siguiente imagen podemos ver una captura realizada con Wireshark del envío
de un mensaje RA con un prefijo de 64 bits de longitud, con los flags Onlink y Auto
activados y demás datos de temporización.
3.3. DHCPv6.
Vamos a probar la configuración de direcciones IPv6 usando DHCPv6 para el
siguiente esquema de una LAN:
• Un ordenador Windows 7.
• Dibbler.
http://www.google.com/url?q=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FDH
CPv6&sa=D&sntz=1&usg=AFrqEzfcpC1F1DqKZQvy_8PZr1fA1VqxGQ
Una vez instalado Ubuntu Server (en nuestro caso la versión 9.10.) procederemos a
instalar el servidor dibbler:
Una vez instalado el servidor para configurarlo debemos editar el fichero server.conf
en /etc/dibbler
Obviamente podemos usar el editor de texto que queramos, vi, nano, gedit (si lo
hemos instalado).
# server.conf
iface eth0 {
class {
pool 2000::500-2000::600
}}
Debemos tener en cuenta que los clientes pueden configurarse de muchas formas.
Por ello en los siguientes apartados estudiaremos ls opciones de configuración de cada
cliente en cada sistema operativo.
Una vez instalado Windows 2008 server en el servidor, conviene también instalar un
controlador de dominio y un servidor DNS. Se puede realizar ejecutando dcpromo en la
interfaz de comandos. A continuación y para comenzar con las instalación de DHCP
deberemos dar los siguientes pasos:
Leemos las advertencias, nosotros hemos instalado en el servidor una IPv4 estática:
192.168.0.80
Red: 192.168.0.x
Mascara: 255.255.255.0
Una vez IPv4 está activo y con su ámbito definido, nos situamos en IP6, botón
derecho Agregamos ámbito:
Paseo de Heríz, 82 DONOSTIA GIPUZKOA TEL: 943313907 99
Centro de Estudios A.E.G.
Debemos elegir el Prefijo de las direcciónes IPv6 que vamos a repartir. Por
ejemplo, elegimos un prefijo de direcciones locales unicas para nuestra organización
fd00:1::1 Podríamos por ejemplo definir un ámbito para direcciones globales que
empiecen por 2001:xxxx pero en este caso elegimos el prefijo fd00:1::1/64 En cada
caso el administrador del sistema elegirá el ámbito que más le interese.
En el caso de IPv4 siempre que los sistemas operativos de los ordenadores cliente
indiquen en la configuración TCP/IP del adaptador de red que la dirección se obtenga de
forma automática para observar las concesiones basta ir a la opción Concesiones de
direcciones en el servidor DHCP IPv4. En nuestro caso, observamos los tres
ordenadores de la red.
Una vez instalados los clientes (como veremos más adelante), bastaría con ir a la
opción Concesiones de direcciones en el apartado IPv6 y obtendríamos la información
de cada cliente. En nuestro caso:
Sin embargo, para obtener una dirección DHCPv6 a través de un servidor no basta
con indicar en el modo gráfico que deseamos obtener una dirección IPv6
automaticamente. Debemos instalar un cliente. En nuestro caso vamos a instalar y
probar dibbler.
Para instalar dibbler en Ubuntu 9.10 Desktop version vamos a utilizar aptitude:
http://www.google.com/url?q=http%3A%2F%2Fklub.com.pl%2Fdhcpv6&sa=D&sn
tz=1&usg=AFrqEzdiHchTKXvdz6GeCxyYvUXl_Q2p-g
o directamente:
http://www.google.com/url?q=http%3A%2F%2Fklub.com.pl%2Fdhcpv6%2Fdibble
r%2Fdibbler-0.7.3-
src.tar.gz&sa=D&sntz=1&usg=AFrqEzf6NInE1Oc_l5hVWJLkiOEwBZPWJw
Iniciamos dibbler-client:
http://www.google.com/url?q=http%3A%2F%2Fklub.com.pl%2Fdhcpv6&sa=D&sn
tz=1&usg=AFrqEzdiHchTKXvdz6GeCxyYvUXl_Q2p-g
o directamente:
http://www.google.com/url?q=http%3A%2F%2Fklub.com.pl%2Fdhcpv6%2Fdibbler%2Fdibbl
er-0.7.2-win32.exe&sa=D&sntz=1&usg=AFrqEzenYtanrH1fvC_tm80dbgagZc-bnQ
Una vez descargado el fichero la instalación es tan simple como otra cualquiera en
windows. Veamos las ventanas:
Ejecutamos el .exe:
Ubuntu-Linux 9.10
Windows
Mediante comandos.
2001:db8:290c:1291::3/64
Pulsamos Aplicar y probablemente nos pedirá una contraseña con privilegios para
realizar el cambio. Introducimos la contraseña. La dirección ha sido asignada tal y
como lo indica la ventana gráfica.
En nuestro caso:
ping –c 4 2001:db8:290c:1291::3
En el caso anterior, hay que destacar que la configuración que hemos realizado
desaparecerá cuando reiniciamos el ordenador. Es decir, la dirección de ámbito
Paseo de Heríz, 82 DONOSTIA GIPUZKOA TEL: 943313907 118
Centro de Estudios A.E.G.
Como hemos indicado para modificar opciones de una interfaz ip link set posee las
siguientes opciones:
Hemos utilizado eth0 para los ejemplos, pero logicamente la interfaz puede ser la
que cada uno desea dentro de las interfaces configuradas en el ordenador.
Mediante comandos.
Mediante comandos.
Veamos que posibilidades existen tanto desde el entorno gráfico como desde la
interfaz de comandos:
En Windows XP de momento (es casi seguro que Microsoft no realizará los cambios
necesarios) la configuración de IPv6 no puede modificarse desde el interface gráfico.
Al contrario de lo que ocurre para IPv4, la opción Propiedades de cualquier interfaz de
red que seleccionemos ( InicioPanel de controlConexiones de red, seleccionar
interfaz y botón derecho ) permanece inactiva.
Se debe tener cuidado al escribir el nombre puesto que "Conexión de Area local" es
distinto de "Conexión de área local" tanto en la A mayúscula como en la tilde.
Cualquier error de sintaxis obtendra la siguiente respuesta:
Una opción mucho más sencilla es indicar el índice de la interfaz (el número) en
lugar de su nombre, en nuestro caso, sería el 4, por tanto, podríamos hacer lo mismo
escribiendo:
ping :2001:db8:290c:1291::1
Veamos que posibilidades existen tanto desde el entorno gráfico como desde la
interfaz de comandos:
Inicio--> Panel de control --> Redes e internet --> Centro de redes y recursos
compartidos:
Basta con escribir la nueva dirección IPv6, la longitud del prefijo y la puerta de
enlace si es que existe.
“preferred lifetime” y hacer que este cambio sea persistente (no cambie cada vez que se
reinicia el sistema):
ping 2001:db8:290c:1291::2
El entorno netsh diseñado por Microsoft puede utilizarse en todas las versiones
modernas de Windows. Por ello, vamos a analizar algunas opciones más que podeis
probar desde Windows XP, Windows Vista, Windows 7, etc…
Donde se especifica para que podemos utilizar cada opción. Por ejemplo, si
quisieramos eliminar la dirección añadida utilizaríamos la opción delete. Para ver sus
opciones:
Podemos eliminar una interfaz completa, una dirección concreta de una interfaz, etc.
Tarea Descripción
2. Disponer de un ISP que admita Buscar un ISP que admita IPv6. Se pueden
IPv6. utilizar dos ISP, uno para IPv6 y otro para IPv4.
6. Diseñar un plan para el uso de Establezca los routers que deben ejecutar
túneles. túneles a otras subredes o redes externas.
10.Habilitar los nodos para que Configurar IPv6 en todos los hosts y routers.
admitan IPv6.
11. Activar los servicios de red Comprobar que los servidores puedan admitir
IPv6.
12. Actualizar los nombres de Comprobar que los servidores DNS, NIS y
servidor para la compatibilidad LDAP se actualicen con las nuevas direcciones
Existen varios mecanismos para utilizar las infraestructuras IPv4 mientras la red
IPv6 está siendo implantada. Los mecanismos se clasifican en:
• IPv6 in IPv4
• IPv6 to IPv4
• Teredo
Mientras nuestro proveedor de Internet no nos ofrezca una dirección ipv6 para
nuestro ADSL no podremos tener una red IPv6 nativa en la Empresa.
EJEMPLO:
extremo inicial es un nodo (Firewall, host de la Empresa) que conecta con un servidor
en Internet (extremo final). Los dos nodos tienen una dirección IPv4 asociada.
10.10.10.50 216.66.80.26
IPv6 ori. IPv6 desti. Datos
El “tunnel server” es un Router con pila doble (IPv4 e IPv6), conectado a Internet,
que siguiendo órdenes del “broker” crea, modifica o borra los servicios asociados a un
determinado túnel/usuario.
Pila doble: Consiste en usar los protocolos Ipv4 e Ipv6 simultáneamente en pilas
separadas. En cada pila tendrá una dirección IP de cada tipo, estas pueden estar o no
relacionadas. De esta forma, un dispositivo de este tipo puede comunicar enviando
tráfico con nodos que soportan uno de los dos protocolos.
http://lacnic.net/documentos/lacnicxi/presentaciones/Intro_Consulintel_Tutorial_IPv6_LACNIC_XI_v1_2.pdf
El túnel creado es un túnel directo entre un punto y otro punto. No se tiene acceso
directo a internet con IPv6. Se puede configurar el túnel manualmente (bien el usuario
mediante un comando o el sistema operativo porque lo tiene configurado) o
automáticamente (el broker).
Vamos a mostrar una tabla con los distintos proveedores de Túnel broker existentes.
B
RD
Proveedor Cobertura Subred Protocolos Estático NS
G Registro Configuración Idioma
P
Estados
Unidos,
Canadá, / 64 y
Hurricane Requiere
Europa (6 /48 6in4 Sí Sí Sí Sitio web Inglés
Electric[4] registro
países), subred
Hong Kong,
Tokio
RIPE,
Estados ARIN,
/ 64 del
Unidos, APNIC,
túnel y TIC /AICCU,
Brasil, Europa 6in4, LACNIC,
SixXS de Sí Sí Manual, Inglés
(13 países), AYIYA AFRINIC,
subred / página web
Nueva O
48
Zelanda[5] directamen
te registro
Anónimo,
o un
Montreal, registro
6in4,
gogo6/Free Amsterdam, / 56 de (mediante TSP,
4in6, Sí Sí Inglés
net6[2] Taipei, subred el registro Sitio web
TSP
Sydney en
gogoNET]
)
Protocolos Los protocolos de tunelado son provistos por el proveedor. Esto tiene
impacto para la posibilidad de usar los túneles en máquinas que se
encuentran detrás de NAT o en casos donde la IPv4 del usuario
cambia frecuentemente.
Idiomas Idiomas que están soportados por las interfases web y otros canales de
comunicación de los proveedores.
NOTA:
• Freenet es un bróker que se comunica muy bien con cualquier tipo de túnel
(6in4, 6to4).
• Hurricane se comunica bien hacia Freenet pero no hacia 6to4. Para que esta
comunicación sea posible hace falta un relay router.
IPv4: 1.2.3.4
IPv6: 2002:0102:0304::1
Para calcular una dirección IPv6 a partir de una IPv4 podemos usar las órdenes
ipv6calc y printf. Para usar la orden ipv6calc previamente deberemos instalarla.
#printf “2002:%02x%02x:%02x%02x::1\n” a b c d
IP pública ADSL 4f 94 71 de
HAXADECIMAL
#nano /etc/network/interfaces
auto sit0
iface sit0 inet6 static
address 2002:4f94:71de::1 (4F94:71 de IP pública del ADSL en hexadecimal)
netmask 16
gateway ::192.88.99.1
endpoint any
local 79.148.113.222 (Ip pública del ADSL)
Este mecanismo funciona aún cuando la dirección IPv4 global (pública) es única y se
accede a la red mediante mecanismos NAT (Network Address Translation), que es el
caso más común en las redes actuales para el acceso a Internet a través de ISP’s.
http://www.ipv6tf.org/images/figure_6to4.jpg
4.3. Teredo.
El objetivo de este mecanismo es dar conectividad IPv6 a aquellos usuarios que se
encuentran detrás de un NAT y que por lo tanto el host tiene una IP privada.
De forma similar a 6to4, este sistema se habilita de forma automática aportando una
dirección IPv6 a los nodos Windows Xp/ 2003/ Vista y Windows 7 finales del usuario
cuando se cumplen las siguientes condiciones:
• Enruta tráfico entre host con Teredo y host IPv6 nativos (es decir, que no
usan Teredo)
Teredo aporta una dirección IPv6 con la siguiente forma a cada host:
Descripción Prefijo Teredo Server Flags puerto UDP IPv4 pública del cliente
IPv4
Ejemplo 2001:0000 4136:e378 8000 63bf c000:022d
http://en.wikipedia.org/wiki/Teredo_tunneling
• Los host se conectan con los nodos Teredo Server y estos últimos detectan
detrás de qué tipo de nat se encuentra el cliente. El host (Teredo cliente)
mantiene un vínculo permanente con Teredo Server enviando cada cierto
tiempo paquetes UDP. Este sistema asegura que el servidor puede contactar
con cualquiera de sus clientes y que el túnel está activo.
• Los Relays Teredo son puertas de enlace entre internet IPv6 y los clientes
teredo. Su función principal es la transmisión y recepción real de los
paquetes de tráfico IPv6. Los relays deben estar en internet IPv4 e IPv6.
Estos relay pueden contactar con Servidores Teredo si lo necesitan para
redireccionar paquetes.
• teredo.autotrans.consulintel.com (España)
Teredo sólo puede proporcionar una dirección IPv6 única por el túnel a un punto
final. Como tal, no es posible utilizar un único túnel Teredo para conectar varios hosts.
Para que los túneles Teredo funcionen los Firewalls no deben filtrar los paquetes
UDP 3544 entrantes ni salientes.
Vamos a ver los pasos a seguir para crear un túnel con freenet6 en un host
(Windows) de la LAN (en este caso estamos detrás de NAT) y de esta manera conseguir
conectividad Ipv6 para este host teniendo Ipv4.
COMENCEMOS:
http://www.gogo6.com
Haremos clic en el vínculo que pone Freenet6 y nos aparecerá la siguiente ventana
en la cual tendremos que elegir la opción Sign Up:
Una vez registrados, podremos iniciar sesión introduciendo los datos del registro y
haciendo clic en Sign In.
• Descarga de software
Una vez iniciada la sesión, nos aparece una ventana en la que tendremos que hacer
clic en DOWNLOAD Latest gogoCLIENT .
Se nos abrirá una ventana con dos versiones diferentes, “Basic Version” y “Home
Access versión”. Descargamos la que nos convenga. Esta última se diferencia de la
primera porque dispone de una herramienta llamada HomeAccess que permite utilizar el
software como servicio web.
• Instalación de gogoCLIENT
Se nos descargará un fichero ejecutable en el que haremos doble clic y con una
rápida y sencilla instalación dispondremos del software de gogo instalado en nuestro
PC.
La opción “launch de gogoclient service system at startup” activada cada vez que
reiniciamos o encendemos el ordenador pondrá el túnel en marcha. De forma
predeterminada tendremos la red con IPv6. No es conveniente tenerla activada por
seguridad.
Utilizaremos los datos del registro para conectarnos con nuestra identificación en la
pestaña Basic, con esta identificación, podremos utilizar la utilidad de servicio web en
la versión HomeAccess.
La longitud del prefijo asignado es de 64 bits. En los túneles con conexión anónima
el prefijo cambia respecto a la conexión autenticada. En el primer caso, el prefijo tiene
la forma 2001:5c0:1400:a:: /64 (acaba con a) y la dirección IPv6 que tiene asociada
cambia con cada conexión del túnel mientras que en el segundo el prefijo tiene la
forma 2001:5c0:1400:b:: /64 (acaba con b) y la dirección IPv6 es asignada de forma
NOTA:
Para navegar bien con direcciones IPv6 es necesario que la versión del Navegador
Explorer sea 8 o posterior. Podemos personalizar la configuración. Para ello en el
software de gogo6client elegiremos la ficha Advanced:
• La primera opción “Tunnel Mode”: Nos permite elegir entre varias opciones.
IPv6-inIPv4 Tunnel, IPv6-inIPv4 Tunnel (Native), IPv6-in-UDP-IPv4
Tunnel (NAT Transversal), y IPv6-inIPv4 Tunnel (DSTM). Si dejamos
seleccionado el valor por defecto (se muestra en la imagen), gogoCLIENT
preguntará a gogoSERVER cuál es el tipo de túnel que más le conviene
crear. gogSERVER analizará a gogoCLIENT y determinará el tipo de túnel
que le conviene establecer (nativo o con NAT transversal). En la ficha Status
podremos consultar el tipo de túnel que finalmente ha creado.
manera podemos con un solo túnel dar direcciones IPv6 a cada host de la
LAN.
• Poner una página Web accesible desde Internet. Trabajaremos con las otras
dos pestañas que tiene nuestro aplicativo “HomeWeb” y “HomeAccess”. En
la primera ficha activaremos el cuadro “Enable Home Web” y en la caja de
texto pondremos la ruta donde tenemos nuestra página Web alojada en el
disco duro.
El objetivo es crear un túnel desde un firewall dotándole de una dirección ipv6 hacia
internet y que pueda llegar a ver páginas web ipv6.
Entre toda la información que hay observamos, la dirección IPv4 e IPv6 de los dos
extremos del túnel. Además, un prefijo IPv6 que tenemos asignado en exclusividad para
dar una dirección IPv6 a cada host de nuestra LAN que se encuentra detrás del Firewall.
Este Host es un ordenador con distribución Debian que tiene dos tarjetas de Red,
una de ellas unida a la red LAN (eth1) y la otra a la Red del ADSL (eth0).
REQUISITOS:
Desde la web de Hurrricane, por usuario solo se pueden crear 5 túneles, tiene esa
limitación.
Primeros pasos:
1. Probar que el kernel de debían admite IPv6. Este debe ser posterior a 2.6
modprobe IPv6
Resultado:
ipv6 411425 18
Creamos un archivo que tiene las ordenes iptables que configura el Firewall. Al
archivo le damos el nombre de “permitir” y lo almacenamos en la ruta /etc/init.d
#!/bin/bash
pt=/sbin/iptables
echo 1 >/proc/sys/net/ipv4/ip_forward
echo 1 >/proc/sys/net/ipv6/conf/all/forwarding
En este archivo además de poner las políticas por defecto Aceptar, se da la orden
de forwardear entre las tarjetas los paquetes IPv4 e IPv6. Además, se da la orden de
enmascarar únicamente los paquetes IPv4. Los paquetes IPv6 usan el protocolo 41 y se
le está indicando al Firewall que no enmascare estos paquetes. Este archivo tiene un
enlace creado en /etc/rc2.d para que se ejecute cada vez que se inicia el Host.
ip tunnel add he-ipv6 mode sit remote 216.66.80.26 local 10.10.10.50 ttl 255
Sintaxis:
El modo ipip corresponde a un simple túnel IP sobre IP. Se encapsulan los paquetes
sin más. El modo sit se usa para túneles IPv6. El modo gre corresponde a los túneles
GRE especificados por la compañía Cisco, que son túneles IP sobre IP cifrados.
Permite poner una ruta estática. Cualquier paquete que esté destinado a una
dirección IPv6 deberá salir por el túnel llamado he-ipv6.
ip -f inet6 addr
Todas las órdenes juntas forman el script para crear el túnel. Se puede usar cualquier
editor de texto (nano, vi,..) :
ip tunnel add he-ipv6 mode sit remote 216.66.80.26 local 10.10.10.50 ttl 255
ip link set he-ipv6 up
ip addr add 2001:470:1f08:744::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip -f inet6 addr
apacheaeg:/home/apacheweb# ifconfig
Paseo de Heríz, 82 DONOSTIA GIPUZKOA TEL: 943313907 156
Centro de Estudios A.E.G.
Consiste en un mecanismo con el cual un nodo que se acaba de incorporar a una red,
descubre la presencia de otros nodos en el mismo enlace. Este protocolo también se
ocupa de mantener limpios las caches donde se almacena la información relativa al
contexto de la red a la que está conectado un nodo. Así cuando una ruta hacia un cierto
nodo falla el enrutador correspondiente buscara rutas alternativas. Emplea los mensajes
de ICMPv6, y es la base para permitir el mecanismo de autoconfiguración en IPv6.
NOTA: La última acción ha sido necesaria ya que el enlace que tiene el demonio
radvd en rc2.d llamado S50radvd no se ejecuta.
Después de dar esta orden cada interface de la LAN tendrá una dirección IPv6
formada con el prefijo que le ha dado el demonio más la Mac de la tarjeta de Red. En
este instante tenemos una Red IPv6. La Red IPv4 se mantiene y está funcionando. Tan
sólo falta darle una dirección IPv6 a la interface eth1 perteneciente al prefijo que nos
han dado: 2001:470:1f09:744::1. Para ello, editamos en archivo /etc/network /interfaces
y añadimos las siguientes órdenes:
En este instante desde cualquier host de nuestra red tenemos posibilidad de consultar
Páginas web IPv6 en Internet. Además, podemos ver nuestra página web en el Firewall
desde cualquier host que tenga una dirección IPv6.
La puerta de enlace que está detrás de la LAN es la dirección IPv6 (fe80:---) local
de la interface del Firewall. No utiliza la dirección global IPv6. El servidor DNS no
coge una dirección IPv6 utiliza una dirección IPv4. El servidor DNS IPv4 resuelve
direcciones IPv4 e IPv6.
Paseo de Heríz, 82 DONOSTIA GIPUZKOA TEL: 943313907 159
Centro de Estudios A.E.G.
Un paquete que debe salir a Internet desde un host de la LAN, inicialmente será
enviado a la interface del Firewall local (fe80), una vez el paquete ha llegado al router
este consulta en su tabla de enrutamiento la dirección Ipv6 por la que debe salir para
llegar a internet.
#route –A inet6
La línea resaltada indica que para ir a cualquier dirección IPv6 (::/0) se saldrá por el
túnel he-ipv6.
El protocolo IPv6 y Teredo está habilitado por defecto tanto en Windows Vista,
Windows 7 como en Windows XP SP3.
Deberemos tener un host con Windows 7 detrás de una ADSL. Antes de dar las
órdenes deberemos entrar en la ventana CMD con permisos de Administrador. Sobre el
“Símbolo del sistema” pulsamos botón derecho del ratón y elegimos “Ejecutar como
Administrador”.
Podemos comprobar nuestro host a que servidor Teredo accede dando la orden:
Observamos que en tipo pone client. Este parámetro indica que nuestro host utiliza
Teredo cliente. El servidor al que va a acceder nuestro host es
“teredo.ipv6.microsoft.com”. El Intervalo de actualización del cliente tiene como valor
60 y su objetivo es la comprobación del estado del túnel enviando un paquete. El
puerto se ha especificado con el valor 34567 y su estado es dormat. El hecho de que
tenga este valor significa que ha conectado con un servidor teredo. Si no lo consigue
(porque el Router ADSL no se lo permite) tendrá el valor offline.
Vamos a acceder a la página Web creada en un host Debian que tiene un túnel
creado con el bróker Hurricane. Su dirección IPv6 es : http://[2001:470:1f08:744::2]/
Este host con Windows 7 nos permite ver páginas Web en otros host con IPv6 pero
tan sólo se puede salir de él y nadie podrá llegar al mismo a ver su página web si la
tuviera ni haciendo ping.
Después, hemos ejecutado el programa como root (Wireshark as root), se nos abre la
pantalla principal y hay que hacer una pequeña configuración.
El círculo rojo de mayor tamaño, es para elegir algún tipo de filtro si deseamos
filtrar los paquetes capturados.
Si hacemos clic en el botón de los filtros, nos aparece la siguiente ventana donde
podremos elegir el protocolo a filtrar o alguna de las opciones que nos aparecen en la
lista. Nosotros no vamos a elegir ningún filtro.
Aceptamos la ventana de los filtros si hemos elegido algún filtro y sino cancelamos
y una vez realizados estos pasos, clicamos en el botón Start y el programa iniciará la
captura de paquetes en modo promiscuo.
Como podemos ver, por cada captura nos muestra los siguientes apartados.
• Nº de Paquete.
• Tiempo tardado.
• IP Origen.
• IP Destino.
• Protocolo.
• Información acerca del paquete (puerto que se ha utilizado, acción que se ha
realizado, tardanza de la acción...)
Para acceder mediante ssh desde un Windows Vista, hay que usar el software Putty
que lo descargamos desde:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Ejecutaremos el programa y nos pedirá la IP del host destino (IPv6 en nuestro caso).
Clicando en el botón Open se nos abrirá una ventana parecida a CMD donde
tendremos que introducir un usuario y contraseña del otro host destino.
La máquina TK1 hace una petición (Request) de conexión hacia la máquina TK2.
Esta segunda máquina acepta la petición (Response). Observamos que el tráfico está
encriptado.
Esta otra imagen, muestra los paquetes capturados accediendo a la web que el
Debian tiene alojada con el navegador desde otro PC con conectividad Ipv6.
Una máquina TK1 con IPv6 2001:5c0:1400:b::70db consulta la página web de otra
máquina TK2 con IPv6 2001:470:1f08:744::2
Paseo de Heríz, 82 DONOSTIA GIPUZKOA TEL: 943313907 168
Centro de Estudios A.E.G.
Han abierto una conexión segura TCP entre los puertos 49769 y 80 para la
señalización de la petición de la página Web. Para esto utilizan el proceso de saludo a
tres vías de establecimiento de conexión TCP (Fijándonos en las tramas 3,4 y 5).
Sin embargo NDP también posee una nueva función en relación a su homólogo
ARP, que es la autoconfiguración de la dirección IPv6 por medio del envío de
paquetes Router Advertisement (RA).
La única manera de estar seguro de que las comunicaciones IPv6 a través de Teredo
no son vulnerables a un ataque de suplantación de la identidad es protegerlas
adecuadamente por medio de IPsec ya que proporciona seguridad de extremo-a-
extremo impidiendo que en el caso de que existan servidores/relays que interceptan
tráfico, estos puedan ver su contenido.
despliega los agentes Teredo, por lo que el usuario final no tiene muchos recursos para
luchar contra ellos.
Los tipos de ataque que se pueden llevar a cabo con 6to4 se fundamentan en las
características del mecanismo: los nodos 6to4 deben aceptar tráfico IPv4/IPv6 enviado
desde cualquier lugar, sin comprobar identidades y sin una relación de confianza previa.
Con esta premisa es fácil entender que 6to4 se pueda usar para llevar a cabo ataques
de tipo DoS y de suplantación de la identidad posibilitando ataques de tipo man-in-the-
middle. Pero también existen otras vulnerabilidades como se describirá a continuación.
Al igual que ocurre con Teredo, al usar 6to4 el nodo cliente se conecta a la Internet
IPv6 global de forma directa, puenteando las posibles medidas de seguridad perimetral
instaladas habitualmente en la red para IPv4. Por tanto se pueden aplicar en este caso
las mismas consideraciones que con Teredo en cuanto a las medidas de seguridad en las
comunicaciones extremo-a-extremo.
Puesto que un nodo 6to4 necesita de un relay 6to4 para conectar con un nodo IPv6
nativo, un atacante podría hacerse pasar por un relay 6to4con el fin de espiar el tráfico
intercambiado entre ambos.
La única forma de hacer esto es conseguir que el relay 6to4 haga pensar al nodo
6to4 que él es el relay adecuado (bien porque tenga la dirección anycast 192.88.99.1
asignada a este servicio o bien porque se use una dirección unicast y se haga pasar por
un relay confiable) y además sea capaz de anunciar por BGP el prefijo IPv6
correspondiente a 6to4: 2002::/16 .
Sin embargo este ataque es más difícil de llevar a cabo que en el caso de Teredo
debido a la asimetría en las rutas que sigue el tráfico intercambio entre ambos nodos: el
relay 6to4 que usa el nodo 6to4 y el nodo IPv6 nativo puede ser diferente en la
comunicación llevada a cabo entre ambos.
Esta característica podría ser aprovechada para llevar a cabo actividades ilícitas
como:
Todo ello con la novedad de que ser indetectables en la Internet actual en el caso de
que las medidas de control de tráfico solo controlen paquetes TCP/UDP transportados
sobre paquetes IPv4.
• El escaneo de Red es más complicada. Escanear por fuerza bruta una red de
área local IPv6 puede llevar, con la tecnología actual, más de 5.000 millones
de años, lo cual evidentemente es impensable. También los ataques
automatizados, por ejemplo gusanos que seleccionan direcciones aleatorias
para propagarse, se ven dificultados.
• IPsec. La especificación de IPv6 dice que toda pila IPv6 debe llevar IPsec
incorporada. Esto es una ventaja ya que IPsec está disponible si se quiere
usar. En la práctica el uso de IPsec es escaso debido sobre todo a la falta de
un mecanismo generalizado y global de intercambio de claves.