3.10.2015

Cisco - Comandos básicos e resolução de problemas - Parte I -

Cada vez mais a configuração de equipamentos passa pelo recurso a ferramentas gráficas. A Cisco tem investido muito no desenvolvimento do CCP - Cisco Configuration Professional (menção honrosa ao SDM e ao Cisco Works...), que permite efectuar configurações avançadas (hardening, NAT, VPNs, QoS...) com maior facilidade e produtividade do que as tradicionais configurações pela consola. Refira-se igualmente a vantagem de cometer menos erros caso o conhecimento dos fundamentos teóricos seja superficial. Contudo, para administradores que lidam com equipamentos que não possuem a possibilidade de configuração através do CCP, para efeitos de troubleshooting e em determinadas situações mais complexas o recurso ao CLI é incontornável. Apresenta-se neste artigo alguns dos comandos fundamentais que devem ser do conhecimento geral de qualquer administrador de redes Cisco. Pretende-se igualmente que funcione como um lembrete para quem só ocasionalmente opera routers e switches Cisco ou para quem iniciou alguma certificação(CCNA).

Principais comandos - show - e interfaces de loopback

Para verificar as interfaces num router ou num switch (up, down, administratively down, velocidade, half ou full duplex, dados transmitidos, etc..

show ip int brief

show interface [interface-id]

show interfaces status

show controllers (interfaces serial)

A velocidade a que as interfaces operam é auto-negociada por defeito. Porém, existem situações (falta de conectividade entre equipamentos com especificações diferentes) onde é necessário "forçar" uma determinada velocidade, ou mais raramente mudar o modo de operação (full ou half duplex).

  R3(config)#interface fastethernet 0/1
  R3(config-if)#speed ?
  10    Force 10 Mbps operation
  100   Force 100 Mbps operation
  auto  Enable AUTO speed configuration
  R3(config-if)#speed 100
  R3(config-if)#duplex ?
  auto  Enable AUTO duplex configuration
  full  Force full duplex operation
  half  Force half-duplex operation
  R3(config-if)#duplex half
  

As interfaces loopback são interfaces lógicas, ou seja, não existem fisicamente no equipamento. A criação deste tipo de interfaces é importante em certas configurações para fins mais específicos ou para efeitos de estudo em simuladores como o GNS3. Ao contrário das interfaces físicas o estado das interfaces loopback é sempre< (up - up) a partir do momento em que são criadas. Para desactivá-las pode-se usar o comando shutdown

R1(config)#interface loopback 0
R1(config)#ip address 10.10.10.1 255.255.255.0

O comando show é essencial para efeitos de troubleshooting. Podem-se ver as opções disponíveis precedendo-o com um ponto de interrogação show ?

R3#show ?
  aaa                       Show AAA values
  access-expression         List access expression
  access-lists              List access lists
  accounting                Accounting data for active sessions
  adjacency                 Adjacent nodes
  alarm-interface           Display information about a specific Alarm
  .....
  ....

Os comandos seguintes são frequentemente utilizados. A análise e compreensão dos respectivos outputs é essencial.

show running-config (configuração actual)

show startup-config (configuração guardada)

show version (informação sobre versão do IOS e especificações técnicas)

show flash: informação sobre a flash

show ip route (rotas existente no router)

show ip protocols (protocolos de roteamento configurados)

show ip nat translations (tabela de traduções de nat)

show access-lists (access-lists configuradas)

show mac-adress-table (verifica tabela que associa endereços MAC a interfaces. )

show ip dhcp binding (verifica tabela de atribuição de endereços IPv4 em routers que tenham o serviço DHCP configurado)

Os comandos mais utilizados para verificar problemas de conectividade são os inevitáveis ping e traceroute. Utilizadores menos experientes poderão confiar cegamente no output destes comandos. Relembre-se que podem existir firewalls que bloqueiam o protocolo ICMP (protocolo em que ambos os comandos se baseiam), ou seja, o facto de determinado host não responder a um ping não implica forçosamente que esteja off-line.

Switches, VLANs e trunking

Poderá configurar a interface de um switch em mode trunk ( interface que transporta tráfego de todas as VLANs) com o protocolo 802.1Q. Em equipamentos que apenas suportem um tipo de encapsulamento, como os switches da linha 2960, não é necessário explicitá-lo (o protocolo ISL, proprietário da Cisco foi descontinuado ).

SW1(config)#interface fastethernet 0/0
SW1(config-if)#switchport trunk [encapsulation dot1Q]

O comando show interface trunk permite verificar as portas configuradas em modo de trunk. Alguns modelos permitem por defeito que as portas automaticamente se coloquem em modo de trunk se as outras portas a que se ligam estiverem também configuradas em modo de trunk ( com recurso ao protcolo DTP - Dynamic Trunking Protocol). Por questões de segurança tendo a acreditar que quase todo o tipo de auto-configuração deve ser obliterado. Como tal para configurar uma ligação trunk entre dois switches recomendaria simplesmente os seguintes comandos:

Sw1(config)#interface FastEthernet0/1
Sw1(config-if)#switchport
Sw1(config-if)#switchport trunk encapsulation dot1q
Sw1(config-if)#switchport mode trunk
Sw1(config-if)#switchport nonegotiate
Sw1(config-if)#description "Liga a SW2 em modo trunk"
  
Sw2(config)#interface FastEthernet0/1
Sw2(config-if)#switchport
Sw2(config-if)#switchport trunk encapsulation dot1q
Sw2(config-if)#switchport mode trunk
Sw2(config-if)#switchport nonegotiate
Sw2(config-if)#description "Liga a SW1 em modo trunk"

Nota: Para efectuar os exames de certificação da Cisco é necessário conhecer a fundo o protocolo DTP e o seu modo de funcionamento.

O protocolo 802.1Q introduz uma tag em todas as frames, excepto nas que pertencem à denominada VLAN nativa (native VLAN). Por defeito, a VLAN nativa é sempre a VLAN 1 em todos os equipamentos (Cisco e não Cisco) . Para reforçar a segurança é prática habitual modificar a VLAN nativa, sendo essa medida aconselhada pela Cisco. Os comandos show interfaces trunk e show interfaces[interface]switchport permitem verificar qual é a VLAN nativa. A modificação da VLAN nativa tem que ser obrigatoriamente efectuada em todos os equipamentos, com o comando switchport trunk native vlan [number].

A configuração de VLANs é simples (o nome é opcional):

Sw1(config)#vlan 2 
Sw1(config-vlan)#name depfinanceiro 
Sw1(config-vlan)#exit
Sw1(config)#vlan 3
Sw1(config)#name depmarketing
.....

Nota: Em alguns equipamentos antigos ou em placas de switching colocadas em routers poderá ser necessário o comando vlan database:

Para colocar as portas 10 a 18 do Sw1 na VLAN 3

Sw1(config)#interface range fastethernet0/10 - 18
Sw1(config-if)#switchport mode access
Sw1(config-if)#switchport access vlan 3
Sw1(config-if)#no shutdown

Para verificar as VLANs configuradas e a atribuição das portas utilizar o comando show vlan brief. Caso não se utilize o VTP (Vitual Trunking Protocol), proprietário da Cisco, é necessário configurar as VLANS em todos os switches. A configuração fica armazenada na flash num ficheiro com o nome vlan.dat. Pode eliminar esse ficheiro caso pretenda eliminar a configuração alusiva às VLANS. O ficheiro será criado de novo quando efectuar a reconfiguração:

Sw1#delete vlan.dat
Delete filename [vlan.dat]?
Delete flash:/vlan.dat? [confirm]

As VLANs são essencialmente domínios de broadcast criados na layer 2 do modelo OSI. Para existir roteamento entre VLANs é necessária a presença de um router com várias interfaces, ou um router com uma interface podendo ser configuradas sub-interfaces (interfaces lógicas contidas na mesma interface física) para as respectivas VLANs ou com recurso a SVIs - Switched Virtual Interfaces, passíveis de serem configuradas em switches de Layer 3 (equipamentos que podem funcionar como switches e como routers). Sendo 3 as possibilidades verifiquemos a primeira:

Roteamento de VLANs com recurso a Router com várias interfaces:

No switch configuramos as VLANS:

Sw1(config)#vlan 2 
Sw1(config-vlan)#name dep_financeiro
Sw1(config-vlan)#exit
Sw1(config)#vlan 3
Sw1(config)#name dep_marketing

Configuramos algumas portas em modo de acesso para cada uma das interfaces ligadas ao router

Sw1(config)#interface FastEthernet0/0
Sw1(config-if)#switchport mode access
Sw1(config-if)#description "Liga a Router fa 0/1 - VLAN de Gestao (nativa)
Sw1(config-if)#exit 
Sw1(config)#interface FastEthernet0/1 
Sw1(config-if)#switchport mode access
Sw1(config-if)#switchport access vlan 2
Sw1(config-if)#description "Liga a fa 1/0 do R1"
Sw1(config-if)#no shutdown
Sw1(config-if)#exit
Sw1(config)#interface FastEthernet0/2 
Sw1(config-if)#switchport mode access
Sw1(config-if)#switchport access vlan 3
Sw1(config-if)#description "Liga a interface 2/0 do R1"
Sw1(config-if)#no shutdown
Sw1(config-if)#exit
Sw1(config)#interface vlan1
Sw1(config-if)#ip address 192.168.100.254 255.255.255.0
Sw1(config)#ip default-gateway 192.168.1.254

No router, existem 4 interfaces físicas. Uma interface ficará ligada à Internet. Outra vai ser configurada para a VLAN de gestão, neste caso a VLAN nativa - VLAN 1. Por fim, duas interfaces serão configuradas com endereços IP que funcionarão como gateways para cada uma das VLANs configuradas no switch. Por fim configura-se NAT do tipo PAT para as redes internas.

R1(config)#interface FastEthernet0/0
R1(config-if)# description "Liga a ISP"
R1(config-if)# ip address 172.16.1.167 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface FastEthernet0/1
R1(config-if)#description "Liga a VLAN2 - VLAN Gestao(nativa)"
R1(config-if)#ip address 192.168.100.254 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface FastEthernet1/0
R1(config-if)#description "Liga a VLAN2 - VLAN dep_Finaceiro"
R1(config-if)#ip address 10.10.2.254 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface FastEthernet2/0
R1(config-if)#description "Liga a VLAN3 - VLAN dep_Marketing"
R1(config-if)#ip address 10.10.3.254 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#ip access-list standard ACL_NAT
R1(config-std-nacl)#permit 192.168.100.0 0.0.0.255
R1(config-std-nacl)#permit 10.10.2.0 0.0.0.255
R1(config-std-nacl)#permit 10.10.3.0 0.0.0.255
R1(config-if)#exit
R1(config)#ip nat inside source list ACL_NAT interface FastEthernet0/0 overload
R1(config)#interface FastEthernet0/0
R1(config-if)#ip nat outside
R1(config-if)#exit
R1(config)#interface FastEthernet0/1
R1(config-if)#ip nat inside
R1(config-if)#exit
R1(config)#interface FastEthernet1/0
R1(config-if)#ip nat inside
R1(config-if)#exit
R1(config)#interface FastEthernet2/0
R1(config-if)#ip nat inside
R1(config-if)#exit
R1(config)#ip route 0.0.0.0 0.0.0.0 172.16.1.254

Nota: Caso fosse confugurado um switch de layer 3 poderia ser necessário colocar a porta a funcionar em layer 2. Atente-se que a porta tem que funcionar como pertencendo a um switch e não a um router. O comando para o efeito é :

Sw3(config-if-range)#switchport

Para colocar a porta a funcionar como pertencendo a um router, atríbuindo-lhe um endereço IP, basta a negação do comando anterior:

Sw3(config-if-range)#no switchport

É boa prática colocar um IP de gestão na VLAN nativa. A colocação de uma gateway num switch layer 2 jutifica-se caso se pretenda proporcionar roteamento através de acesso remoto (ex:VPN) garantido acesso ao equipamento. Na configuração o IP na interface que liga à Internet é privado para efeito de testes no simulador GNS3. Numa situação real o IP seria público. Neste caso o IP foi explicitamente configurado, assim como a rota por defeito (default-route). Contudo, a configuração mais provável numa situação real seria o Router estar ligado a um cable modem obtendo por DHCP o IP (dinâmica ou estaticamente atribuído pelo ISP). Nesse caso o comando a colocar na interface seria ip address dhcp .A default-route seria dinamicamente alocada pelo IOS.

Este exemplo é o mais simplificado possível. Num cenário real o router teria outra interface ligada à Internet e a gateway teria que ser fornecida por DHCP aos hosts ou configurada manualmente. Constata-se que esta solução não é escalável, pois a cada VLAN adicionada é necessário uma nova interface física no router sendo por isso pouco provável verificar a existência deste tipo de topologia em produção.

A segunda opção, tendo um router com duas interfaces (Uma para a LAN e outra para a WAN), recorrendo a sub-interfaces num tipo de configuração baptizado pela Cisco como "Router-on-a-stick".

Router On-a-stick

Neste tipo de configuração, não existe limitação no número de sub-interfaces. No entanto, muitas sub-interfaces numa mesma interface física provocarão potencialmente gargalos e lentidão no tráfego entre as VLANs e para a Internet. Como tal, esta situação deverá ser sempre encarada como uma solução de recurso. Vejamos um exemplo de configuração onde podemos verificar que as subinterfaces necessitam de configuração Dot1Q:

Sw3(config)#vlan 2 Sw3(config-vlan)#name depfinanceiro Sw3(config-vlan)#exit Sw3(config)#vlan 3 Sw3(config-vlan)#name depmarketing Sw3(config-vlan)#exit Sw3(config)#vlan 100 Sw3(config-vlan)#name gestao Sw3(config-vlan)#exit Sw3(config)#interface range FastEthernet0/1 – 2 Sw3(config-if-range)#switchport Sw3(config-if-range)#switchport access vlan 2 Sw3(config-if-range)#switchport mode access Sw3(config-if-range)#exit Sw3(config)#interface range FastEthernet0/3 – 4 Sw3(config-if-range)#switchport Sw3(config-if-range)#switchport access vlan 3 Sw3(config-if-range)#switchport mode access Sw3(config-if-range)#exit Sw3(config)#interface FastEthernet0/24 Sw3(config-if)#switchport Sw3(config-if)#switchport trunk encapsulation dot1q Sw3(config-if)#switchport mode trunk Sw3(config-if)#switchport trunk native vlan 100 Sw3(config-if)#exit Sw3(config)#interface vlan 100 Sw3(config-if)#description ‘Vlan gestao’ Sw3(config-if)#ip address 10.10.100.1 255.255.255.0 Sw3(config-if)#no shutdown Sw3(config-if)#exit Sw3(config)#ip default-gateway 10.10.100.1 R1(config)#interface FastEthernet0/0 R1(config-if)#no ip address R1(config-if)#exit R1(config)#interface FastEthernet0/0.2 R1(config-subitf)#description ‘Subinterface para a VLAN 2’ R1(config-subif)#encapsulation dot1Q 2 R1(config-subif)#ip add 10.10.10.1 255.255.255.0 R1(config-subif)#exit R1(config)#interface FastEthernet0/0.3 R1(config-subitf)#description ‘Subinterface para a VLAN 3’ R1(config-subif)#encapsulation dot1Q 3 R1(config-subif)#ip add 10.20.20.1 255.255.255.0 R1(config-subif)#exit R1(config)#interface FastEthernet0/0.100 R1(config-subitf)#description ‘Subinterface par aa Vlan de gestao’ R1(config-subif)#encapsulation dot1Q 100 native R1(config-subif)#ip add 10.10.100.254 255.255.255.0 R1(config-subif)#exit

Por fim refira-se o método mais aconselhável para configurar roteamento entre VLANs:

Configuração de roteamento entre VLANs com recurso a SVIs - Switched Virtual Interfaces"

Os switches de layer 3 possuem uma arquitectura de hardware optimizada para o roteamto entre VLANs. O problema da escalabilidade não se coloca e não existem os problemas de performance dos cenários anteriores.

VTP-Server-1(config)#vlan 2
VTP-Server-1(config-vlan)#name depfinanceiro
VTP-Server-1(config-vlan)#exit

VTP-Server-1(config)#vlan 3
VTP-Server-1(config-vlan)#name depmarketing
VTP-Server-1(config-vlan)#exit

VTP-Server-1(config)#interface vlan 2
VTP-Server-1(config-if)#description “SVI parq a VLAN 2 - Dep. Financeiro”
VTP-Server-1(config-if)#ip address 192.168.2.254 255.255.255.0
VTP-Server-1(config-if)#no shutdown
VTP-Server-1(config-if)#exit

VTP-Server-1(config)#interface vlan 3
VTP-Server-1(config-if)#description ‘SVI para a VLAN 3 - Dep. Marketing’
VTP-Server-1(config-if)#ip address 192.168.3.254 255.255.255.0
VTP-Server-1(config-if)#no shutdown
VTP-Server-1(config-if)#exit

Num cenário real poderá impedir o roteamento entre VLANs com access-lists a aplicar nas SVIs. A VLAN x não poderá aceder à VLAN y mas ambas poderão aceder a uma VLAN de serviços. O comando show vlan interface [vlan id] poderá ser utilizado para verificar a configuração.Para além do switch de layer 3 existiria um router que faria a ligação com a Internet ou outro tipo de interface WAN. Os switches de Layer 3 existem geralmente em redes mais complexas do que as geralmente existentes em pequenas empresas.

VTP - Introdução

O VTP (Virtual Trunking Protocol) é um protocolo proprietário da Cisco que permite a gestão de VLANs num domínio. Existem 3 tipos de operacionalidade VTP num switch:

Server Permite criar, eliminar e modificar Vlans. Alterações são propagadas para todos os switches pertencentes ao mesmo domínio.
Client Recebe informação VTP mas não permite alterações de configuração.
Transparent Apenas reencaminha a informação VTP para outros switches. Não permite edição de informação VTP ou sequer assimila alterações como sucede com o modo Client. Este modo é útil quando um switch necessita de albergar VLANs locais que não pertencem ao domínio VTP.

Exemplo de configuração com 3 switches:

Sw1#(config)#vtp mode server
Sw1#(config)#vtp domain XPTO
Sw1#(config)#vtp password cisco
Sw2#(config)#vtp mode client
Sw2#(config)#vtp domain XPTO
Sw2#(config)#vtp password cisco
Sw3#(config)#vtp mode transparent
Sw3#(config)#vtp domain XPTO
Sw3#(config)#vtp password cisco

Caso existam vários equipamentos e um número apreciável de VLANS efectuar o comando seguinte em todos os equipamentos:

Sw1#(config)#vtp pruning

Tal impede que informação sobre VLANs seja redundantemente propagada para todo o domínio VTP.