24 de octubre de 2017

Comandos de configuración de interfaces en dispositivos Cisco - Actualización

Continuando con la revisión de las publicaciones más visitadas en estos años la siguiente es esta. Escrita también durante el primer año de este blog, es la segunda más visitada, con lo que también supongo que su información es útil para muchos y por lo tanto también decidí revisarla y actualizarla.
Este es el resultado.

Durante el proceso de configuración de dispositivos de infraestructura llega siempre el momento de realizar o modificar la configuración de una interfaz o varias interfaces. En este sentido es fundamental que tengamos en cuenta algunos comandos Cisco IOS claves, que son comunes a todas las interfaces de los dispositivos Cisco IOS.

Ante todo, todos los comandos relacionados con la configuración de las interfaces de dispositivos IOS se ejecutan en el modo configuración de interfaz:

Router#configure terminal
Router(config)#interface [tipo] [módulo/interfaz.subinterfaz]

Un ejemplo:
Router(config)#interface GigabitEthernet 0/0

De esta forma se ingresa al modo de configuración de la interfaz tanto de routers como switches o firewalls Cisco.
Es necesario indicar la interfaz que se desea configurar o crear, según sea el caso.

Alternativamente, cuando debemos realizar la configuración de un grupo de interfaces de igual tipo y con los mismos parámetros (algo habitual en el caso de los switches) se puede utilizar el comando interface range:

Switch(config)#interface range FastEthernet 0/1 - 10
Switch(config-if-range)#_

Una vez en el modo configuración de interfaz se puede consultar el listado de comandos disponibles utilizando el comando de ayuda habitual: ? debemos tener presente que la lista de comandos que se genera varía de acuerdo al tipo de interfaz, la plataforma y la versión de IOS de que se trate.
En esta lista de comandos, algunos de los básicos son:


Router(config-if)#no shutdown
Las interfaces de los routers Cisco IOS tienen sus interfaces inactivas por defecto por lo que requieren ser activadas por configuración para que sean operativas.
Los switches Cisco Catalyst, en cambio, tienen todas sus bocas activas por defecto, motivo por el cual se sugiere que aquellas que no sean utilizadas sean desactivadas por configuración.
Para que una interfaz sea activa debe encontrarse en estado up/up, para lo cual en el caso de los routers es necesario que los puertos sean habilitados manualmente por el administrador utilizando el comando:

Router(config-if)#no shutdown

Al hacer copias de respaldo de los archivos de configuración es preciso recordar que este comando no se guarda en el archivo de configuración por lo que es conveniente editar esos archivos para agregar este comando en cada interfaz para facilitar que los puertos sean inmediatamente operativos cuando se haga una restauración de esa configuración.


Router(config-if)#ip address x.x.x.x x.x.x.x
Este comando que permite asignar una dirección IPv4 a una interfaz. El comando requiere que se ingrese tanto una dirección IPv4 como una máscara de subred, de lo contrario devolverá un mensaje de comando incompleto.

Router(config-if)#ip address 172.16.15.1 255.255.255.0

Una variante posible es activar el cliente DHCP de IOS en la interfaz de modo que obtenga una dirección IPv4 utilizando el protocolo DHCP:

Router(config-if)#ip address dhcp


Router(config-if)#ipv6 enable
Cuando se trata de implementar redes IPv6 este comando activa el protocolo enrutado en la interfaz.
Consecuencia inmediata de la activación del protocolo es la generación automática en la misma interfaz de la dirección IPv6 link-local (FE80::/10) correspondiente, utilizando EUI-64 para derivar la porción de nodo.
Cuando se ha de configurar una dirección IPv6 unicast global o unique-local este comando es opcional ya que al configurar la dirección se activa automáticamente el protocolo en la interfaz.


Router(config-if)#ipv6 address xxxx::/XX
Comando que permite asignar una dirección IPv6 a una interfaz.
Con diferentes variantes permite definir una dirección completamente estática o asignar solamente un prefijo de red y requerir que el ID de nodo se asigne automáticamente utilizando EUI-64. Requiere la identificación de la longitud del prefijo que identifica el segmento de red al que pertenece la interfaz.

Router(config-if)#ipv6 address 2001:db8:1:1::1/64
Router(config-if)#ipv6 address 2001:db8:1::/64 eui-64
Router(config-if)#ipv6 address FE80::1 link-local
En este caso también es posible activar el cliente dhcpv6 a la asignación de IPv6 utilizando la autoconfiguración stateless propia del protocolo.

Router(config-if)#ipv6 address autoconfig
Router(config-if)#ipv6 address dhcp



Router(config-if)#description
Si bien la incorporación de una descripción a la interfaz es un feature opcional es un recurso importante a tener en cuenta para facilitar la identificación de interfaces y las tareas de diagnóstico y resolución de fallos. La inclusión de una descripción clara y precisa ahorra tiempo y simplifica tareas futuras.
La forma de agregar una descripción en la configuración es la siguiente:
Router(config-if)#descriptioin LAN de ventas
También se puede agregar información de referencia tal como:

Router(config-if)#description enlace Eth con Acme soporte 0800-444-4444

Este tipo de anotaciones o referencias es de utilidad para facilitar tareas de resolución de problemas.


Router(config-if)#bandwitdh
Este es también un comando opcional pero necesario ya que es utilizado por diferentes algoritmos de cálculo que utiliza el sistema operativo. Entre ellos el algoritmo de aquellos protocolos de enrutamiento que utilizan el ancho de banda para sus cálculos de métrica, los algoritmos de asignación de recursos (QoS), los cálculos de nivel de utilización de las interfaces.
Es importante tener en cuenta que este comando declara el ancho de banda en Kbits. Los valores por defecto son diferentes en interfaces LAN o WAN.
En interfaces Ethernet se toma como valor BW la velocidad a la que ha negociado la interfaz cuando está habilitada la autonegociación, o la velocidad definida en el puerto cuando se ha optado por una configuración estática. 
En interfaces seriales el valor por defecto es el correspondiente a una interfaz E1: 1544 Kb.

Router(config-if)#bandwidth 1024

El valor efectivamente en uso en cada interfaz puede ser consultado utilizando el comando show interfaces.


Router(config-if)#duplex auto
Router(config-if)#speed auto
Se trata de comandos relacionados con las interfaces de la familia Ethernet de routers y switches.
Estos son dos comandos de suma importancia, ya que los valores de operación de ambos extremos de un enlace deben coincidir y en definitiva determinan la operación y performance de un segmento de red.
Por ejemplo, para configurar una interface como Fastethernet en modo full dúplex:

Router(config-if)#speed 100
Router(config-if)#duplex full

Los valores de velocidad (speed) posibles dependen del hardware del dispositivo.  En general, por defecto, las interfaces están en modo autosensitivo:

Router(config-if)#speed auto
Router(config-if)#duplex auto


Switch(config-if)#switchport xxxxx
Se trata de un comando propio de switches (no en routers), que permite colocar definir características de operación de puertos que operan en capa 2. De este comando dependen diferentes prestaciones: enlace troncal o de acceso, port-security, etc.
Por ejemplo, para configurar una interfaz en modo acceso o troncal:

Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 14

Switch(config-if)#switchport mode trunk

También se utiliza este comando en switches capa 3 para definir un puerto específico como puerto capa 2 o capa 3. Por ejemplo, para que un puerto comience a operar como interfaz ruteada:

Switch(config-if)#no switchport




Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.


21 de octubre de 2017

Elección de la mejor ruta - Gráfica

Cuando un dispositivo de capa 3 recibe información de enrutamiento de diferentes fuentes el algoritmo de selección de la mejor ruta de Cisco IOS se ocupa de definir cuáles son las rutas que se incorporarán en la tabla de enrutamiento para luego ser utilizadas.
Este algoritmo de selección de la mejor ruta considera en primer lugar la distancia administrativa, a continuación la métrica, y finalmente, a igual métrica se incorporan múltiples rutas al mismo destino en la tabla de enrutamiento.

Este gráfico procura describir ese proceso:




que está disponible en la Librería en Línea de EduBooks.


18 de octubre de 2017

Protocolos de enrutamiento dinámico - Gráfica

La implementación de enrutamiento dinámico requiere de la elección de un protocolo de enrutamiento.
De acuerdo a las características de la red y los requerimientos del servicio hay diferentes opciones disponibles: enrutamiento interno o externo, por vector distancia o estado de enlace. Hay una diversidad que debemos tener presente en el momento de la elección.



Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.


11 de octubre de 2017

10 comandos Cisco IOS que debemos conocer en detalle - Actualización

Con ocasión de alcanzar los primeros 500 posts en el blog, estoy revisando aquellas publicaciones que son las más populares o consultadas.
La primera en la lista es esta, escrita en el primer año de desarrollo del blog. Evidentemente, si sigue siendo visitada, es porque brinda información útil.
Por eso me he propuesto revisarla y actualizarla en lo que me parece conveniente. 
Este es el resultado.


Aún cuando Cisco IOS provee miles de comandos algunos de ellos son claves para la tarea diaria y siempre volvemos a ellos: han sido nuestros primeros pasos al acercarnos a IOS, y son los básicos en las tareas de resolución más complejas:

1. El signo de interrogación "?"
El primer comando que aprendemos generalmente, el más obvio y simple, y sin embargo quizás uno de los más ignorados es el signo de interrogación.
Cisco IOS ofrece un sistema de ayuda contextual que se despliega a partir del signo de interrogación.
Este es el mecanismo que habilita el menú de ayuda en el sistema de línea de comando.
Este comando presenta variantes de aplicación:

Cuando se lo aplica inmediatamente despues de una cadena de caracteres (sin espacio) permite verificar los comandos que, en ese modo, inician con las letras a continuación de las cuales se ingresó el carácter “?”.
Router#cl?
  clear  clock

Ingresando el signo “?” luego de un comando seguido de un espacio, muestra los argumentos requeridos y una breve explicación de cada uno.
Router#clock ?
  set  Set the time and date

2. Mensajes de error del sistema
No se trata propiamente de un comando, pero es una herramienta de suma importancia vinculada a los comandos y a la que desafortunadamente prestamos poca atención en muchos casos.
Los mensajes de error de Cisco IOS se identifican fácilmente por estar precedidos por el signo porcentual ( % ).

Router#cl
% Ambiguous command:  "cl"
Indica que no se han ingresado suficientes caracteres para que el sistema operativo identifique el comando deseado. Puede repetir el comando seguido del signo de interrogación para ver los comandos disponibles con ese inicio.

Router#clock
% Incomplete command.
Indica que se requiere algún argumento o parámetro adicional. Deje un espacio e ingrese el signo de interrogación para ver los subcomandos o parámetros requeridos.

Router#clock sot
              ^
% Invalid input detected at '^' marker.
Denota que se ha cometido un error en el ingreso del comando y se marca el punto en el que está la información inválida con el signo “^”.

Router#clack
Translating "clack"...domain server (255.255.255.255)
Translating "clack"...domain server (255.255.255.255)
(255.255.255.255)% Unknown command or computer name, or unable to find computer address
Cuando se ingresa una cadena de caracteres en el prompt el sistema operativo analiza si se trata de una dirección IP, si no es una dirección IP revisa los comandos disponibles en el modo y si hay una coincidencia lo ejecuta como comando, si no corresponde con un comando, entonces lo interpreta como un “nombre” e intenta una traducción de ese nombre utilizando un servicio DNS.

3. show runnin-config
Nos permite verificar la configuración activa de routers, switches, access points, firewalls. 
La configuración activa es la que se encuentra almacenada en la RAM del dispositivo y sobre la que se realizan los cambios en el modo configuración.
Para quienes no están familiarizados con Cisco IOS, es importante que tengan en cuenta que los cambios realizados -la inmensa mayoría- en esta configuración tienen efecto inmediato en la operación del dispositivo. Pero por estar almacenados en la memoria RAM, son volátiles y se pierden durante el reinicio del dispositivo.
Por lo tanto es importante tener presentes también los comandos que nos permiten almacenar estos cambios en la memoria NVRAM sobreescribiendo el archivo de configuración de respaldo: copy system:running-config nvram:startup-config; o su versión breve: copy running-config startup-config; o la aún activa write memory (wr en su forma abreviada).
Este comando presenta solamente las modificaciones que se han realizado a la configuración por defecto del dispositivo y está dividido en secciones que facilitan su lectura.
Los signos de cierre de admiración (!) indican al sistema operativo líneas del archivo que no deben ser ejecutadas como comandos.
Se puede identificar el resultado de este comando por el texto “Current configuración…” que la encabeza, y que va acompañado por la medida del archivo expresada en bytes.

4. copy running-config startup-config
Este es el comando que guarda los cambios realizados en la configuración activa (RAM) a un archivo de configuración de respaldo (NVRAM ) que es el que será utilizado en caso de que por cualquier motivo el dispositivo sea reiniciado.
Con las variaciones debidas este mismo comando copy nos permiten crear copias de respaldo del archivo de configuración en servidores ftp, tftp o en la misma memoria flash del dispositivo, copias de respaldo de la imagen de IOS o de cualquier otro archivo.

5. show interfaces
Permite visualizar el estado y las estadísticas de operación de las interfaces del dispositivo. Entre otras cosas permite verificar:
Estado de las interfaces (up/dow).
Estado del protocolo implementado en la interfaz.
Nivel de utilización del enlace asociado a esa interfaz incluyendo volumen de tráfico, cantidad de paquetes, tasas de errores, paquetes descartados, etc.
MTU de la interfaz y ancho de banda declarado.
Es un comando esencial para el diagnóstico de fallos.

6. show ip interface
Tan importantes como show interfaces son show ip interface y show ip interface brief.
Este comando provee permite verificar la configuración completa de la interfaz incluyendo los valores por defecto, al mismo tiempo que el estado del protocolo IP y sus servicios asociados. Es el comando que nos permite verificar si hay ACLs asociadas a la interfaz
Show ip interface brief permite tener una mirada rápida del estado de cada interfaz del dispositivo incluyendo las direcciones IP, el estado de capa 2 y el estado de capa 3.

7. no shutdown
Este es el comando que activa una interfaz sea física o lógica.
Es importante tener presente que todas las interfaces de los routers Cisco están desactivadas por defecto mientras que las de los switches están activas por defecto.
Por este motivo, en los routers, se requiere la habilitación manual de cada una de las interfaces. 
Paralelamente no hay que olvidar que este comando NO aparece en el archivo de configuración.
En los switches Cisco, dada la opción por defecto de las interfaces, se sugiere desactivar manualmente aquellos puertos que no serán utilizados.

8. show ip route
Es el comando que nos permite visualizar la tabla de enrutamiento de los dispositivos que operan en capa 3.
La tabla de enrutamiento es la lista de todas las rutas a las redes destino que el dispositivo puede alcanzar, incluyendo su métrica, y la forma en que accede a ellas. 
Si todo funciona adecuadadamente cada dispositivo debiera tener al menos una ruta a cada red que es destino potencial de tráfico.
El comando tiene algunas variantes de importancia:

show ip route rip
    Muestra todas las rutas aprendidas a través del protocolo especificado.
show ip route 172.16.0.0
    Muestra todas las rutas disponibles a la red de destino especificada.
clear ip route *
    Limpia todas las rutas presentes en la tabla de enrutamiento.
clear ip route 172.16.0.0    Elimina todas las rutas a una red destino específica.

9. show version
Este comando permite verificar la configuración y estado del hardware y software del dispositivo, incluyendo entre otros:
Nombre, versión y lugar de almacenamiento de la imagen del sistema operativo que se está corriendo.
Cantidad de memoria RAM y flash (total y disponible) del dispositivo.
Tiempo transcurrido desde el último arranque del dispositivo.
Cantidad y tipo de interfaces disponibles.
Licencias.
Valores del registro de configuración.

10. debug
Este comando provee mensajes de eventos detallados relacionados con aplicaciones, protocolos o servicios que se encuentran activos en el dispositivo.
Estos mensajes se envian por defecto a la terminal de consola, pero pueden re-dirigirse a una terminal virtual (sesión Telnet o SSH) o a un servidor de Syslog. 
Es importante tener presente esta tarea tiene máxima prioridad de procesamiento por lo que la activación de estas funciones puede provocar una sobrecarga de procesamiento en el dispositivo que puede poner en riesgo la operación normal de la red. A la vez, si la salida está redirigida a sesiones de Telnet o SSH esto generará una sobrecarga de tráfico en los enlaces involucrados lo que puede provocar pérdida de paquetes o que se bloquee la conexión.
Esta funcionalidad se desactiva con los comandos undebug all o no debug.



Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.


10 de octubre de 2017

500 publicaciones

Y finalmente, 11 años después, este esfuerzo que inició en febrero del año 2006 llegó a completar las 500 publicaciones.
Cuando inicié con aquel primer post nunca pensé que esto continuaría por tanto tiempo, ni que llegaría a tantas publicaciones.
Muchas gracias a quienes me han seguido durante estos años, a quienes me siguen en los diferentes grupos en las redes sociales (ya son más de 20.000 en total), a quienes aportan con sus comentarios. Este blog es hoy mucho más que el complemento de mis manuales, es el fruto de nuestra interacción, de sus sugerencias, de sus aportes.
De nuevo, muchas gracias.