10 dicas “quentes” relacionadas ao Cisco IOS
Postado por: Marco Filippetti em Artigos, Dicas -
Imprima este post
Dei uma pesquisada hoje pela Net buscando temas interessantes para escrever um post para vocês. Encontrei algo bastante interessante no site O’Reilly Network, que passo aqui para vocês, traduzido!
Trata-se das 10 dicas mais quentes sobre o IOS, escritas por James Boney, autor do livro “Cisco IOS in a Nutshell”
- Os comandos têm efeito imediato.
- Acostume-se a utilizar descrições.
- O comando “RELOAD” pode salvar sua pele.
- Não se esqueça de configurar uma senha (enable secret ou mesmo enable password).
- Pare a resolução de nomes automática no prompt do router.
- Dois erros comuns em ACLs.
- Comandos SHOW úteis.
-
show ip arp
- Displays the entire ARP (Address Resolution Protocol)table, which is the MAC-to-IP resolution table.
-
show version
- This command gives a good amount of information; the IOS version you are running, the available interfaces, the system uptime, the last reload reason, and the configuration register setting.
-
show ip protocols
- Displays information about the currently running routing protocols.
-
show ip route
- The old standby, which displays the entire IP route table.
-
show ip route summary
- Gives a very useful summary of the IP route table.
-
show ip interface
- Gives a summary of each interface from the IP level.
-
show ip interface brief
- A very brief summary of each interface.
-
show ip traffic
- An extensive summary of IP traffic statistics on the router.
-
show access-list
- This useful command not only shows the all the currently configured access-lists, but it also shows you the number of hits each line has received. You can use this information to better troubleshoot your access-lists.
-
show cdp neighbors
- Assuming you have CDP enabled, this command gives you a report of all Cisco devices that the current device is connected to. CDP stands for Cisco Discovery Protocol, which can be an invaluable tool.
-
show cdp neighbors detail
- This command gives even more information about CDP neighbors.
- Acostume-se aos comandos de edição de linha do IOS.
- Uma confusão comum com Frame-Relay.
- Configure o “bandwidth” nas interfaces.
Se você já lida com roteadores Cisco há algum tempo, esta dica é inútil! Entretanto, parece que novos usuários esquecem deste detalhe com frequência!
No IOS, conforme você digita os comandos em modo de configuração, estes têm efeito assim que a tecla “ENTER” é pressionada. Veja o exemplo abaixo:
Router1#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#hostname MyRouter
MyRouter(config)#^Z
MyRouter#
Como pode ser observado, o procedimento para alterar o nome do roteador entra em ação imediatamente, assim que o ENTER é pressionado.
No processo de configuração de um router, existem comandos específicos que permitem a inserção descrições em determinados pontos da configuração. Por exemplo, o comando “description” utilizado em interfaces, o comando “remark”, utilizado em ACLs, ou mesmo um banner informativo. Todos estes comandos permanecem na configuração do router e são de grande ajuda durante o processo de resolução de problemas, ou mesmo de documentação de uma rede.
Eis um exemplo do comando aplicado à uma interface::
! Here is an interface description.
! Document as much about the interface as possible
interface Serial0
description Connection To Irvine: Wan ID [23499]
Eis um exemplo de utilização de um BANNER, ou seja, uma mensagem que é apresentada quando uma pessoa conecta-se ao dispositivo:
MyRouter(config)#banner motd #
Enter TEXT message. End with the character '#'.
Welcome to MyRouter.
Some legalese should go here about unauthorized access.
#
Aqui, um exemplo do comando “remark”, em uma ACL. Este comando aceita até 100 caracteres e pode ser utilizado em ACLs com nome (named ACLs) ou com números (numbered ACLs).
access-list 1 remark Permit our private network through the list
access-list 1 permit 10.1.1.0 0.0.0.255
access-list 1 remark Just deny everything else
access-list 1 deny any
Existe ainda a opção de utilizar o “!”, como forma de documentar uma configuração. Este método é útil apenas em configurações OFFLINE, já que comentários precedidos por “!” são perdidos se inseridos em uma configuração ativa. Eis um exemplo:
! Criação da ACL 1, para permitir apenas a rede 10.1.1.0
access-list 1 permit 10.1.1.0 0.0.0.255
access-list 1 deny any
Não importa o quão bem você planeje uma alteração, eventualmente você irá precisar alterar a configuração de um roteador remotamente. Se você cometer um erro durante o processo, pode perder a conexão remota com o roteador, terá que pegar o carro voando para ir até o local ou, se isso não for possível, terá de ligar para alguém que se encontra próximo e pedir que desligue e ligue o roteador, para retornar a configuração antiga (dependendo de quem estiver do outro lado, é mais rápido pedir isso do que explicar o que foi feito e pedir que arrume a configuração). Obviamente isso apenas funcionará se você não salvou a config “problemática” na NVRAM do router. Esperemos que não
. De qualquer forma, esta “técnica” não é muito boa, como vocês devem ter percebido…! Além do que, ao utiliza-la, você mostra para o mundo seu lado… bem… vamos dizer… inexperiente (para não dizer outra coisa). Alterações em rotas, senhas, ACLs, e outras, podem gerar este tipo de problema. Para minimizar as chances de “embaraço”, um reload programado pode ser utilizado.
Por exemplo, vamos informar ao router para realizar um reload em 3 minutos:
MyRouter#reload in 3
Reload scheduled in 3 minutes
Proceed with reload? [confirm]y
Agora, temos 3 minutos para fazer a configuração que desejamos. Vamos aplicar uma ACL na interface S0:
MyRouter#config terminal
Enter configuration commands, one per line. End with CNTL/Z.
MyRouter(config)#interface serial0
MyRouter(config-if)#ip access-group 110 in
MyRouter(config-if)#^Z
MyRouter#
Procedemos com a alteração na config e, aparentemente, ainda temos acesso ao router! Bom, podemos cancelar o processo de reload, portanto:
MyRouter#reload cancel
Ou, se a aplicação da ACL tivesse cortado meu acesso remoto, o roteador iria reinicializar e a config original (que permitia meu acesso) entraria em ação.
Se você planeja acessar um router remotamente, você precisa ter a senha enable (secret ou password) configurada, assim como uma senha para as linhas VTY (Telnet). Se você não fizer isso, o router não permitirá seu acesso, remotamente.
! Enable service password-encryption if it isn't already.
service password-encryption
! Here is our enable password, which is ok
! but not too secure.
enable password 7 141B171F01012325
! Here is our enable secret, much better.
enable secret 5 $1$99Jc$dxVXUkwMM3Edvj7f0SUrL/
Não se esqueça que a senha “enable secret” é preferida em relação a senha “enable password”. Para garantir, acostume-se a utilizar sempre a “enable secret”.
Este é um problema bastante irritante! Se você erra a digitação de um comando, o router pensa que você digitou um nome de um host e tenta resolver este nome para um endereço IP para, então, conectar-se via Telner ao destino. O irritante é que este processo leva tempo, e você tem que esperar o router perceber que não existe um host na rede com o “nome” digitado. Por exemplo:
MyRouter#shwo
Translating "shwo"...domain server (10.1.1.2)
% Unknown command or computer name, or unable to find computer address
MyRouter#
Neste exemplo, o comando “show” foi digitado errado. Existem 2 métodos para desabilitar isso no router. O primeiro, é alterar o tipo de transporte preferido nas linhas Console e VTY:
! Console port
line con 0
transport preferred none
! VTY Ports
line vty 0 5
transport preferred none
O segundo, é desabilitar a resolução de nomes no router:
MyRouter(config)#no ip domain-lookup
O primeiro problema mais comum ao se elaborar ACLs é não permitir nenhum tipo de tráfego ICMP. Apesar de muitos pensarem que ICMP é um protocolo “do mal”, e apenas usado por hackers para causar problemas em redes, o ICMP desempenha um papel muito importante.
Por exemplo, você acaba de habilitar uma ACL em um link xDSL no router de sua empresa. De repente, sempre que você tenta enviar arquivos grandes anexados em e-mails, o tempo limite da conexão se esgota e a conexão é encerrada de forma inesperada. Sem saber o que fazer, você desaplica a ACL e o problema é resolvido. Re-aplica a ACL, e o problema retorna. Você revisa a ACL inúmeras vezes e não consegue identificar o problema. Bom, o problema pode ser exatamente a não-permissão de tráfego ICMP em sua ACL!
No problema acima, mensagens ICMP específicas, relacionadas ao MTU (Maximum Transmission Unit) ou “source-quench” não estão conseguindo atravessar a ACL. Neste caso, os comandos abaixo resolveriam o problema:
! allow ICMP source-quench
access-list 110 permit icmp any any source-quench
! allow path MTU discovery
access-list 110 permit icmp any any packet-too-big
! allow time-exceeded, which is useful for traceroute
access-list 110 permit icmp any any time-exceeded
! deny all other ICMP packets
access-list 110 deny icmp any any
Um segundo erro comum é esquecer de permitir tráfego DNS.
O exemplo abaixo permite o acesso aos servidores DNS externos 172.16.1.1 e 172.30.1.1. Deve ser aplicada na direção OUT (direção dos servidores externos).
access-list 110 permit udp host 172.16.1.1 eq 53 any gt 1023
access-list 110 permit udp host 172.30.1.1 eq 53 any gt 1023
Configurar um router é apenas metade do trabalho
. Sem um punhado de bons comandos “show”, configurar um router seria muito mais complicado. Aqui estão alguns comandos “show” que podem ser de grande ajuda.
Quando você passa muito tempo em cima de um router, conhecer alguns atalhos e “hot keys” podem ajuda-lo bastante! Aqui estão alguns comandos de edição (muitos mais existem):
Control A Move o cursor para o início da linha Control E Move o cursor para o final da linha Control K Apaga tudo à direita do cursor Control P "Puxa" o último comando digitado, do histórico
O tipo de encapsulamente FR deve ser definido ANTES da criação de uma subinterface. O encapsulamento default de interfaces seriais é o HDLC.
interface serial0
encapsulation frame-relay
E então… subinterfaces!
interface serial0.1 point-to-point
description This is our first sub interface for serial1
A configuração do comando “bandwidth” em interfaces em nada influencia na velocidade de transmissão dos pacotes. Entretanto, esta informação é utilizada por alguns protocolos de roteamento (como OSFP e EIGRP) para calcular a melhor rota para uma rede remota. O valor default do comando é 1.544mps, que equivale a velocidade de um link T1.
interface serial0
description This is a 56k link
bandwidth 56
Leia também:
- Níveis de privilégio no IOS Cisco
- Acoplando um Sistema de Aceleração - Juniper WX - a um Roteador Cisco via WCCPv2
- Implementando Pequenas Redes com Cisco
- Guia rápido das profissões relacionadas à Redes
- Auto-Segurança em roteadores Cisco
- Cisco IOS IP SLA tool
- Cisco Dynamic Multipoint VPN (DMVPN)
- Comandos não-documentados do Cisco IOS
- Gerenciamento de Rede Fora de Banda (OOB - Out-Of-Band)
- Ativando SSH em Roteadores Cisco

Posts
13 de July de 2008 às 7:19 pm
Putz, bastante útil pra mim, principalmente a dica do “reload” !
Nota 10 !
Abraço
13 de July de 2008 às 9:06 pm
A dica do reload programado foi a melhor mesmo…
Abraços
13 de July de 2008 às 9:52 pm
Reload in/cancel
Ja salvou-me de situações que poderiam se tornar muito dificeis!!
Comando essencial pro dia-a-dia!!!
14 de July de 2008 às 12:20 am
Tava na hora da cisco copiar a juniper e colocar a facilidade do commit.
Pra quem nao conhece, qualquer alteração que voce faça, nao entra na current configuration, ela fica como candidata, e pode ser dado o commit somente apos voce verificar se tudo esta ok e nao ha nenhum problema com o commit check.
Abs
14 de July de 2008 às 9:42 am
Com certeza a funcionalidade do “COMMIT” seria muito bem vinda. Para não falar que copiou da Juniper descaradamente, podia ser o comando “APPLY” ahahahahahha
14 de July de 2008 às 9:52 am
Ah sim, devo dizer que o RELOAD programado já salvou mesmo a minha pele algumas vezes!!!
14 de July de 2008 às 6:00 pm
Ah… já conhecia. São dicas muito boas.:)
15 de July de 2008 às 5:57 pm
Todas dicas são muitos boas !
Como disse o SOUEUKLS, o Reload ja me salvou de umas e outras =D
Ouvi falar aqui no trabalho que a cisco implementou o commit em algumas IOS
(vou buscar mais sobre isso)
E outra “dica” vivenciada …
Caso esqueça de programar o reload quando for fazer por exemplo alguma alteração em ACL ou NAT, retire-os da interface para não perder a gerencia do CPE….. hehehe
Abraços
Nogueira
18 de July de 2008 às 5:22 pm
“Neste exemplo, o comando “show” foi digitado errado. Existem 2 métodos para desabilitar isso no router. O primeiro, é alterar o tipo de transporte preferido nas linhas Console e VTY:”
! Console port
line con 0
transport preferred none
! VTY Ports
line vty 0 5
transport preferred none
—
Até onde sei isso não procede. Estes comandos são relacionados ao modo de acesso ao roteador (telnet, ssh, etc), e não tem nada a ver com a resolução de nomes. Sendo assim, somente o segundo comando é válido (o no ip domain lookup).
18 de July de 2008 às 5:38 pm
Vinícius, o comando funciona. Acabo de testa-lo no Dynamips.
Marco.
20 de July de 2008 às 7:21 pm
As dicas são excelentes !
Gostaria de contribuir com a inclusão do parametro NAME no comando ip route. Exemplo:
(config)#ip route 192.168.10.0 201.10.10.1 name Site1toSite2
Onde Site1toSite2 nos informa de e para onde a rota estatica aponta
20 de July de 2008 às 7:23 pm
Ops ! esqueci a mascara, desculpem-me:
(config)#ip route 192.168.10.0 255.255.255.0 201.10.10.1 name Site1toSite2