jueves, 8 de mayo de 2014

Auto Configuracion de direcciones IPv6 (SLAAC + EUI-64)

Saludos,

En esta ocasión les traigo un tema que es de mucho interés en el despliegue de redes IPv6, es la auto configuración de direcciones IPv6, como recordarán en IPv4 teníamos dos métodos para configurar las direcciones IP, los cuales eran manual, o dynamica a traves del protocolo DHCP, la configuración de direcciones IP de forma manual se convirtió una practica poco eficiente y sin mucha escalabilidad, debido a la complejidad operativa de realizar la configuración en cada PC.

Por medio de DHCP es posible asignar direcciones IPv4 sin necesidad de aplicar configuración especifica en cada dispositivo final de la red, esto redujo costos operativos y maximizo la eficiencia en una red enterprise, ya que al agregar una nueva estación de trabajo no había necesidad de hacer nada especial para agregarla a la red, de igual forma se redujeron los errores por duplicidad de direcciones IP.

Si asignar direcciones IPv4 de forma manual se volvía complejo, ahora imagina extrapolar eso a 128 bits, las direcciones son mas complejas y se volvería insostenible hacer la asignación de direcciones de forma manual, por lo que existen la versión v6 del protocolo DHCP, el cual a diferencia de la versión para IPv4 este no utiliza packetes de broadcast para el intercambio de información, este hace uso de Multicast, en términos generales en IPv6 no existe el trafico broadcast, solamente se utiliza Multicast, pero eso es tema de otro post.

El protocolo DHCP es un metodo llamado State Full, debido a que el servidor que provee este servicio tiene pleno control y gestión de las direcciones v4 o v6 que esta arrendando. un cliente de este servicio podemos decir que pide prestada una dirección por un tiempo.

El objetivo de este post no era hablar tanto de DHCP sino que en realidad estaba fomentando la base para hablar de la auto configuración del tipo State Less llamado SLAAC (State Less Adress Auto Configuratión) RFC2464, en el cual no existe un servidor centralizado responsable de asignar las direcciones IPv6 sino que en realidad es cada Host que se conecta a una red envía mensajes ICMPv6 buscando descubrir un Router en el link local, vale la pena mencionar que también en el envío de estos mensajes se utiliza Multicast, estos paquetes de descubrimiento deben ser enviados a todos los host que se encuentren conectados en el segmento de red, esto nos recuerda un poco al concepto de Broadcast, sin embargo recordemos que en v6 el broadcast es obsoleto por lo que se envían los paquetes a una dirección fija de Multicast.

Este procedimiento es llamado router-solicitation, en caso de que en la red se encuentre un router con la capacidad de responder estas solicitudes, este enviará los parámetros base de red para la configuración de los host.

El mecanismo de configuracion SLAAC hace uso del estándar EUI-64 (RFC4291) en el cual se define una IPv6 incluyendo 64 bits de EUI-64. de estos 48 son generados a partir de un identificador de la interfaz física. en la mayoría de casos este numero, es la misma dirección MAC, (RFC2464) existen algunas excepciones o extensiones pero no entrare en detalles al respecto, para completar los 64 bits se insertan al medio 16 bits reglamentarios en una dirección formada bajo este estándar.

Digamos que tenemos una PC con la dirección MAC 34-56-78-9A-BC-DE, esta dirección física fue establecida por el fabricante de la NIC (Network Internet Card) en la cual los primeros 24 bits conforman el OUI (Organization Unique Identifier), es decir el numero único que identifica al fabricante de la NIC, los restantes 24 bits conforman el identificar único de esa NIC.

El estandar EUI-64 define 16 bits con el valor FF-FE para ser insertados al medio entre las dos mitades de la direccion MAC, de esta forma 34-56-78-FF-FE-9A-BC-DE, asi se completan los 64 bits del estándar con los cuales un host puede autoconfigurar su propia dirección IPv6.

EJ.

Configuración de dirección IPv6  bajo el estándar EUI-64::

R1#show interface Fa0/1 | in Hard
  Hardware is Gt96k FE, address is c000.6dc2.0001 (bia c000.6dc2.0001)

R1#show run int fa0/1
!
interface FastEthernet0/1
 no ip address
 duplex auto
 speed auto
 ipv6 address ABCD::/64 eui-64

R1#show ipv6 interface brief
FastEthernet0/0            [administratively down/down]
FastEthernet0/1            [up/up]
    FE80::C200:6DFF:FEC2:1
    ABCD::C200:6DFF:FEC2:1


Subrayados los 48 bits tomados a partir de la dirección MAC.
Negrita los 16 bits insertados a partir del estándar EUI-64

En el primer comando vemos que la dirección de Hardware inicia de esta forma c000..., sin embargo en la dirección IPv6 podemos ver un valor diferente C200…, esta discrepancia es debido a que el estándar establece que el séptimo bit de izquierda a derecha debe ser negado.

   C       0
1100  0000

Después de la negación del séptimo bit

   C       2
1100  0010

Gracias no olviden comentar, si tienen alguna pregunta con gusto se responderá bajo este post, también se agradecen ideas de temas para crear otras entradas.

3 comentarios:

  1. Ing por favor podria colocar un ejemplo de configuracion de un router con el servicio SLAAC sin DHCP para que suministre IPs v6 a estaciones de trabajo de los ususarios, se lo agradeceria.
    Saludos.!!!

    ResponderEliminar
  2. Cuando escribo el comando "ipv6 address ABCD::/64 eui-64" , me marca error en eui-64, pero si se lo borro me sale como un comando incompleto. ¿Qué esta sucediendo?

    ResponderEliminar
  3. Si es dinamico, como reconozco el IP de la Pc

    ResponderEliminar