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:
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
Otro ejemplo sería el caso que queremos mostrar solo los interfaces loopback en una salida del comando brief.
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 \..*\.
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.
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)
- 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
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:
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.