NewsGeneration: um serviço oferecido pela RNP desde 1997


ISSN 1518-5974
Boletim bimestral sobre tecnologia de redes
produzido e publicado pela  RNP – Rede Nacional de Ensino e Pesquisa
12 de abril de 2002 | volume 6, número 2

volta à página inicial de NewsGeneration

Nesta edição:

NewsGeneration:



Pancho: uma solução para backup de configurações de roteadores Cisco

Walter Guedes Pinheiro Filho <>

Centro de Engenharia e Operações (CEO)
Rede Nacional de Ensino e Pesquisa (RNP)

Resumo
1. Introdução
2. Onde encontrar e estrutura de funcionamento
3. Iniciando a instalação
4. Dividindo em etapas
5. Funcionalidades
6. Automatizando o processo
7. Comparando as configurações
8. Conclusão

Resumo

Este artigo contém um guia de instalação e configuração da ferramenta Pancho, disponível gratuitamente na Web, cujo objetivo é automatizar a manutenção das configurações de uma rede de roteadores Cisco de uma empresa.

^

1. Introdução

Falar sobre a necessidade de manter o backup de informações importantes de uma rede chega a ser exaustivo. Isto ocorre porque, em muitos casos, questões básicas como as que serão tratadas aqui, não são vistas com a seriedade e importância que merecem.

O objetivo deste artigo é apresentar aos administradores de redes a ferramenta Pancho, bastante útil, desenvolvida com o objetivo de automatizar a manutenção das configurações de uma rede de roteadores Cisco de uma empresa.

^

2. Onde encontrar e estrutura de funcionamento

Esta ferramenta está disponível em http://pancho.lunarmedia.net e, atualmente, encontra-se na versão 3.4. O Pancho foi idealizado e desenvolvido por Charles J Menzes <charles@lunarmedia.net>. Trata-se de um script modular, desenvolvido em PERL.

O processo de funcionamento do Pancho baseia-se na interação entre os módulos PERL e um agente SNMP (Simple Network Management Protocol). No momento da execução do script, uma consulta ao agente SNMP do dispositivo remoto é realizada, através de uma requisição do tipo GET REQUEST. O roteador, por sua vez, verifica as permissões desta requisição e disponibiliza a informação desejada.

Portanto, tome nota do que é necessário para garantir o sucesso da instalação desta ferramenta:

^

3. Iniciando a instalação

Após a transferência do pacote, é necessário descomprimir o arquivo e, posteriormente, listar e extrair os arquivos. Para isto, usamos os comandos gunzip e tar:

gunzip pancho-v3.2.tar.gz
tar -xvf pancho-v3.2.tar

Neste momento, será criado um diretório com o nome e a versão do programa, contendo os arquivos que formam o mesmo, que são em número de 8 (oito), a saber: AUTHOR, CHANGES, COPYRIGHT, CREDITS, LICENCE, LOGGING, README e pancho. Observe:

Processo de descompactação do arquivo

Figura 1 - Processo de descompactação do arquivo

O próximo passo é proceder com a leitura minuciosa do conteúdo desses arquivos. Você irá notar que a documentação é muito resumida e de fácil entendimento, até porque, trata-se simplesmente de um conjunto de instruções para a manutenção de facilidades nos roteadores.

^

4. Dividindo em etapas

Utilizando o editor de sua preferência (pode ser o vi), edite o arquivo pancho. Navegue pelo arquivo, com o objetivo de ter visão geral das funções que o programa pode executar. Em seguida, posicione o cursor na linha 30 e adicione a designação de sua "community," entre aspas:

my $community = 'COMMUNYTY'; # your RW snmp community string

Um pouco mais abaixo, será solicitado a identificação do servidor de tftp.

my $tftpserver = ""; # ip/hostname/fqdn of your tftps

Na linha 34, será necessário incluir todos os dispositivos da rede que farão uso da ferramenta. Não separe suas designações por vírgulas, dois pontos, ou qualquer outro caractere. Deixe apenas um espaço em branco entre eles:

my @devices = qw(DEVICE1 DEVICE2 DEVICE3); # list of network devices

Os dispositivos deverão estar dentro dos parênteses, lembrando que devem estar separados apenas por um espaço em branco.

A próxima opção deverá ser utilizada, caso você queria armazenar as informações do processo de cópia, em arquivos exclusivamente criados para esta função. Para configurar esta facilidade, posicione o cursor na linha 38:

my $logfile = "/PATH/THE/LOG_FILE"; # full path to your logfile

Pronto! Com estas informações, você já pode começar a usar o pancho.

Conteúdo do arquivo 'pancho'

Figura 2 - Conteúdo do arquivo "pancho"

^

5. Funcionalidades

Agora, veremos como executar o script, bem como as funcionalidades embutidas nesta ferramenta. Certifique-se que você está dentro do diretório onde o pacote foi instalado.

O Pancho pode ser ativado com as seguintes opções:

Opções de Utilização

Figura 3 - Opções de Utilização

^

6. Automatizando o processo

Considerando que a utilização do Pancho é mais justificável quando se tem um número razoável de roteadores, a criação de um script para automatizar o processo é natural. A seguir, tem-se o exemplo de um script utilizado para obter, diariamente, a configuração de 28 roteadores. O mesmo é executado através de uma rotina do crontab.

!/bin/sh

# Diretório de Backup
TFTPDIR='/home/'
BACKUP_CFG_DIR='/home/config_routers/'

# Extraindo data de hoje
DATA=`date +%d-%h-%Y`

#acertar UF's
for UF in ac al am ap ba ce df es go ma mg ms mt pa pb pe pi pr rj rn ro rr rs sc se sp to
do
touch $TFTPDIR/$UF.cfg
chmod 666 $TFTPDIR/$UF.cfg
done

/usr/local/Pancho-v1.x/pancho -download

#acertar UF's
for UF in ac al am ap ba ce df es go ma mg ms mt pa pb pe pi pr rj rn ro rr rs sc se sp to
do
mv $TFTPDIR/$UF.cfg $BACKUP_CFG_DIR/$UF/$UF.$DATA.cfg
chmod 600 $BACKUP_CFG_DIR/$UF/$UF.$DATA.cfg
done

Script que realiza os backup's das Configurações de um Grupo de Roteadores

Figura 4 - Script que realiza os backup's das Configurações de um Grupo de Roteadores

Após a execução deste procedimento, os arquivos terão o seguinte formato: ac.18-Jan-2002.cfg.

Observe que o primeiro passo foi definir os diretórios de backup. Em seguida, temos o processo de extração da data atual. Vale ressaltar que a sintaxe de alguns comandos pode variar de acordo com o Sistema Operacional utilizado. Neste caso, foi utilizado um sistema FreeBSD.

Em "acertar UF's", para cada diretório criado anteriormente (de forma manual), são criados os arquivos que guardarão as configurações:

touch $TFTPDIR/$UF.cfg
chmod 666 $TFTPDIR/$UF.cfg

Os arquivos criados têm permissões de leitura e escrita para o dono e apenas de leitura para os outros. É necessário alterar as permissões para que todos tenham permissão de leitura e escrita. Para tanto, utilizamos o comando chmod, mostrado acima.

Após a transferência das configurações, é recomendável, por questões de segurança, voltar à condição anterior, onde somente o dono dos arquivos tenha direitos de leitura e escrita. Isto é feito através do comando:

chmod 600 $BACKUP_CFG_DIR/$UF/$UF.$DATA.cfg

A instrução:

mv $TFTPDIR/$UF.cfg $BACKUP_CFG_DIR/$UF/$UF.$DATA.cfg

tem a função apenas de mover esses arquivos para um diretório específico.

^

7. Comparando as configurações

Quando há uma espécie de gerência compartilhada, fica um tanto quanto difícil controlar as alterações de configuração nos roteadores. Considerando que algumas dessas alterações podem causar muitas dores de cabeça, é saudável que todos os que têm acesso às máquinas tomem ciência dessas mudanças.

Isto pode ser resolvido facilmente, implementando um procedimento de COMPARAÇÃO DE BACKUP's.

Da forma que propomos, comparamos a configuração do dia atual com a configuração do dia anterior. Veja:

#Diretório de comparação de BACKUP's
BACKUP_CFG_DIR='/home/config_routers/'
BACKUP_ONTEM='/home/config_routers/backup_ontem/'
POP_CONF='/home/config_routers/diff_conf'

#Extraindo Data de Hoje e de Ontem
DATA=`date +%d-%h-%Y`
DATA_ONTEM=`date -v -1d +%d-%h-%Y`

#acertar UF's
for UF in ac al am ap ba ce
do
diff -- $BACKUP_CFG_DIR/$UF/$UF.$DATA.cfg $BACKUP_CFG_DIR/$UF/$UF.$DATA_ONTEM
.cfg > $POP_CONF/$UF.diff_conf.cfg

RESULTADO=`cat $POP_CONF/$UF.diff_conf.cfg | wc - c`
echo $RESULTADO
if [ $RESULTADO = "0" ];
then
rm -f $POP_CONF/$UF.diff_conf.cfg
else
mail -v -s "Atencao! Mudança de Configuração em $UF" fulano@dominio.br < /$POP_
CONF/$UF.diff_conf.cfg
fi

Script que mostra eventuais diferenças entre a configuração

Figura 5 - Script que mostra eventuais diferenças entre a configuração do dia atual e anterior

Este procedimento é muito parecido com o anterior. Atente para o processo de extração do dia anterior pois, como já dissemos, a sintaxe pode mudar, de acordo com o sistema operacional que está sendo utilizado.

Para a comparação propriamente dita, usamos o comando "diff", apontando para outro arquivo, em outro diretório, escolhido previamente.

diff -- $BACKUP_CFG_DIR/$UF/$UF.$DATA.cfg $BACKUP_CFG_DIR/$UF/$UF.$DATA_ONTEM .cfg > $POP_CONF/$UF.diff_conf.cfg

Em seguida, incluímos a variável RESULTADO. O comando "wc -c" conta o número de bytes referentes à saída mostrada pelo comando "cat".

RESULTADO=`cat $POP_CONF/$UF.diff_conf.cfg | wc -c`

A seguir, temos a estrutura if-then-else (se-então-senão):

if [ $RESULTADO = "0" ];
then
rm -f $POP_CONF/$UF.diff_conf.cfg
else
mail -v -s "Atenção! Mudança de Configuração em $UF" fulano@dominio.com.br < /$POP_ CONF/$UF.diff_conf.cfg
fi

Se o valor assumido pela variável for igual a zero (arquivo vazio), então o mesmo é removido. Caso contrário, uma mensagem será enviada, tendo no subject uma mensagem de alerta e, no corpo, as alterações encontradas pelo comando diff.

Dessa forma, todo o pessoal que realiza a gerência da rede, sendo ela compartilhada ou não, toma ciência das mudanças nas configurações dos equipamentos.

^

8. Conclusão

Foi abordado neste artigo alguns motivos que confirmam a necessidade de manter os backups das configurações dos roteadores de um backone. Esta carência não está limitada somente a um grupo de equipamentos, e sim de qualquer ambiente que guarde informações primordiais de uma organização.

Decidimos falar sobre este assunto porque, há muito tempo, sentíamos a necessidade de dispor de mais segurança com as informações que trafegam em nossa rede e de encontrar uma ferramenta que unisse confiabilidade e praticidade, como o Pancho.

A RNP adotou esta ferramenta para a manutenção dos backups de todos os roteadores, o que facilita e tranqüiliza os profissionais que atuam diretamente no backbone.

^

NewsGeneration, um serviço oferecido pela RNP – Rede Nacional de Ensino e Pesquisa
Copyright © RNP, 1997 – 2004