terça-feira, 4 de abril de 2017

Backup Automático de Configurações do IOS via Archive

Olá Pessoal,

Em outro artigo do blog intitulado "Backup de Configurações do IOS em Servidor TFTP no Linux" o leitor aprendeu a configurar um servidor TFTP para fazer o backup manual de arquivos de switches e roteadores Cisco executando o IOS, uma vez que esses dispositivos já possuem um cliente TFTP embutido. O objetivo deste artigo é explicar ao leitor como utilizar a ferramenta archive para programar o IOS para realizar periodicamente o backup automático das configurações de switches/roteadores, partindo do princípio de que já existe um servidor TFTP em nossa rede conforme ilustrado abaixo. 


O procedimento para programar um backup diário é bastante simples:

Router(config)# archive
Router(config-archive)# path tftp://192.168.221.27/
Router(config-archive)# time-period 14040
Router(config-archive)# write-memory

Na linha 01 a ferramenta archive é invocada, o que coloca o IOS em seu próprio sub-modo de configuração onde é possível informar o endereço de uma máquina remota que esteja executando um servidor TFTP. O parâmetro time-period representa um intervalo de tempo em minutos, portanto o valor 1440 equivale a 24 horas (60 minutos x 24 horas).  Por fim, o comando write-memory é utilizado para disparar uma ação de cópia da configuração na máquina remota (especificada em path) sempre que houver alguma alteração no dispositivo local, independente do tempo programado. 

Caso exista um servidor FTP na rede, ao invés de um TFTP, as configurações poderiam ser realizadas de maneira bastante semelhante, bastando adicionar algumas informações para autenticação do usuário, sendo que no exemplo abaixo utilizamos o usuário shbbrito e a senha é SENHA:

Router(config)# archive
Router(config-archive)# path ftp://shbbrito:SENHA@192.168.221.27
Router(config-archive)# time-period 14040
Router(config-archive)# write-memory

Outra opção é fazer a transferência segura através do SCP (via SSH), bastando mudar o nome do protocolo no comando path.  O leitor interessado em detalhes desse procedimento encontra mais informações em outro artigo do blog intitulado "Transferência Segura de Arquivos no Cisco IOS via SCP".

Router(config)# archive
Router(config-archive)# path scp://shbbrito:SENHA@192.168.221.27/
Router(config-archive)# time-period 14040
Router(config-archive)# write-memory

Um recurso interessante que cabe destacar é a possibilidade de utilização de duas variáveis na propriedade path do archive que são bastante úteis para personalizar os nomes dos arquivos de backup para fins de versionamento. A variável $t faz referência à data que deve estar sincronizada via NTP, lembrando que as configurações do NTP foram abordadas em outro artigo do blog intitulado "A Hora Certa na Internet Brasileira". A variável $h faz referência ao nome do host. Por exemplo, as configurações do archive poderiam especificar o formato desejado para o nome dos arquivos de backup:

Router(config)# ntp server 208.160.7.186
Router(config)# clock timezone BR -3 9
Router(config)# clock summer-time BRV recurring 3 Sun Oct 0:00 3 Sun Feb 0:00
Router(config)# service timestamp debug datetime msec localtime show-timezone year
Router(config)# service timestamp log datetime msec localtime show-timezone year
Router(config)# archive
Router(config-archive)# path tftp://192.168.221.27/$h-$t
Router(config-archive)# time-period 14040
Router(config-archive)# write-memory

Essa ação resultaria em arquivos com nomes no formato HOSTNAME-MMM-DD-HH:MM:SS-TMZ-N, ou seja, Router-Apr-02-13-21-22-BRV-0. O comando show archive pode ser utilizado para exibir um histórico das últimas ações. 

Router# show archive
The maximum archive configuration allowed is 10.
The next archive file will be named ftp://shbbrito:SENHA@192.168.221.37/-<timestamp>-3
Archive  #  Name
   1        ftp://shbbrito:SENHA@192.168.221.37/Router-Apr-02-13:21:22.BRV-0
   2        ftp://shbbrito:SENHA@192.168.221.37/Router-Apr-02-13:24:22.BRV-1
   3        ftp://shbbrito:SENHA@192.168.221.37/Router-Apr-02-13:27:22.BRV-2

Façam seus testes...

Samuel.