17 de noviembre de 2014

Ruta estática flotante + IP SLA

Un modelo de acceso a Internet habitual en redes de medianas dimensiones es el que está compuesto por 2 proveedores de acceso a Internet cuyo acceso se administra a partir de un único router de acceso.
Un modelo semejante al que ilustra el gráfico:
En este esquema, un requerimiento posible es que el enlace del ISP 1 sea el enlace activo y utilicemos el enlace al ISP 2 como enlace de respaldo.
Como se trata de enlaces a Internet, es siempre posible resolver el enrutamiento hacia Internet utilizando una ruta estática por defecto. Pero en este caso, si utilizamos 2 rutas estáticas por defecto (en principio) se balanceará tráfico entre ambos proveedores. Y no es este el requerimiento, no se desea balancear tráfico sino tener un enlace primario y otro de backup.

Una primera solución es dejar una ruta por defecto con la distancia administrativa por defecto (es decir 1), y utilizar distancia administrativa para dejar la otra ruta como flotante. La ruta flotante, al tener mayor distancia administrativa no irá a la tabla de enrutamiento sino que quedará como ruta de respaldo e irá a la tabla de enrutamiento cuando la ruta principal no esté disponible.

Router(config)#ip route 0.0.0.0 0.0.0.0 182.1.10.2
Router(config)#ip route 0.0.0.0 0.0.0.0 200.1.1.2 100

En este caso estamos utilizando como recurso la Distancia Administrativa de las rutas estáticas para definir cuál es nuestra ruta primaria y nuestra ruta de respaldo.
Hemos resuelto el requerimiento utilizando una ruta flotante. 
Pero esta solución no siempre es efectiva ya que dependiendo de la tecnología de acceso que esté utilizando el ISP es posible que perdamos el acceso primario a Internet mientras nuestra ruta por defecto sigue aún activa. Para resolver esta posibilidad es que se implementan las rutas por defecto vinculadas a un IP SLA:

Router#configure terminal
Router(config)#ip sla 1
Router(config-ip-sla)#icmp-echo 182.1.10.2 source-interface Se0/0/0
Router(config-ip-sla-echo)#timeout 500
Router(config-ip-sla-echo)#frequency 2
Router(config-ip-sla-echo)#exit
Router(config-ip-sla)#exit
Router(config)#ip sla schedule 1 life forever start-time now
Router(config)#track 1 ip sla 1 reachability
Router(config)#ip sla 2
Router(config-ip-sla)#icmp-echo 200.1.1.2 source-interface Se0/0/1
Router(config-ip-sla-echo)#timeout 500
Router(config-ip-sla-echo)#frequency 2
Router(config-ip-sla-echo)#exit
Router(config-ip-sla)#exit
Router(config)#ip sla schedule 2 life forever start-time now
Router(config)#track 2 ip sla 2 reachability
Router(config)#ip route 0.0.0.0 0.0.0.0 182.1.10.2 track 1
Router(config)#ip route 0.0.0.0 0.0.0.0 200.1.1.2 track 2 100

En este caso nuestras rutas por defecto ahora están asociadas a un track que hace seguimiento de un IP SLA específico, y luego calificadas por distancia administrativa.


10 de noviembre de 2014

Ruta estática condicionada por IP SLA

Una de las características propias de las rutas estáticas es que las mismas, en su configuración por defecto, están siempre presentes en la tabla de enrutamiento. Una excepción de esto son las llamadas "rutas flotantes" que al tener asignada una distancia administrativa superior a la de los protocolos de enrutamiento, sólo ingresan en la tabla de enrutamiento en caso de falla en la operación del protocolo dinámico.
Esta característica, de estar siempre presentes en la tabla de enrutamiento, puede ser un inconveniente cuando la ruta estática está reenviando tráfico a través de una ruta que está interrumpida en algún punto. Pero esto se puede solucionar asociando la ruta estática a un IP SLA.

¿Qué es IP SLA?
Se trata de una herramienta incluida en Cisco IOS que nos permite analizar niveles de servicios de aplicaciones y servicios IP. Es una tecnología de monitoreo continuo activo de tráfico en la red que nos brinda un método confiable de análisis de performance de la red.

Con esta herramienta, en dispositivos (routers y switches) Cisco IOS podemos realizar mediciones periódicas de performance.

Nuestra aplicación al monitoreo de rutas
IP SLA permite diferentes tipos de mediciones; de todas ellas aquí utilizaremos solamente su aplicación para monitorear paquetes ICMP echo.

  • Objetivo: Crear una ruta estática que esté condicionada a la accesibilidad de una dirección IP.
    Este tipo de configuración puede aplicarse a diferentes situación o requerimientos: redundancia de ISPs administrado con rutas estáticas por defecto de modo que una actúa como backup de la otra detectando la caída de un ISP; generación de rutas estáticas preferidas a las dinámicas, condicionadas a la disponibilidad de un dispositivos; optimización de arquitecturas que utilizan túneles, condicionando su uso a la disponibilidad de un dispositivo remoto, etc.
  • Pre-requisitos:
        Conocimiento de la definición de rutas estáticas.
        Conocimiento de configuración y operación de IP SLA.
Configuración de una ruta estática condicionada por IP SLA
El procedimiento de configuración de una ruta estática condicionada por IP SLA requiere de 3 pasos:

Paso 1: Definición de una sonda IP SLA

Definiremos una sonda ICMP echo que monitoreo la conectividad que una IP específica que puede ser p.e. la IP del próximo salto definido en la ruta estática o una IP interna en la red corporativa.

Por ejemplo, configuraremos una sonda ICMP (identificada con el ID 44) que monitoree la dirección IP 172.16.2.115 enviando paquetes ICMP echo request cada 2 segundos, de los que esperará respuesta por espacio de 1 segundo. Esta sonda comenzará a operar inmediatamente después de su creación y lo hará por tiempo indefinido.


Router#configure terminal
Router(config)#ip sla 44
Router(config-ip-sla)#icmp-echo 172.16.2.115 source-interface Gi0/0
Router(config-ip-sla-echo)#timeout 1000
Router(config-ip-sla-echo)#frequency 2
Router(config-ip-sla-echo)#exit
Router(config-ip-sla)#exit
Router(config)#ip sla schedule 44 life forever start-time now

Paso 2: Definir un objeto que permita hacer el seguimiento de la sonda SLA y asociarla a la ruta estática luego.

Router(config)#track 23 ip sla 44 reachability

Este objeto tiene 2 estados posible: up / down.
Cuando los paquetes ICMP echo request de la sonda tienen respuesta, el estado del objeto es up.
Cuando los paquetes ICMP echo request de la sonda no reciben respuesta dentro del tiempo de timeout especificado, el estado del objeto es down.
El estado del objeto puede ser monitoreado utilizando el comando show track.

Paso 3: Configurar una ruta estática condicionada por el objeto que acabamos de crear.
Para este ejemplo utilizaré una ruta por defecto que apunta a la IP del próximo salto.

Router(config)#ip route 0.0.0.0 0.0.0.0 172.16.59.1 track 23

Enlaces útiles


11 de octubre de 2014

Introducción a NetFlow

NetFlow es una aplicación diseñada por Cisco y embebida en IOS que permite relevar información estadística de tráfico en la red.
Si bien inicialmente estaba incorporada en la imagen de IOS de routers y otros equipos específicos, progresivamente se ha incorporado a nuevas plataformas de modo que en la actualidad, en redes que utilizan IOS 15.x, está disponible prácticamente en toda la infraestructura de la red corporativa.
Responde a 2 premisas básicas:
  • Es completamente transparente a las aplicaciones y dispositivos que operan en la red.
  • No es necesario que sea soportada en todos los dispositivos de la red.
Su implementación tiene múltiples aplicaciones posibles, las más frecuentes son:
  • Registro estadístico de tráfico para realizar un análisis de línea base.
  • Facturación de servicios de red a usuarios.
  • Análisis del tráfico y aplicaciones que están corriendo sobre la red con vistas al diseño o rediseño de la red.
  • Diseño general de seguridad de la red.
  • Detección y prevención de ataques DoS o DDoS.
  • Monitoreo de la red.
Con este propósito NetFlow releva estadística de comunicaciones utilizando el concepto de flujo (flow): Stream o cadena unidireccional de paquetes entre un sistema de origen y un sistema destino específicos que es identificada tomando como base de referencia 7 parámetros específicos:
  • Dirección IP origen.
  • Dirección ID destino.
  • Puerto de origen.
  • Puerto de destino.
  • Tipo de protocolo (campo del encabezado IP).
  • Tipo de servicio (campo del encabezado IP).
  • Interfaz lógica de ingreso.
Arquitectura de NetFlow
La implementación de NetFlow supone una arquitectura específica:
  • Uno o varios dispositivos que tienen Netflow habilitado.
  • Un NetFlow Collector, que es la consola que recolecta y permite concentrar la información.

Configuración de NetFlow
El procedimiento de configuración en dispositivos Cisco IOS para utilizar funciones de NetFlow requiere 2 tareas:
  • Definir el punto (interfaz) de captura de información.
  • Indicar la ubicación (dirección IP) del NetFlow Collector.
Router(config)#interface GigabitEthernet0/0
Router(config-if)#ip flow ingress
Router(config-if)#ip flow egress
Router(config-if)#exit
Router(config)#ip flow-export destination 10.1.10.100 99
Router(config)#ip flow-export version 9
Router(config)#ip flow-export source loopback 0
Router(config)#end

Comandos para verificar y acceder en IOS a la información de NetFlow

Router#show ip cache flow
Router#show ip flow interface
Router#show ip flow export

Las posibilidades y las opciones de configuración van mucho más allá del alcance de este post que es puramente introductorio. Quienes buscan mayor información o están interesados en analizar el consumo de recursos del dispositivo que tiene esta implementación sugiero que utilicen la correspondiente Configuration Guide de IOS, que pueden consultar aquí.


28 de septiembre de 2014

10 GigabitEthernet

El avance registrado en los últimos años en lo que se refiere al tráfico de nuestras redes LAN ha llevado a que progresivamente se introduzca cada vez más enlaces 10 GigabitEthernet tanto para el backbone como en el data center.
Creo que es entonces conveniente que revisemos nuestros conocimientos sobre esta tecnología.

¿Cuáles son las tecnologías estándar actualmente disponibles con capacidad de 10 Gbps?
Este es el primer punto en el que hay alguna complejidad a tener en cuenta.
Hay varios estándares que se deben tener presentes:
  • IEEE 802.3ae
    Aprobado en el año 2002, es el que dio el puntapié inicial y el que define las variantes más conocidas.
  • IEEE 802.3ak
    En el año 2004 introduce 10GBase CX4, sobre cable tipo InfiniBand.
  • IEEE 802.3an
    Aprobado en el año 2006 e introduce 10GBaseT, sobre cable de par trenzado de cobre.
  • IEEE 802.3aq
    Del año 2006, que introduce 10 GBase LRM.
  • IEEE 802.3av
    Aprobado en el año 2009 y que define 10 GBase PR.
En estos estándares se destacan 3 implementaciones diferentes de capa física.
  • Implementación sobre cable de par trenzado de cobre con una capacidad de hasta 10,3 Gbps.
  • Implementación sobre fibra óptica denominada LAN PHY (la sigla LAN no está referida a la extensión de los enlaces en los que se implementa, hasta 80 km.) con una capacidad de hasta 10,3 Gbps.
  • Implementación sobre fibra óptica denominada WAN PHY que opera sobre sistenas SDH/SONET, con una capacidad de hasta 9,953 Gbps.
¿Cuáles son los diferentes formatos de 10 GigabitEthernet?
  • 10GBaseT - IEEE 802.3an
    Medio físico: UTP o STP cat. 6a o 7 con conectores RJ-45
    Alcance máximo: Cat 6a: 55m. / Cat 7: 100 m.
    Tasa de transferencia de 10,3 Gbps.
  • 10GBaseSR - IEEE 802.3ae
    Medio físico: Fibra óptica multimodo de 62,5 o 50 micrones
    Alcance máximo: 62,5 mic.: 82 m. / 50 mic.: 400 m.
    Utiliza emisores láser de 850 nm.
  • 10GBaseLR - IEEE 802.3ae
    Medio físico: Fibra monomodo de 9 micrones
    Alcance máximo: 10 km.
    Utiliza emisores láser de 1310 nm.
  • 10GBaseER - IEEE 802.3ae
    Medio físico: Fibra monomodo
    Alcance máximo: 40km.
    Utiliza emisores láser de 1550 nm.
  • 10GBase LX4 - IEEE 802.3ae
    Medio físico: Fibra monomodo o multímodo sobre WDM
    Alcance máximo: multimodo: 300 m. / monomodo: 10 km.
    Utiliza emisores láser de 1310 nm. Por su costo tiende a ser reemplazado por 10GB LRM.
  • 10GBase LRM - IEEE 802.3aq
    Medio físico: Fibra multimodo
    Alcance máximo: 220 m.
    Utiliza emisores láser de 1310 nm.
  • 10GBase SW - IEEE 802.3ae
    Medio físico: Fibra óptica multímodo de 62,5 o 50 micrones
    Interopera con SDH STM-64 o SONET OC-192
    Utiliza emisores láser de 850 nm.
    Tasa de transferencia de 9,953 Gbps.
  • 10GBase LW - IEEE 802.3ae
    Medio físico: Fibra monomodo de 9 micrones
    Interopera con SDH STM-64 o SONET OC-192
    Utiliza emisores láser de 1310 nm.
    Tasa de transferencia de 9,953 Gbps.
  • 10GBase EW - IEEE 802.3ae
    Medio físico: Fibra monomodo
    Interopera con SDH STM-64 o SONET OC-192
    Utiliza emisores láser de 1550 nm.
    Tasa de transferencia de 9,953 Gbps.
En la denominación de cada formato, podemos tener presenta la siguiente nomenclatura:
  • SR – Short Reach.
  • LR – Long Reach.
  • LRM – Long Reach Multi-mode.
  • ER – Extended Reach.
  • W – Capa física WAN PHY que interopera con SDH STM-64 o SONET OC-192
Algunos puntos que se deben tener presentes
  • Al momento de implementar enlaces 10 GigabitEthernet no basta con elegir entre fibra óptica y cobre, es más complejo.
    Por lo mismo es necesario prestar atención a las especificaciones del cable... en cobre, ¿categoría 6a o 7?, en fibra multimodo, ¿core de 62,5 micrones o de 50 micrones?
  • Hay que considerar particularmente el módulo de conexión que se va a utilizar: algunos transceivers de fibra óptica solo operan con el tipo preciso de cable de fibra y no hay que olvidar que en este contexto tenemos varios tipos diferentes de fibra óptica posibles.
  • No olvidar que cada tecnología tiene rangos de alcance diferentes, y en algunos casos eso depende también del medio físico. No tendremos la misma respuesta con un cable categoría 6a que con uno categoría 7.


31 de agosto de 2014

Actualización de WLAN Timeline

He realizado una actualización del timeline de tecnologías WLAN que está publicado en la Biblioteca Scribd de EduBooks, incorporando las novedades del último año en la materia, y las expectativas que hay en el área respecto de la aparición de nuevos estándares hasta el año 2019.
Es una publicación de acceso libre, y la pueden ver a continuación o accediendo a la colección CCNA de la biblioteca de EduBooks.



24 de agosto de 2014

Configuración de interfaces IOS como clientes DHCP

Una posibilidad no muy discutida es la de configurar las interfaces de los dispositivos Cisco IOS como clientes DHCP.
Esta capacidad nos permite implementar dispositivos IOS para la conexión a servicios en los que el Service Provider asigna la configuración IP de modo dinámico, como ocurre en muchos casos con servicios de acceso a Internet.
Para esto IOS incluye tanto un cliente IPv4 DHCP como un cliente IPv6 DHCP.

Configuración en interfaces IPv4
Presento a continuación un ejemplo de configuración de una interfaz GigabitEthernet como cliente DHCP.

Router#configure terminal
Router(config)# interface GigabitEthernet 0/0
Router(config-if)#ip address dhcp

Configuración en interfaces IPv6
En el mismo ejemplo, podemos desarrollar con configuración como cliente IPv6 DHCP.

Router#configure terminal
Router(config)#interface GigabitEthernet 0/0
Router(config-if)#ipv6 address dhcp

Documentos de referencia
La configuración de este feature tiene opciones adicionales que puede revisar en los documentos disponibles en línea.



17 de agosto de 2014

Comando IPv6 de IOS que debemos conocer

No importa el nivel de conocimientos que hayamos adquirido en tecnologías Cisco IOS, hay comandos que siempre debemos utilizar y que por lo tanto debemos recordar y tener presentes, y por lo mismo es bueno repasar.
Esto es particularmente cierto en IPv6 ya que por tratarse de una tecnología en implementación siempre presenta novedades y modificaciones.
Por eso, me ha parecido conveniente revisar algunos comandos esenciales tomando como referencia IOS 15.2.

Algunos comandos que no cambian
Todos los comandos que hacen a la edición, sistema de ayuda y sistema de archivos siguen siendo los mismos ya que no dependen de una tecnología en particular, sino que son propios de IOS mismo:
  • El signo de interrogación ?
    Sigue siendo nuestra principal herramienta para revisar comandos y subcomandos disponibles en un modo en particular.
  • show running-config / show startup-config
    Como siempre, muestran el archivo de configuración activa y de respaldo respectivamente.
  • copy running-config startup-config
    El conjunto de comandos copy no ha tenido ningún cambio.
  • configure terminal
    Como siempre, es el comando para ingresar al modo de configuración global.
  • no shutdown
    El comando básico para habilitar las interfaces de los dispositivo, sigue siendo siempre el mismo.
  • show version
    Nada ha reemplazado al comando básico para revisar la configuración de hardware y software del dispositivo.
  • debug
    Si lo que necesitamos es el reporte detallado de eventos referidos a un protocolo, interfaz, etc., debug sigue siendo el comando clave.
  • interface GigabitEthernet 0/0
    Como siempre, es el comando para ingresar al submodo de configuración de una interfaz específica.
Algunos comandos que son específicos de IPv6
En primer lugar hay que destacar que en IOS, la mayoría de los comandos vinculados a la configuración de IPv6 o los protocolos de enrutamiento vinculados comienzan con la keywor "ipv6", con lo que hay una sugerencia básica: cuando no sepas cuál es el comando a utilizar, comienza por ingresar en el prompt: "ipv6 ?"
Además, para comprender acabadamente la función de los comandos que menciono a continuación es necesario antes tener conocimientos básicos de IPv6: direccionamiento, enrutamiento, sintaxis de las direcciones, etc.
Si tienes dudas en estos temas te sugiero revisar alguna de las publicaciones que menciono al final de este post.

  • ipv6 unicast-routing
    El comando esencial que no puede faltar cuando implementamos IPv6 ya que es el que habilita el reenvío de paquetes unicast de IPv6.
  • ipv6 enable
    Habilita el procesamiento de IPv6 en una interfaz que no ha sido explícitamente configurada con una dirección IPv6
  • ipv6 address...
    Permite configurar una dirección IPv6 en una interfaz.
    Tiene diferentes formatos que permiten aplicar una dirección IPv6 estática o asignada dinámicamente (eui-64); o direcciones de link-local o anycast.
    Merece una consideración aparte en un post específico.
  • show ipv6 interface
    Es el comando equivalente al conocido show ip interface en redes IPv4.
    Permite revisar la configuración completa de la interfaz en capa de red (en lo que refiere a IPv6, obvio) por ejemplo listas de acceso entrantes o salientes.
  • show ipv6 route
    Muestra la tabla de enrutamiento IPv6 del dispositivo.
    En términos generales, la estructura de la tabla de enrutamiento IPv6 en IOS es semejante a la tabla de enrutamiento IPv4.
  • ipv6 route...
    Es el comando que permite configurar rutas IPv6 estáticas.
    Su estructura sintáctica es semejante a la del comando equivalente en IPv4.
    Una ruta estática por defecto, por ejemplo, puede definirse:
    ipv6 route ::/0 Serial 0/0/0
  • ipv6 router rip etiqueta
    Ingresa al submodo de configuración del protocolo de enrutamiento IPv6.
    En este caso elegí como ejemplo RIPng, pero la lógica de todos los IGPs es semejante: En el submodo de configuración del protocolo se definen sus características globales (redistribución, distancia administrativa, etc.) y se habilitan en las interfaces.
    En el caso de RIPng es necesario especificar una etiqueta o tag que identifique el proceso.
    Este comando no es necesario ingresarlo si ya se asoció alguna interfaz al protocolo de enrutamiento, en ese momento se habilitó el proceso automáticamente.
  • ipv6 rip etiqueta enable
    Incorpora la interfaz al proceso del protocolo de enrutamiento. Se ejecuta en el submodo de configuración de las interfaces que desean participar del proceso de enrutamiento.
Para el cierre, una breve configuración de ejemplo utilizando algunos de los comandos que refiero en este post:
Router#configure terminal
Router(config)#ipv6 unicast-routing
Router(config)#interface GigabitEthernet 0/0
Router(config-if)#ipv6 address 2001:1:1:1::/64 eui-64
Router(config-if)#ipv6 rip PRUEBA enable
Router(config-if)#exit
Router(config)#ipv6 route ::/0 Serial 0/0/0
Router(config)#end
Router#_

Enlaces relacionados: