DEV Community

Cover image for Efetuando backup de equipamentos Juniper via SCP
Cristian Cardoso
Cristian Cardoso

Posted on

Efetuando backup de equipamentos Juniper via SCP

Hoje vou descrever uma maneira simples de efetuar backup das configurações de equipamentos Juniper através de transferência via SCP à cada novo commit.

Para executar essa tarefa é necessário ter uma máquina Linux/BSD que tenha um usuário e senha configurado para uso do Juniper, para poder receber as transferências.

Aqui um cenário de laboratório de como funcionará o backup

Image description

Basicamente a conexão de backup via SCP vai funcionar através da interface fxp0 do roteador vMX, essa interface que é conhecida por ser a gerência do equipamento, que está conectada à interface e1 no servidor FreeBSD

1 - Configurando um usuário

Como mencionei no início do texto, vamos fazer o backup via SCP, logo precisamos ter um usuário criado em algum servidor seja ele Linux ou BSD, no meu caso vou utilizar o FreeBSD, mas também pode ser utilizado qualquer Linux da preferência do leitor.

No FreeBSD vamos criar o nosso usuário com o seguinte comando

root@freebsd-eve:~ # pw user add -n juniper -c "backup juniper" -d /home/juniper -m -s /usr/local/bin/bash
Enter fullscreen mode Exit fullscreen mode

Abaixo vamos setar uma senha para nosso usuário, que em meu exemplo terá a senha como patobranco123

root@freebsd-eve:~ # passwd juniper
Changing local password for juniper
New Password:
Retype New Password:
root@freebsd-eve:~ #
Enter fullscreen mode Exit fullscreen mode

Aqui acessamos o usuário via comando su, para ver se está tudo certo no diretório home

root@freebsd-eve:~ # su - juniper
To see the last time that you logged in, use lastlogin(8).
                -- Dru <genesis@istar.ca>
[juniper@freebsd-eve ~]$
Enter fullscreen mode Exit fullscreen mode

Ainda dentro do diretório logado com o usuário juniper, vamos criar o diretório vmx, local este que será utilizado para salvar nossos backups.

[juniper@freebsd-eve ~]$ mkdir vmx
[juniper@freebsd-eve ~]$ ls
vmx
Enter fullscreen mode Exit fullscreen mode

Com o diretório criado e o usuário fumando, vamos agora para o roteador vMX para efetuar as configurações de backup.

2 - Configurando o roteador Juniper para efetuar o backup

Com tudo ajustado no servidor que vai receber os arquivos, vamos para o nosso roteador Juniper fazer a configuração do backup via SCP

A comunicação entre o servidor e o Juniper como falei no início do artigo se dará via interface fxp0, através da rede 192.168.100.0/24, onde o servidor FreeBSD tem o IP 192.168.100.100/24 e o roteador Juniper tem o IP 192.168.100.101/24.

Image description

Depois de validarmos a conectividade, vamos a configuração do backup SCP:

root> edit
Entering configuration mode

[edit]
root# edit system archival configuration

[edit system archival configuration]
root# set transfer-on-commit


root# set archive-sites "scp://juniper@192.168.100.100:/home/juniper/vmx" password "patobranco123"
The authenticity of host '192.168.100.100 (192.168.100.100)' can't be established.
ECDSA key fingerprint is SHA256:o4A7FyvAjqN3GNM9fnHazfw8Z6Xng3SJfn+gEDEgDWs.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.100.100' (ECDSA) to the list of known hosts.

[edit system archival configuration]
root# show
transfer-on-commit;
archive-sites {
    "scp://juniper@192.168.100.100:/home/juniper" password "$9$q.T36/tBRS69tOIReKM8XNb2aJDP5FUD9A0ORE"; ## SECRET-DATA
}

[edit system archival configuration]
root# top

[edit]
root# show | compare
[edit system]
+   archival {
+       configuration {
+           transfer-on-commit;
+           archive-sites {
+               "scp://juniper@192.168.100.100:/home/juniper/vmx" password "$9$0oClOEyleW7dslKWx-d4oJGDHmT3nC1RS9CKMXxdV"; ## SECRET-DATA
+           }
+       }
+   }
[edit]
+  security {
+      ssh-known-hosts {
+          host 192.168.100.100 {
+              ecdsa-sha2-nistp256-key AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFKrb1vi6ld4XcvWd6bfT2wM4h6n0WGmnEIJLB49SSZOA9rSuiHLiAPv5niuxbrPm1vlutlbQLk6xPvGfuK5TeA=;
+          }
+      }
+  }

[edit]
root# commit and-quit
commit complete
Exiting configuration mode

root>
Enter fullscreen mode Exit fullscreen mode

No quadro acima, entramos no modo de edição do equipamento
e acessamos o nível "system archival configuration", para inserir a opção de transferência de backup do sistema à cada novo commit executado e inserimos a linha do scp com o usuário juniper fazendo login no servidor FreeBSD que tem o usuário criado e apontando que o diretório de backup será a pasta vmx que criamos previamente. Após a configuração, executamos um "show|compare" para validarmos o que será mudado e é exibido que a configuração de backup via commit com scp foi criada e que no nível "security" de hosts conhecidos, foi adicionado o servidor FreeBSD.

Após essa configuração vamos aos logs do roteador para verificar se tudo ocorreu corretamente.

Image description

Podemos notar a seguinte linha:

Sep 16 16:17:08   logger[18674]: transfer-file: Transferred /var/transfer/config/_20220916_161655_juniper.conf.gz
Enter fullscreen mode Exit fullscreen mode

A cada novo commit, essa linha é exibida, mostrando que o backup já foi despachado para o servidor via SCP.

Por último, vamos no servidor FreeBSD na home do usuário juniper no diretório vmx ver como tudo ficou:

root@freebsd-eve:~ # cd /home/juniper/vmx/
root@freebsd-eve:/home/juniper/vmx # ls -lha
total 12
drwxr-xr-x  2 juniper  juniper   512B Sep 16 16:17 .
drwxr-xr-x  3 juniper  juniper   512B Sep 16 14:50 ..
-rw-r-----  1 juniper  juniper   706B Sep 16 16:16 _20220916_161655_juniper.conf.gz
Enter fullscreen mode Exit fullscreen mode

Podemos ver que o backup ocorreu corretamente no diretório que configuramos, se em algum momento haja necessidade de ver o arquivo de backup para alguma restauração ou simples consulta, basta utilizar o comando gunzip para poder visualizar o conteúdo:

root@freebsd-eve:/home/juniper/vmx # gunzip _20220916_161655_juniper.conf.gz
root@freebsd-eve:/home/juniper/vmx # ls
_20220916_161655_juniper.conf
root@freebsd-eve:/home/juniper/vmx # cat _20220916_161655_juniper.conf | more
## Last changed: 2022-09-16 16:16:46 UTC
version 21.3R1-S2.2;
system {
    root-authentication {
        encrypted-password "$6$htF6VKSr$YedS3Ki1Tudh.78942QdH5MvNApo7Nizou0SFpaMtZy5vpAEf7nS3rV6UnIzpZhtvjrO7CjerOO84mg0dqi0P/";
    }
    syslog {
        file interactive-commands {
            interactive-commands any;
        }
        file messages {
            any notice;
            authorization info;
        }
Enter fullscreen mode Exit fullscreen mode

Podemos visualizar o arquivo via comando cat, vim, vi ou o editor de sua preferência, para possível edição e posterior restauração de backup no roteador.

Link de referência: link

Top comments (0)