23 de diciembre de 2006

5 puntos que se deben tener en cuenta

El mundo del networking, es un ámbito técnico. Pero no es únicamente técnico. Lo es también empresarial, comercial. Y en este sentido estamos sometidos a las reglas de las áreas de comercialización de cada una de las empresas.

En este sentido, muchas veces el lenguaje comercial genera confusiones y nos arrastra de la base técnica, induciéndonos a un error.

Un router es siempre un router. Pero, como dispositivo, ¿es lo mismo lo que se ofrece como router de banda ancha que un router Cisco 1800? Si fuera así, entonces, ¿porqué la diferencia de precios?

Los switches LAN FastEthernet muestran grandes diferencias de precios, en nuestro medio, desde los u$s 30, hasta los 1200. ¿Son lo mismo? ¿En qué está la diferencia? ¿Sencillamente en la marca y nada más?

Es por esto que creo bueno cada tanto volver a los conceptos sencillos, vistos en sí mismos. Esto nos permite recuperar la precisión del lenguaje, y apreciar adecuadamente la naturaleza de nuestra tarea.

.1. Hay diferencias entre un router hogareño y un router enterprise.
No es extraño encontrarnos con que al momento de realizar implementaciones en estudios profesionales o pequeñas y medianas empresas, se proponga el uso de dispositivos de baja gama tipo D-Link, Netgear o Linksys para brindar conectividad. Por cierto que se encuentran configuraciones por demás interesantes en este tipo de equipos.

Sin embargo, hay que tener en cuenta que así como sería un exceso pensar en utilizar un router Cisco 1800 para administrar la conexión de banda ancha de mi casa, es un error pensar primariamente en dispositivos diseñados para el entorno hogareño para implementaciones de tipo empresario.

Este tipo de dispositivos carecen de muchos de los features de administración que pueden ser necesarios (aún cuando en muchos casos son administrables), carecen de features avanzados para diagnóstico y resolución de fallos, tienen recursos de seguridad muy limitados, y los protocolos y módulos que permiten implementar están limitados a su objetivo primario que es el entorno hogareño, o de oficina hogareña.

Es posible que en algún caso solamente se trate de un administrar un acceso de banda ancha que debe dar servicios a un conjunto reducido de terminales. Sin embargo, si este punto de acceso requiere de features de seguridad robustos, de administración avanzada, recursos de calidad de servicio y escalabilidad, la mejor respuesta no será un dispositivo de linea hogareña, sino enterprise.

.2. Tener siempre presente la diferencia entre un router y un switch.
Este punto puede parecer muy básico, pero si prestamos atención al modo en que hablamos y a muchos trabajos que se publican, nos daremos cuenta que no lo es tanto.

Un router es un dispositivo que opera principalmente conmutando tráfico a nivel de la capa 3 del modelo OSI. Es un dispositivo diseñado específicamente para conectar la red LAN a la WAN o a Internet según corresponda. Su capacidad es consecuencia primariamente de su sistema operativo (Cisco IOS en el caso de los dispositivos Cisco), y las prestaciones que ofrece dependen esencialmente de la versión de sistema operativo que corre.

Un switch en cambio, es un dispositivo dotado de un hardware radicalmente diferente, que está diseñado para el desarrollo de tareas específicas (circuitos ASICs). Estas características de hardware son las que le dan una capacidad de procesamiento mayor que la de los routers, si bien paralelamente tienen menor flexibilidad en su configuración.

Inicialmente cuando se hablaba de switch se hacía referencia a dispositivos LAN que operan en la capa 2 del modelo OSI, conmutando tramas. En la actualidad hay también switches multilayer o switches layer 3, que sobre la misma base (un hardware específico), pueden operar además en la capa 3 del modelo OSI. En todos los casos, estos switches son dispositivos LAN que pueden conmutar a nivel de capa 2 o capa 3 según el caso.

.3. Comprender cómo es el flujo de tráfico de una red.
Muchas veces al revisar el reporte de dificultades de un usuario se tiende a revisar en primer lugar la configuración de los dispositivos.

En realidad es imprescindible partir de una adecuada comprensión del flujo de tráfico de nuestra red. En muchas ocasiones los problemas del usuario final no son provocados directamente por la infraestructura sino por dificultades que surgen de la interacción entre la infraestructura de red y el modo de operación de TCP y los protocolos de capa superior.

En este sentido es esencial el monitoreo del tráfico de la red, la captura de tráfico, el análisis de las transacciones TCP de esas capturas, etc.

Por esto, al momento de diagnosticar la causa de un reporte del usuario es preciso evaluar en primer lugar si se trata de un problema de infraestructura o de flujo del tráfico de la red.

.4. Tener presente lo que un firewall puede, y no puede hacer.
Si bien hoy es frecuente que el término "firewall" esté incorporado en el lenguaje de los usuarios de la red, es más frecuente aún que sólo se tenga una vaga idea de lo que realmente hace un firewall (incluidos algunos Administradores, desafortunadamente).

Hay diferente tipos de firewall:

  • Firewalls de software.
    Tales como el firewall de Windows, o el ZoneAlarm.
  • Firewalls de hardware:
    Es el caso de Cisco ASA o Checkpoint.

En términos generales, los firewall de software son adecuados para usuarios finales, tales como terminales de uso hogareño o personal; los firewall de hardware son el recurso adecuado para redes corporativas.

Por otra parte, el firewall es un dispositivo de seguridad prácticamente imprescindible para la segurización de las redes de la mayor parte de las organizaciones actuales. Pero un firewall por sí sólo (aún adecuadamente configurado) no es una garantía de que la red esté segurizada adecuadamente. Por ejemplo, un firewall no protege por sí solo de ataques de phishing o virus distribuidos a través del correo electrónico.

.5. Nunca olvidar las bases del direccionamiento IP.
Es un hecho que la mayoría de los usuarios no tienen una comprensión adecuada de los principios básicos del direccionamiento IP.

Ante todo, hay que tener presentes los términos básicos:

  • Dirección IP - Todo dispositivo, con más precisión todo puerto, debe tener asignada una dirección IP que la identifica unívocamente en la red.
  • Máscara de subred - Le indica al dispositivo qué porción de la dirección IP define la red y cuál el ID del nodo. Es la que le permite identificar si la dirección IP de destino de un paquete es una dirección local o no. Todos los puertos de una subred deben tener asignada la mísma máscara de subred.
  • Default gateway - Se utiliza para poder establecer conexiones con dispositivos remotos. Cuando el dispositivo determina que un paquete tiene como destino un nodo que pertenece a otra red o subred (lo hace utilizando la dirección IP de destino y su propia máscara de subred), entonces el paquete debe ser enviado al default gateway para su enrutamiento hacia la red remota.
    Una red que no se comunica con otras redes, no necesita de un default gateway.

¿Tenés algún tip para aportar en este tema....?
Perfecto!!!! agregá un comentario con el detalle.
Muchas gracias.
Oscar Gerometta

15 de diciembre de 2006

10 comandos a configurar en un dispositivo nuevo


Cada vez que debemos configurar un dispositivo que se incorpora a la red, gran parte de la configuración depende tanto del dispositivo como del diseño de la red en la que ese dispositivo va a incorporarse. Sin embargo, hay también un conjunto de features que siempre podemos o debemos tener en cuenta, independientemente del dispositivo y la red.

Dependiendo de las implementaciones y del mismo Administrador, siempre hay una lista de cosas que "siempre hay que hacer": claves, nombres de dispositivos... etc. Esta es una lista posible de "10 cosas que siempre hay que configurar" en los dispositivos de una red:

  • Configurar cuentas de acceso a los dispositivos.
  • Configurar un hostname que lo identifique.
  • Configurar una clave de acceso al modo privilegiado.
  • Encriptar las claves.
  • Deshabilitar el acceso vía http.
  • Configurar un servicio de traducción de nombres.
  • Configurar commandos alias.
  • Configurar el reloj de los dispositivos.
  • Evitar que los mensajes logging molesten durante las tareas de configuración.
  • Configurar el servicio de logs.

Algunas de estas tareas ya las consideré en otros artículos, a los que procuraré referir en cada cado. Si tenés tu propia lista de "cosas que siempre hay que hacer" o algún elemento más para agregar, por favor, incorporalo como comentario a esta nota.

Configuración de cuentas de acceso a los dispositivos
Es altamente recomendable que los accesos a los dispositivos estén asegurados requiriendo la identificación de usuario y clave. No estamos hablando de una simple clave de acceso a modo usuario para la conexión a través de telnet o consola. La sugerencia es que ese acceso requiera del ingreso de usuario y clave.

Adicionalmente, Cisco IOS nos brinda la posibilidad de que esa clave se encripte utilizando MD5, como un forma adicional de segurizar nuestros dispositivos. El comando de configuración para realizar esta tarea es:

Router(config)#username [usuario] secret [clave]

Luego de configurado usuario y clave, es necesario aplicarlo a cada una de las líneas de acceso:

Router(config)#line con 0
Router(config-line)#login local
Router(config)#line aux 0
Router(config-line)#login local
Router(config)# line vty 0 4
Router(config-line)# login local

Obsérvese, para los que están acostumbrados a configurar una clave de acceso a modo usuario, que espre procedimiento reemplaza aquel.

Configurar un hostname
Todos los dispositivos Cisco tienen un nombre configurado por defecto: Router ó Switch, según corresponda. La configuración de un nombre que identifique claramente al dispositivo es de gran utilidad para el desarrollo de tareas de administración y monitoreo de los dispositivos y en términos generales debe responder a una acción planificada y parametrizada por el Administrador de la red.

La modificación de este nombre por defecto es extremadamente sencilla:

Router(config)#hostname [nombre]

Adicionalmente, Cisco IOS permite configurar un nombre de dominio de modo que el dispositivo "conozca" en qué dominio DNS se encuentra:

Router(config)#ip domain name [dominio]

Configurar una clave de acceso al modo privilegiado
Un elemento de seguridad muy importante es bloquear el acceso al modo privilegiado de los dispositivos (desde el que se accede al modo configuración) utilizando una clave de acceso. Adicionalmente Cisco IOS brinda la posibilidad de que la clave configurada sea encriptada utilizando MD5.

Esta es una tarea extremadamente sencilla:

Router(config)#enable secret [clave]

Encriptar todas las claves no encriptadas
No todas las claves configuradas en dispositivos Cisco IOS están encriptadas por defecto. Esto se puede solucionar fácilmente activando el servicio de encipción de claves que ofrece IOS:

Router(config)#service password-encryption

Deshabilitar el acceso vía http
Acceder a interfaces de administración a través de un web browser es una facilidad buscada por muchos Administradores. Todos sabemos que la configuración por CLI es más tediosa; pero también es más precisa y flexible... y más segura. De aquí que se recomiende fuertemente que, por seguridad, se desactive el acceso vía http (o web broser) a los dispositivos.

Los dispositivos Cisco permiten por defecto el acceso utilizando navegadores web. Si este acceso no va a ser utilizado, es más seguro desactivarlo. Es otra tarea simple:

Router(config)#no ip http server

Configurar un servicio de traducción de nombres
Cuando se ingresa una cadena de caracteres en la CLI de Cisco IOS, por defecto, IOS la interpreta como si se tratara de un comando. Si no puede asociar un comando a esa cadena de caracteres, entonces interpreta que el operador está requiriendo hacer telnet a un dispositivo al que identifica con un nombre, y por lo tanto procura traducir ese nombre a una dirección IP.

Esto suele provocar inconvenientes durante el proceso de configuración ya que, ante un error de tipeo al ingresar un comando el dispositivo comienza inmediatamente a intentar una traducción de nombres hasta que falla (dns lookup en inglés).

Esto tiene 2 soluciones posibles. La primera solución es desactivar el servicio de traducción de nombres que Cisco IOS tiene activado por defecto:

Router(config)#no ip domain-lookup

La otra opción, es configurar un servidor DNS real para que el dispositivo pueda hacer las búsquedas que sean necesarias:

Router(config)#ip name-server [IP]

Configurar comandos alias
El comando alias es un recurso interesante que permite a los Administradores generar su propio conjunto de comandos abreviados para realizar aquellas tareas más repetitivas.

Un ejemplo de las posibilidades que brinda:

Router(config)#alias [modo] [abreviado] [comando]
Router(config)#alias exec s show running-config

De este modo, ingresando una sola letra se ejecuta un comando más complejo.

El comando alias: un modo abreviado de realizar tareas repetitivas.

Configurar el reloj de los dispositivos
La mayoría de los dispositivos Cisco están dotados de un reloj interno que requieren de configuración. Esta tarea es de suma importancia al momento de revisar archivos logs, ya que es la base de información para estampar fecha y hora en los registros del log.

En principio este requisito se puede cubrir configurando, además de fecha y hora en el reloj, el uso horario:

Router#clock set [hh]:[mm]:[ss] [mmm] [dd] [aaaa]
Router#configure terminal
Router(config)#clock timezone [huso] [GMT]

En el caso de países o regiones que modifican el uso horario de acuerdo a la estación:

Router(config)#clock summer-time [huso] recurring

Ahora bien, en redes con numerosos dispositivos, es conveniente configurar el acceso a un servidor NTP a fin de asegurarnos que el reloj de todos los dispositivos se encuentre debidamente sincronizado, de modo que se facilite la tarea de diagnóstico y monitoreo. De este modo el dispositivo siempre buscará la información en el servidor al momento de inicializarse:

Router(config)#ntp server [IP]

Configuración de hora y zona horaria en dispositivos.

Evitar que los mensajes logging molesten
Cuando se está configurando o revisando el resultado de un comando show resulta muy molesta la interrupción que provocan los mensajes de logging de algunos sucesos estándar (p.e. el estado de las interfaces) o de un debug.

Esto es fácilmente solucionable, con una mínima previsión al momento de realizar la configuración. Un modo, no aconsejable, es eliminar sencillamente estos mensajes:

Router(config)#no logging console

El que quizás es el mejor modo (porque nos permite seguir recibiendo estos mensajes de estado, que son de gran importancia), es sincronizar estoa mensajes con el ingreso de comandos en el prompt del sistema operativo:

Router(config)#line con 0
Router(config-line)#logging synchronous
Router(config)#line aux 0
Router(config-line)#logging synchronous
Router(config)#line vty 0 4
Router(config-line)#logging synchronous

Configurar el servicio de log
Los mensajes de estado por defecto son enviados a la consola y no se almacenan. Sin embargo, es muy probable que los eventos que nos preocupan (fallos, actualizaciones de rutas, etc.) ocurran mientras no hay un operador conectado al puerto consola que pueda evaluarlos.

Es por esto de gran utilida indicarle al dispositivo que se desea enviar esta información a un servidor de syslog, o al menos, almacenarlos en un buffer de memoria en el mismo dispositivo:

Router(config)# logging buffered [tamaño]

¿Tenés algún tip para aportar en este tema....?
Perfecto!!!! agregá un comentario con el detalle.
Muchas gracias.
Oscar Gerometta

8 de diciembre de 2006

Introducción a túneles GRE

Hoy es tema de todos los días, para los que trabajamos en el ámbito del networking, la referencia a las VPNs. Desde grandes empresas con miles de VPNs, hasta pequeñas PyMEs con una o varias VPNs, el tema está al orden del día.
Cuando abordamos el tema VPNs subyacen detrás dos conceptos:
  • La red virtual, a la que también llamamos túnel, que emula una conexión punto a punto entre 2 nodos conectados a Internet.
  • La encripción de los datos que circulan sobre esa red virtual para darle seguridad al intercambio privado de información sobre una red pública.
Como siempre, hay protocolos involucrados en ambos aspectos. Protocolos de tunelización y protocolos de encripción. Para la tunelización uno de los protocolos más utilizados (quizás porque es el que implementa Microsoft) es PPTP (Point-to-Point Tunneling Protocol). PPTP de hecho utiliza GRE para generar los túneles.
¿Qué es GRE?
Genereric Routing Encapsulation (GRE) es un protocolo originalmente desarrollado por Cisco Systems que se ha convertido en un estándar de la industria definico en las RFC 1701, 1702 y 2784. Es un protocolo de túnel, es decir, que permite transportar paquetes de una red a través de otra red diferente. Por ejemplo, permite establecer un enlace de la red 10.0.0.0 a través de la red 172.16.0.0.

¿Cuándo utilizar GRE?
  • Cuando, por ejemplo, es necesario trabajar con un protocolo que no es enrutamble como NetBIOS o con protocolos enrutables diferentes de IP a través de una red IP. Se puede constituir un túnel GRE para trabajar con IPX o AppleTalk sobre una red IP.
  • Cuando debemos conectar dos puntos remotos de una misma red (antes mencioné el ejemplo de la red 10.0.0.0) y para ello necesitamos utilizar enlaces que pertenecen a una red diferente (en el ejemplo, la 172.16.0.0).
¿Cómo se configura un túnel GRE?Configurar el túnel GRE es en principio una tarea relativamente sencilla. Para revisar los comandos debemos considerar ambos extremos del enlace a través del cual debe operar el túnel:
Router A
interface Ethernet0/1
ip address 10.2.2.1 255.255.255.0
!

interface Serial0/0
ip address 172.16.4.1 255.255.255.252
!
interface Tunnel0
ip address 10.10.10.2 255.255.255.252
tunnel source Serial0/0
tunnel destination 172.16.4.2
!

Router B
interface FastEthernet0/1
ip address 10.1.1.1 255.255.255.0
!
interface Serial0/0
ip address 172.16.4.2 255.255.255.252
!
interface Tunnel0
ip address 10.10.10.1 255.255.255.252
tunnel source Serial0/0
tunnel destination 172.16.4.1
!

En este sencillo ejemplo se ha creado una interfaz virtual en cada router: las interfaces túnel. Estas interfaces utilizan su propia red, comportándose como un enlace punto a punto. El tráfico de este túnel será físicamente enviado a través de las interfaces seriales.
De este modo, entre ambos routers aparecerán ahora 2 rutas posibles: la ruta a través de las interfaces seriales y la ruta a través de la interfaz túnel. Este túnel puede transportar tanto tráfico no ruteable como que utilice otros protocolos enrutados.
En el caso del ejemplo el túnel se realiza sobre un enlace privado que podría pertener, por ejemplo, a un red frame-relay. También puede realizarse sobre Internet; en este caso se puede utilizar algún protocolo de encripción como IPSec para brindar privacidad y seguridad.
Tenga en cuenta que la configuración es bastante sencilla. Lo realmente importante aquí es el diseño: definir con claridad los puntos de inidio y fin del túnel, y el tráfico que se va a enviar a través del mismo.
Las interfaces túnel son interfaces virtuales que son tratadas por Cisco IOS como una interfaz más:
RouterB# sh ip int brief
Interface . . . . IP-Address .OK? .Method .Status . . . Protocol
FastEthernet0/0 . 10.1.1.1 . .YES .manual .up . . . . . up
Serial0/0 . . . . 172.16.4.2 .YES .manual .up . . . . . up
Serial0/1 . . . . unassigned .YES .unset . admin down . down
Tunnel0 . . . . . 10.10.10.1 .YES .manual .up . . . . . up

Consideraciones adicionales
  • GRE toma un paquete ya existente, con su encabezado de capa de red, y le agrega un segundo encabezado de capa de red, lo que implica que el paquete que se envía a través del túnel es de mayor longitud por lo que puede ocurrir que esté excediendo la longitud permitida en la interfaz física. Esto provoca el descarte de ese paquete.
    Para solucionar este inconveniente se puede aplicar el comando ip tcp adjust-mss 1436 sobre la interfaz túnel para asegurarse de que no se supere el MTU permitido sobre el enlace.
  • El enlace sobre el túnel GRE no requiere ninguna información de estado, por lo que puede ocurrir que un extremo del túnel se encuentre en estado de down y el otro continúe presentándose como up.
    Para evitar esta situación habilite keepalive en cada extremo del túnel. De este modo cada extremo enviará mensajes de keepalive sobre el túnel y si un extremo no recibe los mensajes enviados por el otro entonces pasará al estado de down.
Recuerde que GRE no provee encriptación de la información. No constituye propiamente una VPN segura.
¿Tenés alguna información adicional para aportar en este tema....?
Perfecto!!!! agregá un comentario con el detalle.
Muchas gracias.
Oscar Gerometta

3 de diciembre de 2006

Template de configuración básica Cisco Catalyst 2950

El uso de "templates" de Excel nos permite automatizar procesos de configuración de dispositivos. Con este propósito les ofrezco este template Excel para relizar la configuración básica de un switch Catalyst 2950.

¿Qué hace este template?
Estos templates permiten generar los comandos de configuración necesarios para completar una tarea, utilizando la información (claves, direcciones IP, etc.) que nosotros proporcionamos.

Para esto el archivo cuenta con 2 hojas:

  • Una hora de referencias, en la que encontramos los comandos que han de utilizarse para desarrollar la tarea. Estos comandos están acompañados de una brevísima descripción de su propósito.
  • Una segunda hoja de variables, en la que debemos ingresar los parámetros específicos que deseamos sean aplicados al dispositivo.

Completada la información, los macros del archivo generarán automáticamente una nueva hoja con los comandos de configuración que deben ser utilizados para conseguir la configuración objetivo.

En este caso particular, la hora de referencias realiza las siguientes acciones:

  • Habilita el servicio de encripción de claves.
  • Configura un hostname.
  • Habilita el dispositivo como servidor http para utilizar la interfaz web para administración y monitoreo remotos.
  • Configura claves de acceso al modo usuario para los accesos por consolo o por terminal virtual (telnet).
  • Configura una clave de acceso encriptada para el modo privilegiado.
  • Sincroniza los accesos por consola y por telnet con los mensajes de logging, de modo que no haya interrupciones en el ingreso de comandos.
  • Configura un servidor DNS para la traducción de nombres.
  • Configura el reloj: hora y fecha.
  • Habilita el servicio de "estampado" de hora y fecha en los mensajes de logging (mensajes en pantalla, debug, etc.).
  • Asigna una dirección IP a la interfaz VLAN1 para permitir el acceso por telnet y configura un default gateway para permitir el acceso remoto.
  • Configura todos los puertos del switch como puertos de acceso.
  • Graba la configuración en la NVRAM.

Cómo se utiliza

  1. Baje el template a su terminal.
  2. Abra el archivo Microsoft Excel y permita la ejecución de macros.
  3. Diríjase a la hoja "Variables".
  4. Complete la información específica que corresponde al dispositivo que desea configurar en la columna blanca titulada "Definición del usuario".
  5. Verifique que la información ingresada sea la correcta.
  6. Seleccione el botón "Reemplazar" que está a la derecha de la tabla que ha completado.
  7. Se generará una nueva hoja en el archivo con los comandos necesarios para obtener la configuración deseada.
  8. Ingrese por consola a la línea de comando del dispositivo que desea configurar y diríjase al modo de configuración:
    Switch>enable
    Switch#configure terminal
    Switch(config)#_
  9. Copie los comandos de configuración (no los comentarios) y péguelos directamente en la línea de comando del dispositivo.

Como resultado de esta acción se han de ejecutar todos los comandos y grabar la configuración en la NVRAM del dispositivo. El mismo ya está configurado de acuerdo a su diseño.

Tenga en cuenta que este archivo de configuración configura solamente puertos FastEthernet, no incluye ningún puerto GigabitEthernet. Tampoco genera VLANs ni aplica features de seguridad. Implementa solamente los features de una configuración básica de un switch Catalyst 2950.

¿Tenés alguna información o referencia adicional para aportar en este tema....?
Perfecto!!!! agregá un comentario con el detalle.
Muchas gracias.
Oscar Gerometta