Hoy, da en que Cronos Dios griego del tiempo me ha honrado con el privilegio de uno de los bienes ms preciados, no puedo dejar pasar tal oportunidad para hablar sobre la tan aclamada electrnica de Cisco. En esta ocasin vamos a centrarnos en algunas de las posibilidades que en cuanto a configuracin nos aporta su serie Catalyst. Aquellos que tenemos la fortuna de disfrutar durante largas horas de esos seres inanimados llamados mquinas, ya sea de forma virtual, espiritual e incluso por momentos afectiva, tarde o temprano nos veremos en la necesidad de acercar posturas con tan gigante americano. Fabricante bien conocido por todos, quien debe su nombre a la ciudad de SanFranCisco, y peso pesado en el sector de las telecomunicaciones. Pero en este mundillo ni el ms fuerte puede permitirse el lujo del arte de la relajacin. Rostros conocidos como 3Com, D-link. Netgearlos siempre presentes HP, DELL y los quizs menos conocidos por algunos pero importantes como Extreme Networks, F5, Juniper., Checkpoint, Fortinet, Palo alto, Juniper, Riverbed, Asterix amenazan la hegemona del seor americano en todas sus gamas de productos. Con Cisco no podemos decir que se cumpla aquello de bueno, bonito y barato. Nos quedamos simplemente con lo de bueno pero caro. Aun as, debemos seguir considerando a Cisco como uno de los grandes de un sector, del que abarca gran parte de cuota de mercado, y con el que tarde o temprano nos veremos en la necesidad de rendir cuentas ante alguno de sus dispositivos. Importante es entonces mantener una buena y bonita relacin con el seor Cisco. Dicho esto, vamos a empezar a jugar con nuestros queridos Catalysts (3750, 3560, 2960) Conectamos nuestro fabuloso cable azul de consola que siempre acompaa al dispositivo, y despus de un proceso de comprobacin del Hardware (bootstrap), la posterior carga de la imagen IOS de memoria, y finalmente carga desde la memoria NVRam la configuracin. Cuidado que ya hemos nombrado al tal todopoderoso a la vez que temido IOS de cisco, que a travs
de su interface de cliente (CLI), nos va a permitir en funcin del privilegio que dispongamos (1-15) introducir las palabras mgicas que harn que el Catalyst vaya tomando vida. Si nos hemos conectado desde la consola puede que nos pida una contrasea (ya lo iremos viendo) o directamente se nos presente ante nosotros al igual que una revelacin.
switch>
Vamos ahora a comprobar en que nivel de privilegios nos estamos moviendo ejecutando los primeros comandos.
switch > sh privilege Current privilege level is 1
Con este nivel de usuario muy poquitas cosas aparte de algunas consultas vamos a poder realizar. Para empezar a jugar de verdad tenemos que entrar en modo privilegiado.
switch > enable (=ena)
En este punto siempre nos va a pedir una contrasea que por defecto es cisco, y os sorprenderas de la cantidad de dispositivos que harn caso a esa mgica palabra. Las password por defecto son el brete Sesamo de la informtica. Para que molestarse en cambiarla. Hay dos reglas por excelencia en este mundo. La primera es ya lo modificar o har mas tarde, y la segunda es si funciona para que vamos a tocar.
Switch # (la presencia de esta almohadilla es buena seal)
Esto si que ya tiene otra pinta. Ahora vamos a ver como se nos presenta el Switch cuando entramos en los diferentes modos. Si entramos en modo configuracin :
Switch # configure terminal (=conf t) switch (config) #
O
end
Y si ya tecleamos logout o nuevamente exit salimos completamente del Switch. Si en modo privilegiado ejecutamos la orden para reiniciar el router:
switch # reload
Y durante los primeros 60s de inicio del Switch pulsamos la tecla break, entraremos en lo que se conoce como modo monitor, modo que nos va a servir en el caso de tener problemas a la hora de cargar la IOS.
rommon # >
Vemos que podemos introducir los comandos de forma abreviada (configure terminal o conf t) adems de jugar con el tabulador introduciendo nicamente el inicio del comando y el se encargara de completarlo.
switch# conf<Tab> switch# configure
Si queremos conocer los comandos o las opciones de alguno en concreto jugaremos con el smbolo ?.
switch #? Exec commands: <1-99> Session number to resume access-enable Create a temporary Access-List entry access-template Create a temporary Access-List entry archive manage archive files cd Change current directory ...................
Help may be requested at any point in a command by entering a question mark '?'. If nothing matches, the help list will be empty and you must backup until entering a '?' shows the available options. Two styles of help are provided: 1. Full help is available when you are ready to enter a command argument (e.g. 'show ?') and describes each possible argument. 2. Partial help is provided when an abbreviated argument is entered and you want to know what arguments match the input (e.g. 'show pr?'.)
Lo que ya hemos comentado. Podemos utilizar ?, para conocer mas sobre los comandos y sobre sus argumentos. Veamos un ejemplillo.
switch # configure ? Memory Configure from NV memory network Configure from a TFTP network host
terminal
Y jugar con los cursores para que nos reescriba los ltimos comandos tecleados. Ahora vamos a guardar un pequeo histrico, muy til en caso de ser necesario comprobar lo que ha estado pasando.
switch (config)#logging buffered 64000 switch (config)#logging history size 250
Cuando queramos eliminar una configuracin se utiliza la palabra no. Si en este caso por ejemplo no queremos utilizar la configuracin a nivel de histrico realizada.
switch # terminal no history
Muy importante ese no ya que se trata de lo que vamos a anteponer siempre que queramos borrar parte de la configuracin. El juego de teclas Ctrl-A, nos permitir movernos al inicio de lo que hemos tecleado y pulsando Ctrl-E nos desplazaremos al final de la lnea. Otro comando muy importante es el comando show (sh) para mostrar elementos de la configuracin, y prometo lo vamos a utilizar hasta la saciedad. Bueno vamos a empezar a hacer algunas cosillas. Nos ponemos en modo configuracin y vamos a empezar cambiando el nombre que nos presenta el dispositivo.
switch (config) # hostname Mi_Switch
Y ahora vamos a ponerle algunas contraseas. Las de conexin por telnet por ejemplo:
Mi_Switch (config) # line vty 0 4 Mi_Switch (config) # password nueva_pass
Ahora modificamos las que nos solicita cuando nos conectemos por consola.
Mi_Switch (config) #line console 0 Mi_Switch (config) #login Mi_Switch (config) #password nueva_pass
Y por ltimo la mas importante. La de entrada en modo privilegiado, y esta la generamos de forma cifrada.
Mi_Switch (config) #enable secret new_password
Posteriormente y en este mismo documento vamos a ver como activar ssh. Ahora salimos del modo configuracin y vamos a ir viendo algunas interioridades del dispositivo al que estamos conectados.
Mi_Switch # show ver
Cisco IOS Software, C3750 Software (C3750-IPBASE-M), Version 1X.X(XX)SE5, RELEASE SOFTWARE (fc1) Copyright (c) 1986-2007 by Cisco Systems, Inc. Compiled Thu 19-Jul-07 19:15 by nachen Image text-base: 0x00003000, data-base: 0x01080000 ROM: Bootstrap program is C3750 boot loader BOOTLDR: C3750 Boot Loader (C3750-HBOOT-M) Version 1X.x(xxr), RELEASE SOFTWARE (fc1) name-Sp uptime is 0 weeks, 0 days, 1 hours, 5 minutes System returned to ROM by power-on System image file is ..........
Como veis nos da un montn de informacin sobre la IOS cargada, el tiempo que lleva levantado.. Lanzamos nuestro primer diagnstico :
Mi_Switch # sh diagnostic post
Stored system POST messages: Switch 1 --------POST: CPU MIC register Tests : Begin POST: CPU MIC register Tests : End, Status Passed POST: PortASIC Memory Tests : Begin POST: PortASIC Memory Tests : End, Status Passed POST: CPU MIC interface Loopback Tests : Begin POST: CPU MIC interface Loopback Tests : End, Status Passed POST: PortASIC RingLoopback Tests : Begin POST: PortASIC RingLoopback Tests : End, Status Passed POST: PortASIC CAM Subsystem Tests : Begin POST: PortASIC CAM Subsystem Tests : End, Status Passed POST: PortASIC Port Loopback Tests : Begin POST: PortASIC Port Loopback Tests : End, Status Passed
Switch 1: SerialNo : YUULLDX0 Overall diagnostic result: UNTESTED Test results: (. = Pass, F = Fail, U = Untested) 1) TestPortAsicStackPortLoopback ---> U 2) TestPortAsicLoopback ------------> U 3) TestPortAsicCam -----------------> U 4) TestPortAsicRingLoopback --------> U 5) TestMicRingLoopback -------------> U 6) TestPortAsicMem -----------------> U
<BU> - Bootup Diagnostics, <HM> - Health Monitoring Diagnostics, <OD> - OnDemand Diagnostics, <SCH> - Scheduled Diagnostics ====== ================================= =============================== ====== Card Description Current Running Test Run by ------ --------------------------------- ------------------------------- -----1 N/A N/A 2 N/A N/A
CPU utilization for five seconds: 6%/0%; one minute: 7%; five minutes: 7% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 1 34 574 59 0.00% 0.00% 0.00% 0 Chunk Manager 2 1891 2281851 0 0.00% 0.00% 0.00% 0 Load Meter 3 0 5 0 0.00% 0.00% 0.00% 0 CEF RP IPC Backg 4 12095866 1352065 8946 0.00% 0.10% 0.06% 0 Check heaps 5 5985 2376 2518 0.00% 0.00% 0.00% 0 Pool Manager ...................
7776666677777666668888888888777776666666666666667777788888 100 90 80 70 60 50 40 30 20 10 ********************************************************** 0....5....1....1....2....2....3....3....4....4....5....5.... 0 5 0 5 0 5 0 5 0 5 CPU% per second (last 60 seconds) 1 44 43 32 4 8998919982688898988878872888888889987899599888888889986888 100 90 80 70 60 50 * * 40 ** ** * * 30 ** ** ** * 20 #* #* #* # 10 ########################################################## 0....5....1....1....2....2....3....3....4....4....5....5.... 0 5 0 5 0 5 0 5 0 5 CPU% per minute (last 60 minutes) * = maximum CPU% # = average CPU%
4444444444544444444444444446311141111114111141111113111131111114111141 6842642755774623535755361420911120112123011042120214110171111116101101 100 90 80 70 60 * * 50 ** * ***** * * **** * * * 40 ***************************** * * * * * * 30 ***************************** * * * * * * * 20 ***************************** * * * * * * * 10 ###################################################################### 0....5....1....1....2....2....3....3....4....4....5....5....6....6....7. 0 5 0 5 0 5 0 5 0 5 0 5 0 CPU% per hour (last 72 hours) * = maximum CPU% # = average CPU%
Ahora vamos a ver que podemos llegar a conocer sobre el estado de la memora :
Mi_Switch # show memory Head Total(b) Used(b) Free(b) Lowest(b) Largest(b) Processor 1D0AA50 91547056 29022824 62524232 60725268 61665840 I/O 7400000 12574720 8449564 4125156 3885316 3989576
.....
Mi_Switch #show processes memory Processor Pool Total: 91547056 Used: 29021980 Free: 62525076 I/O Pool Total: 12574720 Used: 8449404 Free: 4125316
PID TTY Allocated Freed 0 0 46510528 13495924 0 0 13876 2062240 0 0 121256380 120012788 1 0 835100 818240 2 0 180 180 ...........
Getbufs 0 0 11687216 0 0
Retbufs Process 0 *Init* 0 *Sched* 3583592 *Dead* 0 Chunk Manager 0 Load Meter
Una cosa de la que vamos a tirar muchsimo es comprobar y ver la configuracin que esta corriendo en la maquina (RAM).
Mi_Switch # sh running
Current configuration : 6682 bytes ! version 1X.X no service pad service timestamps debug datetime localtime service timestamps log datetime localtime ! hostname Mi_Switch ! ...........................
Esto es muy importante ya que podemos ver la configuracin actual que esta corriendo en el dispositivo. Si realizamos algn tipo de modificacin en la mquina es aqui donde van a quedar reflejados los cambios. Pero estos se guardan en RAM y son voltiles. Es decir si no los guardamos y apagamos el switch se perdern y a tirarnos de los pelos!. Por ello es necesario guardarlos en lo que se conoce como NVRAM.
O simplemente
Mi_Switch # wr
Tambien podemos realizar el paso inverso que es el de volver a cargar lo que tenemos guardado en NVRAM sobre la RAM en caso de que las modificaciones no nos terminen de cuadrar. Lo mismo que podemos ver lo que se esta ejecutando, podemos comprobar lo que esta guardado en la NVRam y se va a ejecutar cuando reiniciemos nuestro Catalyst, para poder comparar los cambios por ejemplo.
Mi_Switch # sh startup-config Current configuration : 6682 bytes ! version 1X.X no service pad service timestamps debug datetime localtime service timestamps log datetime localtime ! hostname Mi_Switch !
El comando show tambin nos permite filtrar la informacin que nos va a mostrar, ejecutndolo de la siguiente forma :
Mi_Switch # show running-config | include Lo_que_buscamos Mi_Switch # show ip interfaces brief | exclude Lo_que excluimos
Incluso llegar a mostrar la configuracin a partir de la primera lnea con que se tropiece:
Mi_Switch # show running-config | begin interface
Es cierto que podemos reiniciar el switch de forma remota, incluso aplicndole un intervalo para el reinicio. Para que nos puede servir esto?. Por ejemplo si nos hemos conectado de forma remota y no disponemos de una mas remotas en caso de cometer un error de configuracin que nos deje sin acceso al Switch. Si lo hemos configurado para que se reinicie en X minutillos al menos estaremos cubiertos. Pero cuidadin a ver si no hemos guardado los cambios y se nos reinicia.
Mi_Switch # LINE at cancel in slot standby-cpu <cr> reload ? Reason for reload Reload at a specific time/date Cancel pending reload Reload after a time interval Slot number card Standby RP
Idle
A nivel informativo, podemos poner unos banner de aviso que siempre nos pueden venir bien.
Mi_Switch # banner login Solo se permite acceder a este equipo a personal autorizado
Si tenemos una infraestructura montada con diferentes dispositivos Cisco, podemos hacer uso del protocolo CDP que nos va a permitir conocer como se relacionan las maquinitas entre si.. Comprobamos que lo tenemos activado:
Mi_Switch # sh cdp Global CDP information: Sending CDP packets every 60 seconds Sending a holdtime value of 180 seconds Sending CDPv2 advertisements is enabled
Holdtme S I S I
Capability
Platform
Port ID
Version : Cisco IOS Software, CE500 Software (CE500-LANBASE-M), Version 1X.X(25)SEG4, RELEASE SOFTWARE (fc1) Copyright (c) 1986-2007 by Cisco Systems, Inc. Compiled Mon 13-Aug-07 17:34 by yenanh .............................
Ahora vamos a ver el estado de las interfaces, esas bocas donde conectamos los cablecitos de red, con unas lucecillas que nos van informando de su estado.
Mi_Switch #sh ip interface brief
Interface IP-Address Vlan1 unassigned Vlan20 10.100.5.254 Vlan30 unassigned GigabitEthernet1/0/1 unassigned GigabitEthernet1/0/2 unassigned GigabitEthernet1/0/3 unassigned ........ GigabitEthernet1/0/17 unassigned .........
OK? Method Status Protocol YES NVRAM administratively down down YES NVRAM up up YES manual up up YES unset up up YES unset up up YES unset up up YES unset up up
InBcastPkts
Align-Err
0 0 0 0
FCS-Err
0 0 0 0
Xmit-Err
0 0 0 0
Rcv-Err UnderSize 0 0 0 0 0 0 0 0
InOctets 284708285
InUcastPkts 585828
InMcastPkts 1962163
InBcastPkts 216197
Port Gi1/0/17
Align-Err
FCS-Err
Xmit-Err
Muchas veces va a ser muy interesante conocer la Mac conectada a cada una de las bocas
Mi_Switch #sh mac-address-table
Mac Address Table ------------------------------------------Vlan ---1 1 1 1 1 1 Mac Address ----------001e.14b9.c201 001e.14b9.c881 001e.14b9.ca02 001e.14b9.e282 001e.4974.692f 001e.4974.6930 Type -------DYNAMIC DYNAMIC DYNAMIC DYNAMIC DYNAMIC DYNAMIC Ports ----Gi1/0/3 Gi1/0/2 Gi2/0/4 Gi2/0/2 Gi2/0/29 Gi1/0/29
Igualmente podemos restringirlo la informacin a una nica interface o Vlan (ya las veremos mas tarde) :
Mi_switch# sh mac-address-table interface gigabitEthernet 1/0/17 Mi_switch# show mac address-table dynamic vlan 30 Mac Address Table -------------------------------------------
Vlan Mac Address -------------30 0007.e92f.1d63 30 0009.0f09.0c06 30 000c.295d.a9f2 30 000c.7617.aec9 30 0012.793a.25cb 30 0013.211d.4079 30 0019.bb38.bed6 30 001a.4bdc.32fa Mac Address Table
Ahora vamos a ir entrando ms en detalle en alguna de las interfaces para ver informacin como si esta levantada, MTU, velocidad a la que negocia, trfico que se mueve, errores Si queremos ver que nos dice el fichero de configuracin sobre la interface sin tener que ir recorrindolo de forma completa.
Mi_switch#sh running-config interface gigabitEthernet 1/0/17
Building configuration... Current configuration : 203 bytes ! interface GigabitEthernet1/0/17 description Conexion-VLAN10-DMZ switchport trunk encapsulation dot1q switchport trunk native vlan 38 switchport trunk allowed vlan 10,38 switchport mode trunk end
Vlan trunk
10/100/1000BaseTX
Mi_Switch #sh interfaces gi 1/0/17 capabilities
GigabitEthernet1/0/17 Model: Type: Speed: Duplex: Trunk encap. type: Trunk mode: Channel: Broadcast suppression: Flowcontrol: Fast Start: QoS scheduling: CoS rewrite: ToS rewrite: UDLD: Inline power: SPAN: PortSecure: Dot1x:
WS-C3750G-48TS 10/100/1000BaseTX 10,100,1000,auto half,full,auto 802.1Q,ISL on,off,desirable,nonegotiate yes percentage(0-100) rx-(off,on,desired),tx-(none) yes rx-(not configurable on per port basis),tx-(4q2t) yes yes yes no source/destination yes yes
Mi_Switch #sh interfaces gigabitEthernet 1/0/17 switchport Name: Gi1/0/17 Switchport: Enabled Administrative Mode: trunk Operational Mode: trunk Administrative Trunking Encapsulation: dot1q Operational Trunking Encapsulation: dot1q Negotiation of Trunking: On Access Mode VLAN: 1 (default) Trunking Native Mode VLAN: 35 (Server) Administrative Native VLAN tagging: enabled Voice VLAN: none Administrative private-vlan host-association: none Administrative private-vlan mapping: none Administrative private-vlan trunk native VLAN: none Administrative private-vlan trunk Native VLAN tagging: enabled Administrative private-vlan trunk encapsulation: dot1q Administrative private-vlan trunk normal VLANs: none Administrative private-vlan trunk private VLANs: none Operational private-vlan: none Trunking VLANs Enabled: 10,35 Pruning VLANs Enabled: 2-1001 Capture Mode Disabled Capture VLANs Allowed: ALL Mi_Switch #sh interfaces gigabitEthernet 1/0/17
GigabitEthernet1/0/17 is up, line protocol is up (connected) Hardware is Gigabit Ethernet, address is 001d.15ad.b291 (bia 001d.15ad.b291) Description: Conexion-VLAN10 MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) Full-duplex, 100Mb/s, media type is 10/100/1000BaseTX input flow-control is off, output flow-control is unsupported ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:00, output 00:00:03, output hang never
Last clearing of "show interface" counters 3w0d Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/40 (size/max) 5 minute input rate 1000 bits/sec, 1 packets/sec 5 minute output rate 1000 bits/sec, 1 packets/sec 2758473 packets input, 284092943 bytes, 0 no buffer Received 2174449 broadcasts (0 multicasts) 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored 0 watchdog, 1958590 multicast, 0 pause input 0 input packets with dribble condition detected 1493558 packets output, 184046439 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 babbles, 0 late collision, 0 deferred 0 lost carrier, 0 no carrier, 0 PAUSE output 0 output buffer failures, 0 output buffers swapped out
Mi_Switch #sh controllers ethernet-controller gigabitEthernet 1/0/17
Transmit GigabitEthernet1/0/17 184901883 Bytes 587326 Unicast frames 98841 Multicast frames 811732 Broadcast frames 0 Too old frames 0 Deferred frames 0 MTU exceeded frames 0 1 collision frames 0 2 collision frames 0 3 collision frames 0 4 collision frames 0 5 collision frames 0 6 collision frames 0 7 collision frames 0 8 collision frames 0 9 collision frames 0 10 collision frames 0 11 collision frames 0 12 collision frames 0 13 collision frames 0 14 collision frames 0 15 collision frames 0 Excessive collisions 0 Late collisions 0 VLAN discard frames 0 Excess defer frames 744191 64 byte frames 433315 127 byte frames 106126 255 byte frames 213518 511 byte frames 570 1023 byte frames 179 1518 byte frames 0 Too large frames 0 Good (1 coll) frames 0 Good (>1 coll) frames
Receive 284244290 Bytes 584175 Unicast frames 1959251 Multicast frames 215803 Broadcast frames 110978897 Unicast bytes 146977335 Multicast bytes 20946961 Broadcast bytes 0 Alignment errors 1 FCS errors 0 Oversize frames 0 Undersize frames 0 Collision fragments 420565 1968394 145235 224548 248 240 0 0 0 0 0 0 Minimum size frames 65 to 127 byte frames 128 to 255 byte frames 256 to 511 byte frames 512 to 1023 byte frames 1024 to 1518 byte frames Overrun frames Pause frames Symbol error frames Invalid frames, too large Valid frames, too large Invalid frames, too small 0 Valid frames, too small 0 Too old frames 0 Valid oversize frames 0 System FCS error frames 0 RxPortFifoFull drop frame
Comprobamos si tenemos activado el protocolo Spanning Tree, muy importante e interesante para evitar bucles dentro de nuestra de red, controlando la degradacin o incluso en el peor de los casos la cada completa.
Mi_Switch #sh spanning-tree summary
Switch is in rapid-pvst mode Root bridge for: VLAN0001, VLAN0020 Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled EtherChannel misconfig guard is enabled UplinkFast is disabled Stack port is StackPort1 BackboneFast is disabled Configured Pathcost method used is short Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ---------VLAN0001 0 0 0 12 12 VLAN0020 0 0 0 21 21 ...........................
Aqu debemos detenernos un momentito para conocer un poco sobre lo que son las Vlan. Se trata de un concepto que nos va a permitir separadas las redes de forma lgica dentro de un mismo Switch fsico. Nos acordamos de los dominios de difusin (broadcast) que estuvimos comentando?, pues nos va permitir separarlos con la ventaja que no solo aporta en el trafico que no se genera, sino en que adems separamos completamente las redes con las ventajas de control que eso implica. Cuando definimos interfaces dentro de una Vlan solo van a tener visibilidad entre ellas. Pero aqu aparece el concepto de modo trunk, en el que una interface configurada en este modo va a poder transportar mltiples VLAN. En un puerto definido de este modo, vamos a ser nosotros quienes vamos a poder definir si tiene visibilidad sobre todas las Vlans que tengamos definidas en el Switch, o solo sobre aquellas que nos interese, adems de poder indicar con cual est trabajando de forma nativa. Si tenemos varios Switches conectados entre si, podemos hacer uso del protocolo VTP (VLAN Trunking Protocol) que nos va a permitir gestionar de forma eficaz las Vlans. Por comentarlo de forma resumida esta parte del VTP, decir que va a poder trabajar en 3 modos diferentes: server, client y transparent. Vamos a tener que configurarlo sobre un mismo dominio, y siempre tendremos al menos un server que es quien maneja el cotarro. Si realizamos modificaciones sobre las Vlans, estas se distribuyen al resto de los switches que se encuentren dentro del mismo dominio. Luego tendremos switches con VTP en modo cliente que recogern de forma automtica todos los cambios, y sobre los cuales no se van a poder realizar modificaciones. Y por ltimo los de modo transparent, en el que no se pueden crear o modificar vlans que afecten al resto de la electrnica pero que si que se prodrn generar Vlans a nivel local. VTP puede operar sin contrasea con lo que es sencillo hacer la pueta por lo que es muy recomendable asignarle una. Vamos a ver ahora si lo tenemos activado
Mi_switch# sh vtp status VTP Version : 2 Configuration Revision : 35 Maximum VLANs supported locally : 1005 Number of existing VLANs : 23 VTP Operating Mode : Server VTP Domain Name : Nuestro_Dominio VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled VTP Traps Generation : Disabled MD5 digest : 0x87 0xD0 0xAF 0x7A 0xC8 0xBA 0x5C 0x69 Configuration last modified by 10.100.X.2 at 5-12-11 23:47:10 Local updater ID is 10.100.X.253 on interface Vl10 (lowest numbered VLAN interface found)
Vamos ahora a ver las vlan que tenemos definidas y los puertos definidos sobre cada una de ellas :
Mi_switch# sh vlan
VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------1 default active Gi1/0/49, Gi1/0/50 10 Gestion active Gi1/0/14, Gi1/0/21, Gi1/0/41
VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------10 Gestion active Gi1/0/2, Gi1/0/3, Gi1/0/4 VLAN Type SAID MTU Parent RingNo BridgeNo Stp BrdgMode Trans1 Trans2 ---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ -----10 enet 100010 1500 0 0 Remote SPAN VLAN ---------------Disabled Primary Secondary Type Ports ------- --------- ----------------- ------------------------------------------
Mode on on on
Native vlan 1 1 1
................. Port Vlans allowed on trunk Gi1/0/2 1-4094 Gi1/0/3 1-4094 ................... Port Vlans allowed and active in management domain Gi1/0/2 1,10,30-33,37-42 Gi1/0/3 1,10,100-101,104 ...................
Vemos que para el trunking estamos utilizando el protocolo IEEE 802.1Q conocido tambien como dot1Q. Vamos a ver la configuracin trunk definida en una de las interfaces
Mi_Switch# sh interfaces gigabitEthernet 1/0/17 trunk
Mode on
Encapsulation 802.1q
Status trunking
Native vlan 38
Vlans allowed on trunk 10,38 Vlans allowed and active in management domain 10,38 Vlans in spanning tree forwarding state and not pruned 10,38
Ahora que ya sabemos alguna cosita ms sobre las Vlan, vamos a juntarlo todo y jugar un poquito con las interfaces y Vlans. Vamos a generar una vlan de partida y luego le vamos a asignar una interface o aun rango de ellas. Lo podemos hacer del modo antiguo que por el mensaje que nos muestra ya vemos que no es muy recomendable.
Mi_Switch#vlan database % Warning: It is recommended to configure VLAN from config mode, as VLAN database mode is being deprecated. Please consult user documentation for configuring VTP/VLAN in config mode. Mi_Switch(vlan)#vlan 2 name gestion Mi_Switch(vlan)#exit APPLY completed. Exiting....
Podemos utilizar esa vlan como la de gestin y asignarle una direccin para que nos podamos conectar con una session remota. Configuramos Ip en una vlan :
Mi_Switch#configure terminal Mi_Switch(config)#interface Vlan10 Mi_Switch(config)#ip address 10.100.5.250 255.255.255.0 Mi_Switch(config)#no ip route-cache Mi_Switch(config)#exit
Mi_Switch#
Protocol up
O de igual modo :
Mi_Switch#show running-config interface vlan 10
Building configuration... Current configuration : 89 bytes ! interface Vlan10 description VLAN Gestion ip address 10.100.5.250 255.255.255.0 end
VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------10 Gestion active
Mi_Switch#sh protocols Global values: Internet Protocol routing is enabled Vlan10 is up, line protocol is up
Como hemos comentado, vamos ahora a meter una interface o un rango de interfaces dentro de esa vlan.
Mi_Switch#configure t
O un rango de ellas:
Mi_Switch#interface range gigabitEthernet 1/0/1-5
VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------10 Gestion active Gi1/0/1
Vemos que tenemos asociado una interface a esa vlan. Vamos ahora a definir una interface en modo trunk :
Mi_Switch# configure terminal Mi_Switch (config-if)#description Conexion SW_01 (Gi 0/1) Mi_Switch (config-if)#switchport trunk encapsulation dot1q Mi_Switch (config-if)#switchport mode trunk Mi_Switch (config-if)#exit Mi_Switch#
Como ya hemos comentado en caso de querer deshacer lo que acabamos de hacer, anteponemos la palabra no a la misma configuracin.
Mi_Switch# configure terminal Mi_Switch (config-if)#no description Conexion SW_01 (Gi 0/1) Mi_Switch (config-if)#no switchport trunk encapsulation dot1q Mi_Switch (config-if)#no switchport mode trunk Mi_Switch (config-if)#exit Mi_Switch#sh interfaces gigabitEthernet 1/0/1 trunk
Port Gi1/0/1
Mode on
Encapsulation 802.1q
Status trunking
Native vlan 1
Ya hemos comentado que las vlan no se van a ver entre si, pero si tenemos un switch que trabaje en capa 3 podemos jugar con esto tambin. Lo normal es que subamos el trunk a un router o firewall y jugar en ese punto, pero lo podemos hacer en el propio Switch. Generamos una regla:
Mi_Switch#configure terminal Mi_Switch#(config)#access-list 101 deny ip 10.10.1.0 0.0.0.255 172.10.1.0 0.0.0.255 Mi_Switch#(config)#access-list 101 permit ip 172.16.1.0 0.0.0.255 any
Y la aplicamos a la vlan :
Mi_Switch#configure terminal Mi_Switch (config)#interface vlan 10 Mi_Switch (config-if)#ip access-group 101 in Mi_Switch (config-if)#exit
Incluso podemos comprobar cuando se han modificado por ltima vez las vlan comprobando la fecha del siguiente fichero:
Mi_Switch#sh flash
Directory of flash:/ 3 -rwx 4 -rwx ...... 15726 Jul 12 1993 04:58:18 +02:00 config.text 1636 May 13 2010 01:47:10 +02:00 vlan.dat
Aprovechando que empezamos a saber alguna cosa ms, para ver como afecta a la configuracin de nuestro Cisco Catalyst la configuracin de un team (juntar tarjetas de red). Podramos por por ejemplo tener un servidor con 2 tarjetas de red con las que generar un team pero en un modo activo-pasivo con lo que nicamente queramos dotar de redundancia al equipo en caso de caida de una de las tarjetas. En este caso no es necesario realizar ningn tipo de configuracin en el Switch, ya que nicamente vamos a tener una tarjeta levantada enviando la MAC. Pero si adems de esa redundancia queremos sumar la capacidad, entonces podemos realizar lo que se conoce como una agregacin de puertos (Lynk Agregation) con lo que sumamos la velocidad de cada una de las tarjetas. Al juntar ambas tarjetas, se le asigna una nica Mac a ese grupo, de tal forma que si no le decimos nada al switch, a este le llega la misma MAC por 2 bocas diferentes. Vamos a ver como solucionamos esto. Primero configuramos el EtherChannel :
Mi_Switch# conf t Mi_Switch (config)#interface Port-channel1 Mi_Switch (config-if)# description Etherchannel Team Servidor1 Mi_Switch (config-if)# switchport access vlan 12 Mi_Switch (config-if)# switchport trunk encapsulation dot1q Mi_Switch (config-if)# switchport trunk native vlan 12 Mi_Switch (config-if)# switchport trunk allowed vlan 12 Mi_Switch (config-if)# switchport mode trunk Mi_Switch (config-if)# spanning-tree portfast Mi_Switch (config-if)# spanning-tree bpduguard enable Mi_Switch (config-if)#end Mi_Switch#
Flags: D - down P - in port-channel I - stand-alone s - suspended H - Hot-standby (LACP only) R - Layer3 S - Layer2 U - in use f - failed to allocate aggregator u - unsuitable for bundling w - waiting to be aggregated d - default port Number of channel-groups in use: 2 Number of aggregators: 2 Group Port-channel Protocol Ports ------+-------------+----------+----------------------------------------------1 Po2(SU) LACP Gi1/0/1(P) Gi2/0/2(P)
Ahora vamos a ver como podemos realizar un poquito de debug y monitorizacin para mantener nuestros Catalyst lo mas libre de errores posible. Si estamos conectados a travs de una sesion de telnet o ssh, y queremos que nos muestre los mensajes que por defecto salen por consola :
Mi_Switch#term mon
Para desactivarlo :
Mi_Switch#term no mon
Y podemos activarlo si nos interesa comprobar en detalle o dar una solucin a un problema :
Mi_Switch#debug ? aaa AAA Authentication, Authorization and Accounting adjacency adjacency all Enable all debugging archive debug archive commands arp IP ARP and HP Probe transactions auto Debug Automation backup Switch Backup Interface debugging ...........
A modo de monitorizacin puede ser interesante activar el protocolo snmp para poder conectarnos con un sistema de monitorizacin remota que nos va a reportar determinada informacin como el estado de las interfaces, consumos Lo vamos a activar nicamente como solo lectura.
Mi_Switch#snmp-server community password_aqui RO
Tambin con fines de monitorizacin es interesante activar el syslog para que reporte determinados eventos a un syslog centrar, y poder as consultar la informacin de una forma sencilla y centralizada.
Mi_Switch#Logging Mi_Switch#logging Mi_Switch#Logging Mi_Switch#Logging on trap warnings (o loq ue queramos) Facility Local7 IP_Syslog_server
Consultamos la configuracin:
Mi_Switch#sh logging Syslog logging: enabled (0 messages dropped, 1 messages rate-limited, 0 flushes, 0 overruns, xml disabled, filtering disabled) Console logging: level debugging, 641452 messages logged, xml disabled, filtering disabled Monitor logging: level debugging, 175 messages logged, xml disabled, filtering disabled Logging to: vty1(0) Buffer logging: level debugging, 641452 messages logged, xml disabled, filtering disabled Exception Logging: size (4096 bytes) Count and timestamp logging messages: disabled File logging: disabled Trap logging: level informational, 641462 message lines logged Logging to 10.100.1.10, 5305 message lines logged, xml disabled, filtering disabled
Gateway of last resort is 10.200.6.254 to network 0.0.0.0 172.39.0.0/24 is subnetted, 2 subnets C 172.31.100.0 is directly connected, Vlan100 C 172.31.104.0 is directly connected, Vlan104 10.0.0.0/24 is subnetted, 2 subnets C 10.200.6.0 is directly connected, Vlan10 C 10.200.4.0 is directly connected, Vlan33 S* 0.0.0.0/0 [1/0] via 10.100.5.1 Asignar una ruta por defecto:
O la tabla ARP :
Mi_Switch#sh arp Protocol Address Internet 100.30.104.219 Internet 100.30.104.223
Age (min) 11 8
0 13
002e.4562.7a7e 002e.4562.94e6
ARPA ARPA
Ya comente en su dia que en las redes switcheadas no se podia colocar alegremente un sniffer. Si tenemos acceso al Switch lo que podemos hacer es port mirroring para mandar una copia de todo lo que pasa por un determinado puerto, un rango o una vlan hacia otro puerto y quedarnos escuchando en el.
Mi_Switch (config)# monitor session 1 source interface Gi1/0/1 Mi_Switch (config)# monitor session 1 destination interface Gi1/0/24 Mi_Swtich#show monitor detail
Para comprobar errores en caso de caida del Switch y ver que ha podido pasar, tenemos tambin la opcin :
Mi_Switch# sh stacks Interrupt level stacks: Level Called Unused/Size Name 4 2394549592 8332/9000 NETWORK INTERFACE CHIP 5 0 9000/9000 SUPERVISOR EXCEPTIONS 6 2759114589 8908/9000 NS16550 VECTOR ..............................
Vamos a comentar que relacionado con la seguridad de los puertos podemos hacer uso de portsecurity, por ejemplo para controlar que equipos se pueden conectar en determinadas bocas.
Mi_Switch(config-if)#switchport port-security ? aging Port-security aging commands mac-address Secure mac address maximum Max secure addresses violation Security violation mode <cr>
Ahora solo la MAC conectada se prodra conectar a traves de ese puerto, pero podriamos indicarle nuevas MAC.
Ahora vamos a ver como podemos activar el acceso a travs de ssh que anteriormente hemos comentado. Si la IOS instalada no soporta cryto para conectarnos por ssh:
Mi_Switch#show ip ssh ^ % Invalid input detected at '^' marker.
Debemos buscar una IOS actualizada que corresponda a nuestros modelo y que la soporte para actualizar nuestro Switch. Antes de nada debemos comprobar si tenemos 2 Switches en modo stack, ya que debemos actualizar ambos Switches.
Mi_Switch #sh switch Switch/Stack Mac Address : 001e.14xx.b280 H/W Current Switch# Role Mac Address Priority Version State ---------------------------------------------------------*1 Master 001e.14xx.b280 15 0 Ready 2 Member 001e.14bb.5f80 1 0 Ready
Y realizar una copia de los ficheros que tenemos actualmente y nos interesan. Podemos utilizar los siguientes comandos para obtener esa informacin:
Mi_Switch# sh boot BOOT path-list : 35.SE5.bin Config file : Private Config file : Enable Break : Manual Boot : HELPER path-list : Auto upgrade : Auto upgrade path : flash:c3560-ipbase-mz.122-35.SE5/c3560-ipbase-mz.122flash:/config.text flash:/private-config.text no no yes
Mi_Switch#show flash Directory of flash:/ 2 3 5 463 -rwx -rwx drwx -rwx 1636 5 192 7289 Jun 18 Jul 14 Mar 1 Jul 14 1993 1993 1993 1993 04:13:23 20:16:30 01:07:18 20:16:30 +02:00 +02:00 +01:00 +02:00 vlan.dat private-config.text c3560-ipbase-mz.122-35.SE5 config.text
Como debemos copiar esa informacin es interesante comprobar las diferentes opciones para poder realizarlo. Es interesante tener instalado un servidor TFTP en nuestro equipo para realizar este proceso:
Mi_Switch#copy flash: ftp: http: null: nvram: rcp: running-config startup-config system: tftp: vb: flash:c3560-ipbase-mz.122-35.SE5 ? Copy to flash: file system Copy to ftp: file system Copy to http: file system Copy to null: file system Copy to nvram: file system Copy to rcp: file system Update (merge with) current system configuration Copy to startup configuration Copy to system: file system Copy to tftp: file system Copy to vb: file system
Si tenemos problemas de espacio para cargar la nueva IOS debemos borrar la antigua.
Mi_Switch#delete /r/f flash:c3560-ipbase-mz.122-35.SE5
Si en vez de un archivo bin, trabajamos con un tar entonces lo podemos realizar de la siguiente forma:
Mi_Switch#archive tar /xtract tftp://10.100.1.10/c3560-ixqXXX-tar.XXXXXEAXXa.tar flash:
Ahora toca decirle cual es la IOS es con la que tiene que arrancar a nuestro Catalyst.
Mi_Switch#show boot BOOT path-list : flash:c3750-ipbase-mz.122-35.XXX/c3750-ipbase-mz.122-35.XX5.bin Config file : flash:/config.text Private Config file : flash:/private-config.text Enable Break : no Manual Boot : no HELPER path-list : Auto upgrade : yes
Auto upgrade path : ------------------Switch 2 ------------------BOOT path-list : flash:c3750-ipbase-mz.122-35.XXX/c3750-ipbase-mz.12235.XXX.bin Config file : flash:/config.text Private Config file : flash:/private-config.text Enable Break : no Manual Boot : no HELPER path-list : Auto upgrade : no Auto upgrade path :
Mi_Switch#boot system switch all flash:c3750-ipbasek9-mz-12255.SE1.bin
Y por ltimo toca reiniciar, y como siempre en estos casos cruzar los dedos esperando que la suerte nos acompae.
Mi_Switch#reload
Una vez tenemos instalada la nueva IOS que soporte crypto, podemos proceder a configurar ssh :
Mi_Switch(config)#hostname nombre_host Mi_Switch(config)#ip domain-name dominio.com Mi_Switch(config)#crypto key generate rsa
The name for the keys will be: nombre_host.dominio.com Choose the size of the key modulus in the range of 360 to 2048 for your General Purpose Keys. Choosing a key modulus greater than 512 may take a few minutes. How many bits in the modulus [2048]: % Generating 2048 bit RSA keys ...[OK]
Mi_Switch(config)#ip ssh time-out 20 Mi_Switch(config)#ip ssh authentication-retries 3 Mi_Switch(config)#username root password password
Antes de cerrar la entrada nicamente a SSH, la seguimos permitiendo por telnet para comprobar que nos podemos conectarAntes de cerrar la entrada nicamente a SSH, la seguimos permitiendo por telnet para comprobar que nos podemos conectar.
Mi_Switch(config)#line vty 0 4 Mi_Switch(config-line)#transport input all Mi_Switch(config-line)#login local
Y una vez comprobada que la conexion a tarves de ssh nos funciona correctamente, forzamos a que se haga solo a travs de un clientes ssh:
Mi_Switch(config)#line vty 0 4 Mi_Switch(config-line)#transport input ssh
Mi_Switch#disconnect ssh