Archivos Mensuales: marzo 2014

Manejar la Command Line de CISCO con más destreza

Manejar la Command Line con más destreza.

R1#show run | include (router|network)

Este comando muestra la configuración que esta en el running solamente la parte que tiene las palabras “router” o “Network”

Por ejemplo para saber que rutas están incluidas en cada protocolo:
c1
Otro camino para mostrar las rutas del comando show, es usar Filtros.

R1# show ip route eigrp | section (35|50|64|200)

usar «section» en lugar de «include» es porque la tabla puede ser muy grande y solo queremos ver la lista en unas pocas lineas. ej. 172.16.200.0/22
c2

Otro ejemplo sería el caso que queremos mostrar solo los interfaces loopback en una salida del comando brief.

c3
R1# show ip int brief | i \.

Este commando muestra todos los interfaces que tienen ipv4 configurado. Si tienes alguna sub-interfaces que no tienen ninguna dirección IP, también se mostrar

En caso de usar  \..*\. Tendría que probar para saber que nos mostraría no tengo nada claro.

R1# show ip int brief | i \..*\.

 

c4

Otros filtros muy interesantes para la ayuda «help». 

Cuando quieres saber un commando y su descripción en particular para saber si quieres seleccionar ese u otro, ponemos “?” y damos al enter. Después obtenemos como salida en pantalla una maravillosa lista de comandos.

Si por ejemplo queremos encontrar la descripción de “standby” tenemos que darle varias veces a la barra espaciadora hasta  llegar al comando.

Lo ideal es aplicar un filtro cuando veamos «–MORE–» usando la tecla “+”, por ejemplo la del teclado numérico.

+regex es incluir

-regex es excluir

?regex es … no se probarlo en una IOS moderna.
c5

 

show interface | include is up|BW|load

 RtrA#show int | inc is up|BW|load GigabitEthernet0/0 is up, line protocol is up   MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,      reliability 255/255, txload 1/255, rxload 1/255

 

El comando «section» es muy usable. Por ejemplo, 

show run | sec interface

show run | sec crypto

show run | sec router

show run | sec crypto|-list

 

Cisco ofrece el comando  <i>alias</i> command

Es un comando nuevo para mi. Normalmente usamos include/begin/exclude el alias me parece genial para entornos de trabajo

srb - Show Running-Config | Begin
sre - Show Running-Config | Exclude
sri - Show Running-Config | Include
srint - Show Running-Config Interface"

Hay personas que usan estos commando en los examines con los laboratorios de CCIE para ir más rápido o lógicamente en el mercado laboral donde los comandos pueden llegar a ser repetitivos. ””To make life easier, Cisco offers the alias command, which can help dispel part of this repetition.

“”Let’s take a closer look at the alias command. This is a Global Configuration command. To use it, enter the alias command and identify which privilege level you want to specify the alias for. Here are some examples:

  • Use alias exec for Privileged Mode (any command you use at the router# prompt).
  • Use alias configure for Global Configuration Mode (any command you use at the router(config)# prompt).
  • Use alias interface for Interface Configuration Mode (any command you use at the router(config-if)# prompt).

After specifying the privilege level, enter the alias you want to create and the command you want it to stand for.

As far as I know, you can configure an alias to do anything that you can do at the command line. Of course, there’s a catch: An alias can’t move between modes, type in passwords, or do anything interactive for you.”””

Alias examples

srb - Show Running-Config | Begin
Router(config)# alias exec srb show running-config | begin
sre - Show Running-Config | Exclude
Router(config)# alias exec sre show running-config | exclude
sri - Show Running-Config | Include
Router(config)# alias exec sri show running-config | include
srint - Show Running-Config Interface
Router(config)# alias exec srint show running-config interface

Como veis con estos alias no esta el commando complete faltan parámetros que podemos introducir a posterior.

Por ejemplo:

srint fa0/0

Default aliases

¿Sabías que la IOS de Cisco incluye e incorpora alias de algunos comandos incorporados? (Por supuesto, Cisco IOS siempre acepta comandos únicos más cortos, pero estoy hablando de alias de comandos reales.) Comandos alias por defecto:

  • p stands for ping.
  • h stands for help.
  • lo stands for logout.
  • u and un stand for undebug.
  • w stands for where.

You can view these aliases by using the show alias command—whether you’ve actually configured any aliases of your own.

Alias muy recomendables:

Alias: s
Para: show running-configuration
Se crea con: alias exec s sh run
Alias: c
Para: configure terminal
Se crea con: alias exec c conf t
Alias: sir
Para: show ip route
Se crea con: alias exec sir sh ip ro

You can use the above alias to specify parameters, such as sir bor sir o, to show all BGP routes or all OSPF routes. Or, to see a specific route, you could use sir 10.1.1.1.

Alias: i
Para: show ip interface brief
Se crea con: alias exec i sh ip int brie

Para frame relay, puedes usar estos otros:

Alias: pvc
Para: show frame-relay pvc
Se crea con: alias exec pvc show fram pvc
Alias: dwn
Para: show frame-relay map | include down
Se crea con: alias exec dwn sh fram map | inc down

If you go into a certain router configuration a lot (for example, BGP AS 1234), you can use the following:

Alias: b
Short for: router bgp 1234
Create it with: alias configure b router bgp 1234

Usamos mucho por ejemplo el no shutdown en un interface, podemos hacer el alias:

Alias: ns
Para: no shutdown
Se crea con: alias interface ns no shutdown

http://routerjockey.com/2010/05/16/using-regular-expressions-on-cisco-ios/

http://startup-config.com/command-line-shortcuts-cisco-geek/

http://www.handsomeplanet.com/archives/11

 

 

ENTENDIENDO Plantillas Switch CISCO ( SDM templates CISCO)

Recomiendo ver el post anterior sobre la CAM y la TCAM https://cmdsistemas.wordpress.com/2014/03/11/tabla-cam-en-cisco-switch-y-tcam/
Como habíamos comentado anteriormente continuamos con el post anterior y nueva característica de IOS 15.

SDM (Switch Database Manager)

Por entender SDM templates, por ejemplo en un siwtch de capa tres SDM lanbase-routing  template activará el switch para enrutar entre VLANs y soportar rutas estaticas. Por ejemplo un Cisco Catalyst 2960 switch.
  • Verificar el template o plantilla será con el comando:

                 #show sdm prefer

  • Para cambiar la plantilla ser hará desde modo global con el comando:

                (config)#sdm prefer command

Más adelanteaquí mismo veremos unos ejemplos.

Para optimizar el uso de un switch CISCO podemos especificar mejor los comandos y características a usar dependiendo del uso que le queramos dar en la red.

Por ejemplo podemos querer balancear los recursos que tiene un switch o podemos querer el número máximo de MAC almacenadas en la tabla CAM o por el contrario el número máximo de ACL para controlar las redes que están conectadas a él. Para esto surge el concepto de plantilla SDM en CISCO. En resumen optimizamos el soporte del equipo para ciertas características.
Hay varias plantillas e imagino que CISCO tendra nuevas ideas, las que encontré hasta ahora son las siguientes:

Routing: Prepara los recursos del sistema para unicast routing, tipico requerimiento en un switch que vamos usar para enrutar vlan, normalmente este tipo de equipos los colocamos en la capa de CORE o de distribución.

VLAN: Este tipo de platilla desactiva el enrutamiento por defecto y soporta el número máximo de direcciones MAC y tráfico unicast para estas direcciones, es típico para switches de capa 2.

Default: Balancea entre todas las funciones del switch

Access: Esta plantilla maximiza los recursos para las access control lists (ACLs) para disponer del número máximo de ACLs.

Dual-ipv4-and-ipv6: se divide en, enrutamiento y VLAN. Reservas menos espacio para la capa 2 unicast, y asigna mas a enrutamiento IPv6 y las entradas de seguridad ACL.

Por default los switches usan the Default SDM Template.
switch# show sdm prefer

The current template is «desktop default» template.

The selected template optimizes the resources in

the switch to support this level of features for

8 routed interfaces and 1024 VLANs.

number of unicast mac addresses: 6K

number of igmp groups + multicast routes: 1K

number of unicast routes: 8K

number of directly connected hosts: 6K

number of indirect routes: 2K

number of policy based routing aces: 0

number of qos aces: 512

number of security aces: 1K

En esta plantilla por defecto no se admite enrutamiento.
Vamos a cambiarlo a routing: «Policy Based Routing»
Switch(config)# sdm prefer routing

Switch(config)# end
Switch# wr
Switch# reload
Proceed with reload? [confirm]

Switch# show sdm prefer
(nos mostraría)
The selected template optimizes the resources in

the switch to support this level of features for

8 routed interfaces and 1024 VLANs.

number of unicast mac addresses: 3K

number of igmp groups + multicast routes: 1K

number of unicast routes: 11K

number of directly connected hosts: 3K

number of indirect routes: 8K

number of policy based routing aces: 512

number of qos aces: 512

number of security aces: 1K

 

Fijaros en el cambio:

number of policy based routing aces: 512

Ahora nos permite el comando route-maps, antes nos daría error, esto mismo puede pasar con otros comandos. De tener una plantilla por defecto el error citado sería:
May 30 06:10:02.705: %PLATFORM_PBR-3-UNSUPPORTED_RMAP: Route-map PBR not supported for Policy-Based Routing

A veces en ciertos swiches puede ser que no veamos esto nada claro, la mejor manera de comprobar si los paquetes están siendo políticamente enrutados, es ejecutar una traza desde el origen al destino.
Cuando tenemos «log» para una lista ACL que se llama en un PBR (politica de enrutamiento), el PBR no funcionará como se espera, a menos que desactivemos CEF o eliminamos la ip route cache del interfaz.
CEF: Cisco Express Forwarding ( http://www.cisco.com/c/en/us/support/docs/ios-nx-os-software/ios-software-releases-120-mainline/47205-cef-whichpath.html )

Dependiendo del dispositivo tendremos unas plantillas u otras, también una tabla orientativa sobre los recursos que ocupan cada recurso en la memoria, por ejemplo:

http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst2960x/software/15-0_2_EX/system_manage/configuration_guide/b_sm_152ex_2960-x_cg/b_sm_152ex_2960-x_cg_chapter_0100.html#task_410B1DD6081440C88990117265012059

http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3850/software/release/3se/system_management/configuration_guide/b_sm_3se_3850_cg/b_sm_3se_3850_cg_chapter_01011.html

Resumiendo: El uso de estas plantillas aumenta la flexibilidad y permite elegir lo que debe ser extendido al máximo en el hardware , dependiendo de dónde se despliega el switch.
En algunos Catalyst como el 3750 se puede ver el uso que hace la TCAM con este comando: show platform tcam utilization
Switch# show platform tcam utilization
CAM Utilization for ASIC# 0 Max Used

Masks/Values Masks/values

Unicast mac addresses: 6364/6364 31/31

IPv4 IGMP groups + multicast routes: 1120/1120 1/1

IPv4 unicast directly-connected routes: 6144/6144 4/4

IPv4 unicast indirectly-connected routes: 2048/2048 2047/2047

IPv4 policy based routing aces: 452/452 12/12

IPv4 qos aces: 512/512 21/21

IPv4 security aces: 964/964 30/30

Note: Allocation of TCAM entries per feature uses
a complex algorithm. The above information is meant
to provide an abstract view of the current TCAM utilization

http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst3750/software/troubleshooting/cpu_util.html#wp1004066
Las primeras plantillas aparecieron en el año 2011 mejorando en los switches actuales.

Tabla CAM en CISCO SWITCH y TCAM

CAM
Las MAC en un switch son guardadas en la CAM interna a el junto con la VLAN de la configuración del puerto, también se le agrega una marca temporal por si es misma MAC es aprendida por otro puerto, de esta manera sabemos por donde es aprendida la última vez y se mantiene actualizada.
Podemos cambiar este valor estipulado a 300 sg por defecto:
#mac address-table aging-time 150
Acabamos de poner a 150 segundos.
Comando para ver una tabla CAM, poner mac de forma dinámica una MAC etc no son motivo de este post.

TCAM
En la CAM el indice de busqueda es decir el campo clave es la MAC, en la TCAM depende de la información que contenga.
Esta tabla varia dependiendo del protocolo que usemos y para cada uno tiene diferente campos estructurados en función de la tarea que deben cumplir. Son VALOR, MASCARA y RESULTADO.
VALOR: contiene siempre direcciones de origen y de destino asi como información importante del protocolo.
MASCARA: se utiliza como en redes, para hacer la comparación
RESULTADO: es un valor numérico y determinará que hacer, como en las listas de acceso, por ejemplo permitir denegar o incluso puede ser distintas posibilidades, es decir un comparativo, si haces esto pues entonces …, pero si es esto otro haz … lo otro 🙂
Por ejemplo en EHERNET el origen sera la MAC de origen, la MAC de destino y el tipo de ethertype.
Otro ejemplo sería ICMP que llevaría Ip de origen, ip destino, protocolo, código de ICMP,tipo de ICMP, tipo de servicio (ToS), ya sabeis que un ping dependiendo del codigo y el tipo se puede saber si hay congestion en el destino o no, un ping no es un simple llego o no llego, es tráfico ICMP.

Para entender esto mejor tenemos que sabe que es un ACE una entidad de control de Acceso, los que trabajan con permisos en microsoft saben bien el significado de una ACE, lo tienen en las propiedades avanzadas de seguridad de NTFS.
Una ACE es por ejemplo una lista de acceso una ACL, por lo tanto es una comparación exacta, un ejemplo sería una lista de acceso con un comparador de EQ que significa igual, es decir una ACL como las que haceis en router CISCO con IOS.
access-list milista permit tcp any host 192.168.0.1 eq 80 Permitimos el trafico tcp de cualquiera al host 192.168.0.1 por el puerto que sea igual al 80 es decir http, esto solo tiene una posibilidad.
Pero se pueden usar comparativos o operaciones lógicas mejor dicho, de otro tipo como range o neq o lt (menor que) o gt (mayor que) o LE (meno o igual) etc.
En este caso el comparativo no va ser una única posibilidad y por lo tanto hay varias posibilidades y no se pueden usar ACE hay que usar LOU (logical operation Unit) y estan se pueden formar por varias ACE una por cada posibilidad de tal manera que la combinación de varias de el resultado esperado (conjuntos de ACE).
Como problema empiezan aparecer la necesidad de disponer de mas memoria y estamos limitados.
La razón de esta limitación son los ASIC ( http://es.wikipedia.org/wiki/Circuito_integrado_de_aplicaci%C3%B3n_espec%C3%ADfica ) es decir circuitos integrados, la manera en la que funcionan los puertos en los switch y a estos ASIC se les asignan las ACE ya que se deben cumplir por puerto y estos disponen de una capacidad determinada.
Cisco aprovecha que varias ACE distintas compartan cosas en común, como son valores igual o comparaciones iguales por lo tanto la LOU se vale de esto para reutilizar esos elementos y ocupar menos memoría. A su vez las ACE se pueden dividir en distintas ACE haciendo que todo sea más comprimido u optimizado. La TCAM y estas operaciones no se pueden tocar, son automáticas del switch.
Por lo tanto ahí tenemos las limitaciones de memoría a la hora de construir el tamaño y la cantidad de MAC a llenar en la tabla CAM o la cantidad de listas de acceso que se pueden aplicar en un switch por poner dos ejemplos claros.
Cisco a partir de la Cisco IOS 15.0 nos ayuda con esta memoría dando un poco más a las tablas MAC o a las TCAM mediante el uso de plantillas, pero eso lo dejamos para el próximo post.