Filtrado de Resultados de Comando show en IOS de Cisco.

Filtrado de Resultados del comando show

EL filtrado de de resultados es una utilidad que pasa muy por debajo de la mesa; sumamente subestimada, y su utilidad a la hora de mostrar la información de manera mucho más concreta, mucho más precisa, no tiene límites, por cuanto es tan útil y tan práctica, como la creatividad de su ejecutor lo permita.


Es de aclarar, que tampoco es la panacea, sino que a la verdad es bastante útil en ocasiones poder filtrar y ver sólo lo necesario, sobre todo cuando sabemos que es lo que queremos ver y donde verlo. Es por ello, que tampoco se debe usar tan a la ligera, en vista que si no estamos del todo seguro de lo que esperamos ver, podriamos con el uso de los filtros, excluir información que ciertamente también nos resulta útil.


Asimismo, destaco que no es esta una guía definitiva, sino tan sólo un aliciente para invitar al usuario de los equipos Cisco a adentrarse más y más en esta discreta funcionalidad, que ciertamente me parece tiene aún mucho por decir. Ya que cada vez que investigo, consigo nuevas maneras de modificarla para sacarle aún mayor provecho.


Ahora bien, partiendo de un ejemplo básico, supongamos que el administrador de red, desea conocer las redes declaras por el protocolo OSPF en su configuración. Simplemente ejecutaría show running-config, lo cual le proveería de la configuración almacenada en la RAM, y al pulsar tres veces (en mi caso) sobre la barra espaciadora para expandir la información (more), vería el resultado esperado.


Sin embargo, ejecutando el filtrado de este modo obtendría lo siguiente:
show running-config | begin ospf
router ospf 10
router-id 3.3.3.3
log-adjacency-changes
passive-interface GigabitEthernet0/0
network 192.168.1.0 0.0.0.255 area 0
network 192.168.10.4 0.0.0.3 area 0
network 192.168.10.8 0.0.0.3 area 0
!
ip classless
!
ip flow-export version 9
!
!
!
banner motd ^C Authorized Access Only! ^C
!
!
!
!
line con 0
!
line aux 0
--More--

Lo que está indicando el modificador begin, como ha de suponer, es que se muestre el resultado partiendo de la palabra clave indicada, en este caso ospf.

Podriamos también solicitar que solo se muestren las redes y nada mas:


R3#show running-config | include network
network 192.168.1.0 0.0.0.255 area 0
network 192.168.10.4 0.0.0.3 area 0
network 192.168.10.8 0.0.0.3 area 0

En este particular, include solo muestra resultados donde la palabra clave coincida.


include además tiene su opuesto exclude, el cual ignora la palabra clave:


R3#show running-config | exclude service
Building configuration...

Current configuration : 1090 bytes
!
version 15.1
!
hostname R3
!
!
!
!
!
!
!
!
ip cef
no ipv6 cef
!
!
!
!
license udi pid CISCO1941/K9 sn FTX1524E7P8

En este caso, ha ignorado las siguientes líneas, que incluían la palabra: service


R3#show running-config
Building configuration...

Current configuration : 1090 bytes
!
version 15.1
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption !
hostname R3
!

Vale la pena destacar, que la palabra clave usada es sensible a las mayúsculas y minúsculas, por lo cual se debe ser cuidadoso en ello.


Para concluir, pueden consultar la ayuda de la cónsola del IOS para corroborar el funcionamiento de los modificadores.


R3#show running-config | ?
begin Begins unfiltered output of the show command with the first line
that contains the regular expression.
exclude Displays output lines that do not contain the regular expression.
include Displays output lines that contain the regular expression.

Protocolo de Enrutamiento OSPF

OSPF

OSPF

Open Shortest Path First es un protocolo de enrutamiento de estado de enlace, de una distancia administrativa (confiabilidad) de 110, y una métrica basada en el costo, siendo este inversamente proporcional al ancho de banda. Por lo que se sujeta en la determinación de la mejor ruta, no a la cantidad de saltos sino a la calidad del enlace.

Características de OSPF.

Se pueden destacar cinco características del protocolo de enrutamiento en cuestión. Unas un tanto subjetivas y otras objetivas. Que además vienen a representar ventajas generales a considerar a la hora de su implementación
  • Sin clase: admite VLSM, CIDR.
  • Eficaz: reduce el consumo de ancho de banda, al enviar actualizaciones sólo cuando han habido modificaciones en la topología, es decir no lo hace de forma periódica.
  • Convergencia Rápida: buena velocidad de propagación y procesamiento de las actualizaciones del árbol de red.
  • Escalable: siendo útil para redes pequeñas y grandes, ya que por medio de áreas se pueden agrupar los routers en niveles jerárquicos.
  • Seguro: permite habilitar autenticación MD5 para la negociación de actualizaciones.

Componentes de OSPF.

Estructura de Base de Datos.

  • Base de datos de adyacencia: tabla de vecinos.
    • Tabla única que almacena información de los routers adyacentes con los que se ha establecido conectividad.
    • R2#sh ip ospf neighbor
      Neighbor ID Pri State Dead Time Address Interface
      1.1.1.1 0 FULL/ - 00:00:30 172.16.3.1 Serial0/0/0
      3.3.3.3 0 FULL/ - 00:00:38 192.168.10.10 Serial0/0/1

  • Base de datos de estado enlace: tabla de la topología
    • Es la encargada de almacenar la topología de la red, y la misma es idéntica en todos lo routers de una misma área.
    • R2#show ip ospf database
      OSPF Router with ID (2.2.2.2) (Process ID 10)
      Router Link States (Area 0)
      Link ID ADV Router Age Seq# Checksum Link count
      2.2.2.2 2.2.2.2 708 0x80000006 0x0011ae 5
      3.3.3.3 3.3.3.3 709 0x80000006 0x008e11 5
      1.1.1.1 1.1.1.1 709 0x80000006 0x00b617 5

  • Base de datos de reenvíos: tabla de enrutamiento.
    • Son las rutas para el tráfico obtenidas luego de la ejecución del algoritmo en la base de datos de estado enlace.

    • R2#show ip route
      172.16.0.0/16 is variably subnetted, 5 subnets, 3 masks
      O 172.16.1.0/24 [110/65] via 172.16.3.1, 00:19:09, Serial0/0/0
      C 172.16.2.0/24 is directly connected, GigabitEthernet0/0
      L 172.16.2.1/32 is directly connected, GigabitEthernet0/0
      C 172.16.3.0/30 is directly connected, Serial0/0/0
      L 172.16.3.2/32 is directly connected, Serial0/0/0
      O 192.168.1.0/24 [110/65] via 192.168.10.10, 00:19:09, Serial0/0/1
      192.168.10.0/24 is variably subnetted, 3 subnets, 2 masks
      O 192.168.10.4/30 [110/128] via 192.168.10.10, 00:19:09, Serial0/0/1
      [110/128] via 172.16.3.1, 00:19:09, Serial0/0/0
      C 192.168.10.8/30 is directly connected, Serial0/0/1
      L 192.168.10.9/32 is directly connected, Serial0/0/1


Mensajes de OSPF.

  • Hello- reconocimiento.
  • Descriptores de base de datos (DBD)- sincronización de base de datos.
  • Solicitud de estado de enlace (LSR)- registros específicos de estado enlace de router a router.
  • Actualización de estado de enlace (LSU)- anunciar nueva información o respuestas a LSR
  • Acuse de recibo de estado de enlace (LSAck)

Algoritmo de cálculo de costo.

OSPF emplea el algoritmo Dijkstra, el cual es un algoritmo de búsqueda que tiene por fin encontrar el camino mas corto desde un punto hasta otro en una red, luego de haber explorado todos los caminos.

Funcionamiento de OSPF.

  1. Down - envío de paquete hello.
  2. Init - recepción de paquete hello.
  3. Two-Way - en enlaces Ethernet, se elige un DR y un BDR. Transición al estado ExStart.
  4. ExStart - negociación e inicio de intercambio de paquetes DBD.
  5. Exchange - intercambio de paquetes DBD.
  6. Loading - envío de LSR y LSU. Procesamiento de rutas por medio de algoritmo.
  7. Full - convergencia.

Métrica OSPF - Costo

Como ya se ha dicho, la métrica en una interfaz con enrutamiento OSPF, es inversamente proporcional al ancho de banda en la interfaz. Y se calcula de acuerdo a la siguiente fórmula:


Costo = Ancho de banda de referencia (10*8) bps / Ancho de banda bps


Tipo de Interfaz Ancho de banda de referencia Ancho de banda de la interfaz Costo
10 Gigabit Ethernet - 10 Gbps 100.000.000 bps 10.000.000.000 bps 1
1 Gigabit Ethernet - 1 Gbps 100.000.000 bps 1.000.000.000 bps 1
100 FastEthernet - 100 Mbps 100.000.000 bps 1.000.000 bps 1
Ethernet - 10 Mbps 100.000.000 bps 10.000.000 bps 10
Serial - 1.544 Mbps 100.000.000 bps 1.544.000 bps 64
Serial - 128 kbps 100.000.000 bps 128.000 bps 781
Serial - 64 kbps 100.000.000 bps 64.000 bps 1562

Las primeras tres interfaces comparten el mismo costo en este caso, porque OSPF solo ofrece resultados con números enteros.


Ajuste de Ancho de Banda de Referencia.

Como se ha observado en los casos de interfaces de alta velocidad, el costo no se ve afectado, por lo que es necesario modificar el ancho de banda de referencia para ver reflejado la calidad del enlace en el costo, mediante un cálculo más específico


Lo anterior se logra a través de la ejecución del siguiente comando auto-cost reference-bandwidth Mbps. En este caso para una interfaz 10 Gigabit Ethernet, lo indicado sería: auto-cost reference-bandwidth 10000

Quedando la tabla anterior luego del ajuste de la siguiente forma:


Tipo de Interfaz Ancho de banda de referencia Ancho de banda de la interfaz Costo
10 Gigabit Ethernet - 10 Gbps 10.000.000.000 bps 10.000.000.000 bps 1
1 Gigabit Ethernet - 1 Gbps 10.000.000.000 bps 1.000.000.000 bps 10
100 FastEthernet - 100 Mbps 10.000.000.000 bps 1.000.000 bps 100
Ethernet - 10 Mbps 10.000.000.000 bps 10.000.000 bps 1000
Serial - 1.544 Mbps 10.000.000.000 bps 1.544.000 bps 6477
Serial - 128 kbps 10.000.000.000 bps 128.000 bps 78125
Serial - 64 kbps 10.000.000.000 bps 64.000 bps 156250

El ancho de banda de referencia solo tiene por fín el cálculo del costo, no afecta el ancho de banda real de la interfaz.


Ancho de Banda de la Interfaz.

Todos los equipos traen configurados por defecto un ancho de banda, es por ello que es necesario ajustar este valor con el objeto de obtener un costo lo mas preciso posible y cercano a la realidad de la red. Igual que el valor anterior, este no afecta la capacidad de la interfaz, sino que es meramente para fines del cálculo de la métrica.

bandwidth valor kbps.

Ajuste Manual del Costo OSPF

Como alternativa a la configuración del ancho de banda de interfaz predeterminado, es posible configurar el costo de forma manual en una interfaz con el comando de configuración de interfaz ip ospf cost valor. Una ventaja de configurar un costo en lugar del ancho de banda de la interfaz es que, cuando se configura el costo manualmente, el router no necesita calcular la métrica.


Troubleshooting OSPF

Lista de vecinos:
R2#show ip ospf neighbor

Estadísticas y parámetros de los procesos de protocolos de enrutamiento.
R2#show ip protocols

Estadísticas y parámetros de los procesos de protocolos de enrutamiento.
R2#show ip protocols

Estadísticas y parámetros de los procesos de protocolos de enrutamiento.
R2#show ip protocols

Información de la interfaz.
show ip ospf interface interface
 

Fuente: Cisco Net Academy

Conceptos básicos de SQL

SQL - Structure Query Language


 Buscar SQL en Google produce un resultado de aproximadamente 200.000.000 de enlaces, lo que nos dá una idea de lo ampliamente difundido y usado que es este lenguaje, que se caracteriza por ser de caracter declarativo para el acceso a las bases de datos. Y es de destacar, que puede varias ligeramente dependiendo del motor de base de datos que se esté usando para realizar las consultas.

 Dicho lo anterior, y conociendo los basto y amplio del campo para aprender y obtener información sobre SQL, y no siendo yo sino un simple fanático, me he tomado la libertad para resumir, para mostrar de una manera muy superficial, de que se trata, sus conceptos fundamentales y los comandos mas comunmente utilizados; para que sirva de abre boca al interés de sumergirse en el conocimiento de este magnífico lenguaje, con aires de universal y sumamente bondadoso con otros.

 Yendo al grano, SQL o structured query language por sus siglas en inglés, es un lenguaje de programación diseñado para manipular y manejar información almacenada en bases de datos relacionales. Siendo éstas unas bases de datos que organizan la información en una o mas tablas. Asimismo, las tablas se entienden como una colección de información dispuesta a través de columnas (campos) y filas (registros).

 El propósito fundamental de SQL es obtener o recavar información almacenada en una base de datos, por medio de las comumente conocidas consultas (queries).  Consultar permite establecer una comunicación con la base de datos, para realizar preguntas y obtener respuestas de vuelta, de acuerdo a la información manejada en la base de datos.

  Para realizar estas consultas se emplean un conjunto de clausulas o comandos, combinados o no para obtener la información que se requiera. Los más comumente usados son los siguientes:
  
 - SELECT es la clausula fundamental para consultar información.
 - SELECT DISTINCT opera semejante a la anterior, con la diferencia que devuelve resultados sin registros repetidos.

 -WHERE permite filtrar las consultas basados en condiciones específicas.
    + LIKE usado para comparar valores similares.
    + BETWEEN tiene por propósito filtrar los resultados por rangos.
    + AND & OR aplicados para combinar multiples opciones.
    + Other operators =, !=, >, <, >=, <=.

 - Wildcards
    + - permite sustituir cualquier caracter sin afectar el patrón de la cadena.
    + % encaja ningún o cualquier caracter en un patrón.

  - ORDER BY clausula usada para ordenar la información resultante.
    + DESC de forma descendente.
    + ASC de forma ascente.
    + LIMIT limitada a equis cantidad de registros.

  - Funciones de agregación, que tienen por fin juntar varias columnas para obtener un solo valor.
    + COUNT cuenta el número de columnas donde el valor no es nulo.
    + GROUP BY usada para combinar información de una o mas columnas.
    + SUM ( ) suma los valores de una columna.
    + MAX ( ) devuelve el valor máximo de una columna.
    + MIN ( ) devuelve el valor mínimo de una columna.
    + AVG ( ) da como resultado el valor promedio de una columna.
    + ROUND ( ) redondea el valor de decimales.  

 - Conceptos de Tablas Multiples.
   + Primary Key es aquella columna que sirve de identificador único para una fila en la tabla. Los valores en está columna deben ser únicos y no pueden ser NULL.
   + Foreign Key es la columna que contiene la primary key en otra tabla.

  - Joins son usados para combinar data de distintas tablas.
    + Inner Join dará como resultado la combinación de tablas si la condición es verdadera.
    + Outer Join devolverá todas las columnas de la tabla de la "izquierda", y si la condición join no se cumple, los valores NULL serán usados para completar las columnas de la tabla de la "derecha".

  - AS permite renombrar las columnas para los resultados, mediante un alias.

  Para concluir recomiendo este curso de Codecademy: Learn SQL, el cual es 100% práctico, que es la mejor manera de aprender.

 Y una vez alcanzado cierto dominio, para consolidarlo mediante mas práctica recomiendo el siguiente sitio: hackerrank.com - SQL 

 Como último recurso, la siempre útil w3schools.com - SQL

Recuperar o Restablecer Contraseña en Router Cisco

Cisco Rom Monitor

Restablecimiento de contraseñas en equipos Cisco.

Es un procedimiento bastante simple y rápido, que por falta de práctica (gracias a Dios), se tiende a olvidar. Y a la larga mas tiempo se toma recavando información y recordando, que el mismo procedimiento en sí. Es por ello, que para agilizar el proceso en mi caso particular, he creado una práctica de laboratorio en Packet Tracer con los pasos bien definidos para tal fín. Y he aprovechado como un plus, agregar los procedimientos para actualizar IOS y cargar un IOS desde un servidor TFTP, en caso de que al equipo se le haya borrado.


El escenario de ensayo es el siguiente:
escenario packet tracer
Fig 1: Escenario de práctica para recuperación de router cisco.

Acciones de Recuperación en Router Cisco.

  1. En R1 se debe cargar un IOS (c1841-advipservicesk9-mz.124-15.T1.bin), ya que no cuenta con uno.
  2. En R2 se debe recuperar la contraseña.
  3. En R3 se debe actualizar el IOS a c1841-ipbasek9-mz.124-12.bin
A los tres routers se les debe asignar los nombres respectivos, así como habilitar la seguridad básica:
  • Contraseña para cónsola: cisco
  • Contraseña para nivel privilegio: class
  • Habilitar servicio de cifrado de contraseñas.

Solución.

  • R1: Cargar IOS desde cero.

    1. Obtener los parámetros de red para conectarse al servidor TFTP
    2. En el modo Rommon, ingresar el comando tftpdnld y se desplegarán las variables que deben ser definidas:
      • IP_ADDRESS=
      • IP_SUBNET_MASK=
      • DEFAULT_GATEWAY=
      • TFTP_SERVER=
      • TFTP_FILE=
    3. Ejecutar comando tftpdnld.
    4. Una vez cargado el IOS, ejecutar reset. De ser exitoso el procedimiento, el router iniciará correctamente.

  • R2: Recuperar contraseña.

    1. Apagar y encender el equipo físicamente para forzar el reinicio del IOS.
    2. Mientras se va ejecutando el proceso de reinicio, presionar la tecla de interrupción break o CTRL + C para ingresar en modo Rommon.
    3. Ejecutar comando confreg 0x2142 para saltar el proceso de autenticación de usuario al iniciar el router.
    4. Ejecutar reset para reiniciar el router.
    5. Una vez iniciado el router, pasar al nivel privilegio y copiar la configuración de inicio a la configuración que se está ejecutando copy startup-config running-config.
    6. Colocar las nuevas contraseñas.
    7. Restituir el registro de inicio en la configuración, ejecutando config-register 0x2102 en configuración global.
    8. Salvar la configuración en la configuración de inicio: copy running-config startup-config.

  • R3: Actualizar IOS.

    1. Obtener los parámetros de red para conectarse al servidor TFTP y el nombre del IOS a cargar.
    2. Cargar el IOS de servidor al router copy tftp: flash: en nivel privilegio y completar los parámetros solicitados:
      • Address or name of remote host []?
      • Source filename []?
    3. Modificar la secuencia de inicio con el nuevo IOS en nivel global boot system flash archivo_IOS.bin
    4. De ser necesario, borrar el antiguo IOS en nivel privilegio delete flash: archivo_IOS.bin
    5. Salvar la configuración en la configuración de inicio copy running-config startup-config

 La práctica en Packet Tracer puede ser descargada en el siguiente vínculo de mi cuenta de Dropbox: Recuperación_Routers.pka

Dos nuevas funcionalidades de Dropbox.


 Nuestros amigos de Dropbox siguen trabajando para hacernos la vida más fácil y entretenida a la hora de usar su servicio de almacenamiento en la nube (Servicios de Almacenamiento en la Nube ¿Cuál usar?) agregando dos funcionalidades sumamente interesante, para de este modo seguir engrosando un servicio que ya de por sí, por lo menos en lo personal, se ha vuelto imprescindible en mi día a día, tanto dentro como fuera del trabajo.

 La funcionalidades en cuestión son dos y han sido agregadas casi simúltaneamente en el año en curso, y son: Solicitudes de Archivos y Equipo.

 1. Solicitudes de Archivos.

 La funcionalidad es simple, consiste en enviar un enlace por medio del cual un tercero al hacer clic podrá cargar un fichero el cuál se verá reflejado en tu carpeta Dropbox. Es de destacar, que el tercero no necesita poseer una cuenta en el servicio para usarlo.

Solicitudes de archivos en Dropbox
Fig. 1: Solicitudes de archivos en Dropbox.

  Sus usos, infinitos. En lo personal se me ocurre usarlo para colectar trabajos solicitados a estudiantes y de este modo tenerlos directamente en mi carpeta Dropbox y sincronizados en mis dispositivos.

 2. Equipo.

 Pensada para aquellas personas que también utilizan el servicio de Dropbox para realizar tareas colaborativas, se ha desarrollado esta funcionalidad, la cual permite:

 - Organizar los archivos de tu empresa.
 Obteniendo un Dropbox dedicado para el trabajo y una carpeta del equipo: un lugar centralizado para los archivos que todos necesitan.

- Proteger los datos confidenciales.
 Restringe el acceso a los archivos y a las carpetas más importantes de modo que solamente las personas autorizadas tengan acceso a la información de la empresa.

 - Completar los proyectos más rápidamente.
 Colabora con tus compañeros de trabajo y clientes, recibe comentarios y comparte tu trabajo rápidamente.

Opción Equipo de Dropbox
Fig. 2: Opción Equipo de Dropbox.
 Para usar esta opción puedes asociar tu correo corporativo o simplemente usarla con el correo asociado a tu cuenta Dropbox.

 Esperemos Dropbox nos siga sorprendiendo...

lichess.org plataforma para el juego de ajedrez en línea.


lichess.org

 Si eres un fanático del ajedrez y no dejas de pensar en gambitos y celadas en tu día a día, y hasta haces enroques cuando vas por la vida; consideras digno de admiración que Alejandro Magno se impusiera sobre el imperio persa en clara demostración de superioridad estratégica, táctica e intelectual; adorás saber de las estratagemas de Napoleón en el campo de batalla, incluido Waterloo; y finalmente consideras que Maquiavelo con su tratado El Principe analizó perfectamente el comportamiento humano en el mundo político, lichess.org es para ti, y si no, también lichess.org es para ti.
lichess.org
Fig. 1: lichess.org

 Amargos y largos años había pasado surcando la web sin poder encontrar una página para jugar ajedrez con personas de cualquier lugar del mundo a la hora que fuera, hasta que mis oraciones fueron escuchadas y por medio de un compañero de trabajo llegué a lichess.org. Es difícil describir lo inmensamente conforme que estoy con este portal, y luego de tanto tiempo no deja de sorprenderme, y me temo que no lo dejará de hacer.

 La estadísticas de juego son impecables, victorias, derrotas, tablas, tendencias, puntajes. Y es de destacar una de mis opciones favoritas, el análisis del juego, el cual me permite ver una vez finalizada la partida mis errores y movimientos que hubiesen sido mejores.

 También cuenta con una sección de aprendizaje de la que voy a resaltar, por ser la que mas uso, la de entrenamiento, que no son más que rompecabezas que a la verdad permiten desarrollar destrezas tácticas tras la práctica continúa.

 Finalmente aplaudo que la página no tiene ni rastro de publicidad. Y nada, no me queda más que invitarte a jugar y jugar, y si quieres desafiarme (botón de espadas cruzadas) a una partidilla este es mi usuario @alexricardo

 Nos vemos en el tablero  (-;