viernes, 9 de mayo de 2014

Análisis sobre la evolución de las redes de comunicación.

Hace algunos años, cuando las redes de comunicación se encontraban en su mayor auge, se tenia cierto grado de incertidumbre respecto al rumbo en el cual evolucionarían las comunicaciones, por una parte se tenían las redes SONET/SDH y en otra mano lo que hoy conocemos como las redes Ethernet/IP.

Finalmente ganaron las redes IP, algunas empresas decidieron invertir y apostar por las tecnologías SDH, estas empresas tuvieron grandes perdidas cuando la humanidad decidió apuntarse en una dirección diferente, quienes creyeron en el protocolo IP tuvieron mejores oportunidades y hoy los vemos como líderes en la industria de lo que hoy conocemos como  el protocolo IPv4.

En su proceso de evolución, las redes de comunicación dieron un siguiente paso adicionando un mecanismo de transporte para múltiples protocolos basado en etiquetas, conocido mundialmente como Multi Protocol Label Switching (MPLS).

Hoy en dia las redes de proveedores hacen uso de MPLS para proporcionar el transporte de redes de diferentes tipos tanto legacy ATM, FrameRelay, SDH, como lo actual y nuevo Ethernet, IPv4 e  IPv6, sin embargo, una vez mas el rumbo de las comunicaciones esta alcanzando la cúspide de inflexión en la cual se determinan los cambios tecnológicos que deparan a la raza humana.

A los que trabajamos y vivimos de las redes de comunicación no nos queda mas que aprender y adaptarnos a los cambios que se suscitaran ante esta tercera ola tecnológica, las tecnologías que nos esperan son retadoras y actualmente ya existen, las grandes compañías que una vez liberaron el mercado y debatieron sobre el futuro de la humanidad lo están haciendo una vez mas.

Asi que les digo, hay que aprender, adaptarse, estudiar continuamente, con la mirada puesta en el futuro, sin olvidar aprender del pasado.

IPv6 Neighbor Discovery Protocol

Saludos,

El proposito de este post es, establecer bases teóricas sobre el comportamiento del protocolo IPv6 el cual hace uso de mecanismos de comunicación basados en Multicast para el envío de paquetes IPv6 entre diferentes dispositivos.

Si recordamos un poco, en las redes IPv4 existe un tipo de comunicación de uno a todos llamado Broadcast. Para comunicar dos dispositivos en un mismo segmento de red, debe existir una coherencia y relación entre las direcciones lógicas IPv4 y las direcciones físicas MAC, esta relación se construye en una base de datos a partir del protocolo ARP, el cual usa Broadcast como método de comunicación.

En la entrada anterior se dijo que en IPv6 no existe el Broadcast y que en su lugar se utiliza Multicast para establecer comunicación de uno a muchos dispositivos.

De esta forma IPv6 evoluciona para no usar el protocolo ARP, sin embargo para satisfacer los requerimientos de comunicación entre dispositivos surgen los protocolos de los cuales hoy les vengo a hablar

Neighbor Discovery Protocol.

El estándar RFC 4861 establece las bases sobre las cuales dos terminales que cuenten con direcciones IPv6 deben emplear para poder comunicarse en un mismo segmento de red, para esto se definen 5 tipos de paquetes ICMP que un host puede enviar o recibir, IPv6 hace mayor uso de ICMP que IPv4 quien solamente utilizaba para enviar notificaciones de destinos inalcanzables.

Los 5 tipos de paquetes ICMP son Router Solicitation/Router Advertisement, Neighbor Solicitation/Neighbor Advertisement, y Redirect.


Router Solicitation

Cuando un host activa una interfaz en una red IPv6 este envia un paquete ICMP  consultando si existe un Router en el segmento de red.

Router Advertisement

Un router responde un Router Solicitation, para notificarse a si mismo como Router dentro del segmento de red, a la vez proveer información relevante sobre el estado de la conexión.

Neighbor Solicitation

Funciona igual que Router Solicitation, sin embargo es principalmente utilizado para detectar otros host en la red.

Neighbor Advertisement

Funciona igual que Router Advertisement, sin embargo es principalmente utilizado para anunciar un host en la red.

Redirect

Es un mensaje enviado por un Router para informar que existe un mejor camino para alcanzar la dirección deseada.


Este intercambio de mensajes es utilizado por otros protocolos para realizar procesos tales como Auto Configuracion de direcciones IPv6 State Full o StateLess, adicionalmente sirve para realizar la detección de direcciones duplicadas en el segmento de red.

Podemos ver que en una red IPv6 existen un gran numero de protocolos de comunicación que están ínter actuando para garantizar la conectividad de las plataformas, reduciendo problemas que previamente se tenían en las redes IPv4.

Estos mecanismos de comunicación entre hosts y Routers implican un riesgo potencial de seguridad, ya que dan cabida a potenciales ataques de hombre en el medio, donde un hacker se auto proclame Router en una red, por lo cual existen mecanismos especiales para segurizar esta comunicación, este tema será abordado en otro post.

Espero que les sea de ayuda o haya parecido interesante, de antemano se agradece cualquier comentario  o cualquier aporte, hasta la próxima.

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.