Categoria: IOS

Identificando mudanças na configuração e restaurando backup

Por , 03/01/2011 07:06

Dando continuidade ao post sobre o comando archive vamos ver agora como armazenar logs com as configurações realizadas, inclusive identificando qual foi o usuário utilizado. Claro que para esta funcionalidade ter utilidade cada usuário deverá ter um username (no roteador ou base de autenticação externa).

No modo de configuração archive, escolha a opção log config, e então digite logging enable. Com isto toda alteração na configuração será logada.

Habilitando o Log Config

LAB_2811#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
LAB_2811(config)#archive
LAB_2811(config-archive)#log config
LAB_2811(config-archive-log-cfg)#logging enable
LAB_2811(config-archive-log-cfg)#end
LAB_2811#

Verificando quem fez mundaças na configuração do roteador

Brain_RT01#show archive log config all
idx   sess           user@line      Logged command
1     1          cisco@vty0     |  logging enable
2     1          cisco@vty0     |  notify syslog
3     1          cisco@vty0     |  record rc
4     2          cisco@vty0     |  hostname Brain_RT01
5     3          cisco@vty0     |  username brainwork privilege 15 secret cisco
6     3          cisco@vty0     |  !config: USER TABLE MODIFIED
7     5          cisco@vty0     |  archive
8     5          cisco@vty0     |   log config
9     5          cisco@vty0     |   no notify syslog contenttype plaintext
10     5          cisco@vty0     |  no record rc
11     6      brainwork@vty1   | enable password cisco
12     6      brainwork@vty1   | enable secret cisco
13     6      brainwork@vty1   | username 123 password cisco
14     6      brainwork@vty1   | !config: USER TABLE MODIFIED

Um detalhe importante é que após o roteador ser desligado os logs serão apagado. Enfim, não é um TACACS Server mas já ajuda.

Fazendo o rollback

Então você fez uma alteração na configuração e parecia tudo bem… porém, no dia seguinte, nada mais estava funcionando. Ainda bem que com o archive e o configure replace é possível fazer um rollback.

O configure replace está disponível nos IOS a partir da versão 12.3(7)T, e com ele é possível substituir a running-config por um arquivo de configuração (salvo com o comando archive, por exemplo).

Restaurando a configuração anterior (neste exemplo o arquivo backup_config já estava na flash)

Brain_RT01#configure replace flash:/backup_config/Brain_RT01-0
This will apply all necessary additions and deletions
to replace the current running configuration with the
contents of the specified configuration file, which is
assumed to be a complete configuration, not a partial
configuration. Enter Y if you are sure you want to proceed. ? [no]: yes
Total number of passes: 1
Rollback Done

The following commands are failed to apply to the IOS image.
********
ip dhcp pool ITS
network 192.168.20.0 255.255.255.0
option 150 ip 192.168.20.1
default-router 192.168.20.1
********

Brain_RT01#

Observe que alguns comando não puderam ser restaurados (parte em laranja). Mesmo assim, sabendo quais são os comando, você pode ir lá e configurar manualmente.

Mais detalhes sobre o comando configure replace neste link.

Até a próxima.

Fazendo backup da configuração automaticamente

Por , 29/11/2010 15:14

Quantas vezes você fez uma alteração na configuração de um roteador e depois teve que voltar a configuração inicial? Ou pior, quantas vezes você precisou restaurar uma configuração e não tinha o backup?

A partir da versão 12.3(4)T o IOS conta com o comando archive, que entre outras coisas, permite que sejam criados e armazenados arquivos de configurações do roteador. Uma vez armazenada podemos restaurar a configuração ou mesmo comparar as diversas versões salvas.

No máximo 14 arquivos de configuração são permitidos, e eles podem ser criados sempre que você salvar a configuração (wr, copy run start), através do comando archive config ou ainda podemos deixar agendado para que um arquivo seja criado a cada X minutos.

Usando o comando archive – Configuração mínima.

1°) (Opcional) Crie uma pasta onde os arquivos de backup serão armazenados. Você também pode mandar direto para a flash ou para um servidor TFTP, HTTP, FTP e RCP.

LAB_2811#mkdir backup_config
Create directory filename [backup_config]?
Created dir flash:/backup_config
LAB_2811#

2°) No modo de configuração global digite archive, e depois indique o caminho onde os arquivos serão salvos. O parametro $h faz com que o arquivo seja gerado usando o hostname do equipamento

LAB_2811#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
LAB_2811(config)#archive
LAB_2811(config-archive)#path flash:/backup_config/$h
LAB_2811(config-archive)#

Com a configuração acima, basta digitar archive config no modo de configuração privilegiado para gerar um arquivo de backup da configuração no caminho especificado.

Gerando arquivos automaticamente

1°) Após a configuração incial (do exemplo acima) podemos configurar  o roteador para gerar um arquivo todas vez que a configuração for salva e/ou a cada X minutos.

LAB_2811#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
LAB_2811(config)#archive
LAB_2811(config-archive)#write-memory
LAB_2811(config-archive)#time-period 1440
LAB_2811(config-archive)#end
LAB_2811#

Assim toda vez que alguém digitar wr ou copy run start um arquivo será armazenado na pasta que criamos. E também, a cada 1440 minutos.

Verificando os arquivos

No modo do de configuração privilegiado é possível verificar os arquivos criados e o caminho onde eles estão sendo salvos.

Com pelo menos dois arquivos, também podemos verificar as diferenças entre eles.

Verificando os arquivos criados

LAB_2811#show archive
The maximum archive configurations allowed is 14.
There are currently 3 archive configurations saved.
The next archive file will be named flash:/backup_config/LAB_2811-3
Archive #  Name
   1        flash:/backup_config/Brain_RT01-0
   2        flash:/backup_config/LAB_2811-1
   3        flash:/backup_config/LAB_2811-2 <- Most Recent
   4
   5
   6
   7
   8
   9
   10
LAB_2811#

Usando o comando show archive config differences

LAB_2811#show archive config differences flash:/backup_config/Brain_RT01-0 flash:/backup_config/LAB_2811-3
Contextual Config Diffs:
+hostname LAB_2811
archive
+rollback filter adaptive
-hostname Brain_RT01
-ip dhcp pool ITS
   -network 192.168.20.0 255.255.255.0
   -option 150 ip 192.168.20.1
   -default-router 192.168.20.1
-ephone 2
-mac-address 0012.8055.900A
-type 7960
-button 1:2
LAB_2811#

No próximo post abordaremos a opção para armazenar log de alteração da configuração através do comando archive e também o rollback.

Mais informações aqui.

Até a próxima.

Utilizando o comando transport output

Por , 28/10/2010 10:45

Como sabemos os switches e roteadores Cisco permitem a conexão Telnet para outros dispositivos, pois são clientes Telnet. Ou seja, de um switch podemos acessar outro equipamento que seja um servidor Telnet. O mesmo se aplica ao SSH.

Para usar esta funcionalidade (Telnet/SSH Client), basta entrar na line vty do equipamento de onde a conexão se originará e utilizar o comando transport output. Com ele podemos especificar o tipo de conexão que será permitida sair do equipamento(Telnet, SSH).

Por padrão os equipamentos vem com o Telnet liberado.

Exemplo: Liberando SSH originado no switch/roteador

BrainGW01#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
BrainGW01(config)#line vty 0 4
BrainGW01(config-line)#transport output  ssh
BrainGW01(config-line)#end
BrainGW01#

Também é possível bloquear as conexões Telnet e SSH originadas no equipamento. Para isso bastar usar a opção none.

Exemplo: Bloqueando conexões Telnet e SSH originadas em um switch

BrainGW01#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
BrainGW01(config)#line vty 0 4
BrainGW01(config-line)#transport output  none
BrainGW01(config-line)#end
BrainGW01#

Output none

Com o comando transport output none configurado, caso alguém tente realizar um Telnet ou SSH para outro dispositivo o equipamento gerará a seguinte mensagem:

Unable to Telnet to other devices, and the %telnet connections not permitted from this terminal

Até a próxima.

Máximo de interfaces no roteador Cisco (IDB)

Por , 11/10/2010 14:52

O IDB – Interface Descriptor Block, é uma estrutura de controle presente no IOS que contem informações sobre as interfaces do equipamento (IP, estado da interfaces, estatísticas sobre os pacotes, …). Cada interface e sub-interface, física ou lógica, possui um IDB.

As interfaces físicas consomem ao menos dois IDBs (um HWIDB – físico e um SWIDB – lógico).

No caso de interfaces canalizadas são utilizadas um HWIDB mais um SWIDB para cada canal (sub-interface). E o mesmo ocorre para interfaces do tipo túnel (GRE, UTI, MPLS TES).

Já o L2TPv3 (que substitui o UTI) não consome IDB, pois é baseado em sessão.

Assim sendo, o número máximo de interfaces (físicas, sub-interfaces, virtuais) suportadas por um equipamento depende do número de SWIDB que ele pode suportar.

Inicialmente o número máximo de interfaces suportadas era 300, mas devido a tecnologias como o frame-relay, PPP e o VPDN, este valor teve que ser revisto. E para isso o IOS foi otimizado.

Atualmente o número de IDB que um roteador pode suportar depende do modelo do equipamento (hardware) e também do IOS.

Tabela IDB para referência

* No caso dos ISRg2, não encontrei informação sobre o IOS, mas acredito que estes números
são
baseados na ver 15.0

Como mencionado acima, esses número variam de acordo com a versão do IOS. Por exemplo, verifiquei que com a versão 12.4-24.T3 o 2821 chega a 1400 IDB.

A maneira mais rápida de saber quantas interfaces seu roteador vai suportar é utilizando o comando show idb.

Cisco 1721 - 300 interfaces

O 1721, com IOS 123-26, suporta até 300 interfaces

show idb

3825, com IOS 124-13, utilizado como concentrador VPDN, com 967 interfaces em uso

Um detalhe muito importante: Apesar do equipamento suportar este grande número de interfaces, para que ele realmente atinja esse valor é necessário ter recursos disponíveis (memória e CPU).

Veja o documento original aqui.

Criando atalhos (alias) no Cisco IOS

Quem vive nas linhas de comandos do Cisco IOS pode agilizar o trabalho criando atalhos (alias) para os comandos mais utilizados. Já falei disso aqui no blog, mas não custa relembrar…

Aliás, usamos alias sem perceber, pois o IOS já conta com atalhos padrões, como os abaixo:

  • help: h
  • logout: lo
  • ping: p
  • show: s
  • undebug: u ou un
  • where: w

Um alias pode ser criado para qualquer comandos do IOS, não podendo apenas mudar de modo de configuração, ser configurado para usar senha e executar itens interativos.

Para criar um atalho, entre no modo de configuração global e use a string alias. Especifique o modo onde o comando será executado, coloque o atalho e o comando original.

Exemplo: Criando um atalho (shintb) para o comando Show Ip interface brief

BrainRT01#conf t
BrainRT01(config)#alias exec shintb Show Ip interface brief
BrainRT01(config)#end
BrainRT01#shintb
Interface                         IP-Address      OK?   Method   Status             Protocol
GigabitEthernet0/0         unassigned      YES NVRAM     up                    up
GigabitEthernet0/0.20     10.10.20.1     YES NVRAM     up                    up
Service-Engine0/1           10.10.20.1     YES TFTP         up                    up
GigabitEthernet0/1         unassigned      YES NVRAM   administratively down down
Serial0/1/0                189.156.31.30     YES NVRAM     up                    up
Dialer0                           unassigned      YES NVRAM     up                    up
Loopback0                      10.10.11.1      YES NVRAM     up                    up
Loopback1                      10.10.16.1      YES NVRAM     up                    up
Loopback100          200.205.150.20      YES NVRAM     up                    up
BrainRT01#

Com a criação do alias o “comando” shintb pode ser utilizado, sem impedir que o comando na forma convencional seja executado.

Outros exemplos de aliases:

son : Show ip ospf neighbor
     BraintRT01(config)#alias exec son show ip ospf neigh
c : Config Terminal
     BraintRT01(config)#alias exec c config terminal
w : Write mem
     BraintRT01(config)#alias exec w write mem
sri : Show Running-Config | Include
     BraintRT01(config)# alias exec sri show running-config | include
srint : Show Running-Config Interface
     BraintRT01(config)# alias exec srint show running-config interface

Para ver os aliases já criados no equipamento utilize o comando show aliases.

Mais informações no site da Cisco.

Até a próxima.

Tema Brainwork 0.2(beta)