Juniper

Comandos Junos básicos: show, configure, commit e rollback

Terminal com a hierarquia de configuração do Junos em chaves e os comandos commit e rollback

Quem passou anos no Huawei VRP estranha o Junos nos primeiros dez minutos e depois não quer mais voltar. Os comandos Junos seguem uma lógica bem fechada: você olha o equipamento em um modo, mexe na configuração em outro, e nada do que você digitou entra em produção antes de um commit. Se der errado, o rollback devolve a versão anterior em segundos.

Este guia reúne os comandos Junos que eu uso no laboratório para quem vem do mundo Huawei: como entrar e sair de cada modo, os show que respondem quase tudo no NOC, como montar a configuração com set, edit e delete, e como validar, aplicar e desfazer mudanças. No fim tem uma tabela de equivalência VRP x Junos para consultar com o terminal aberto. Os exemplos usam um roteador de laboratório chamado r1, a interface ge-0/0/0 e endereços de documentação.

Resposta rápida: os comandos Junos que você usa todo dia

  • show interfaces terse, show route e show bgp summary: estado das interfaces, tabela de rotas e sessões BGP, no modo operacional (prompt >).
  • configure: entra no modo de configuração (prompt # e banner [edit]).
  • set, delete e edit: criam, apagam e navegam na hierarquia.
  • show | compare: mostra o que vai mudar antes de aplicar.
  • commit check, commit confirmed 5 e commit: validam, aplicam com volta automática e confirmam.
  • rollback 1 seguido de commit: volta para a versão anterior.

Comandos Junos: modo operacional e modo de configuração

Os comandos Junos se dividem em dois modos, e o prompt diz onde você está. No modo operacional o prompt termina em >: é onde ficam os show, o ping, o traceroute e os comandos de diagnóstico. No modo de configuração o prompt termina em # e aparece uma linha entre colchetes, o banner, que mostra em que ponto da hierarquia você está.

user@r1> configure
Entering configuration mode

[edit]
user@r1#

O configure faz o papel do system-view do VRP. A diferença está no que acontece depois: no Junos você nunca edita a configuração ativa. Ao entrar no modo de configuração você ganha uma cópia, a candidate configuration, e todas as mudanças ficam nela até o commit. Quem usa VRP8 com o modo de commit em duas etapas já conhece a ideia; no Junos ela é a única forma de trabalhar.

Quando usar configure private

Em equipamento com mais de uma pessoa logada, o configure comum compartilha a mesma candidate entre todos. Se outro operador deixou mudanças pela metade, o seu commit leva as dele junto. O configure private dá a cada usuário uma cópia própria, e o commit só aplica o que você mexeu. Há um detalhe: se a candidate compartilhada já tiver mudanças sem commit, o Junos não deixa entrar em modo privado até que alguém faça o commit ou descarte essas mudanças. Para trabalho em janela de manutenção com mais de um técnico, prefira esse modo.

[edit protocols bgp]
user@r1# exit
[edit]
user@r1# exit configuration-mode
Exiting configuration mode

user@r1> configure private

O exit sobe um nível na hierarquia; no topo, ele sai do modo de configuração. O exit configuration-mode sai direto de qualquer nível. O configure private é digitado no modo operacional, no lugar do configure. Se houver mudança não aplicada, o Junos avisa antes de sair.

Comandos Junos de consulta: os show que respondem quase tudo

No modo operacional, estes são os comandos Junos que eu rodo primeiro em qualquer roteador novo. Eles mostram se as portas estão de pé, se a rota existe e se o BGP fechou.

user@r1> show interfaces terse
user@r1> show interfaces ge-0/0/0 extensive
user@r1> show route
user@r1> show route 198.51.100.0/24
user@r1> show bgp summary
user@r1> show bgp neighbor 192.0.2.2
  • show interfaces terse: uma linha por interface lógica, com estado administrativo, estado do link, protocolo e endereço. É o equivalente ao display interface brief somado ao display ip interface brief.
  • show interfaces ge-0/0/0 extensive: contadores, erros, nível de detalhe máximo. Use quando o terse diz que está tudo de pé, mas o cliente reclama.
  • show route: a tabela inteira. Com um prefixo no fim, como show route 198.51.100.0/24, mostra esse prefixo e os mais específicos dentro dele; com show route exact 198.51.100.0/24, só ele. Para saber por onde sai um IP, use o endereço sem máscara: show route 198.51.100.1.
  • show bgp summary: as sessões BGP e quantos prefixos cada uma recebeu e aceitou. show bgp neighbor com o IP traz o detalhe de uma sessão.

Filtros com pipe: match, count e last

Nos comandos Junos, o pipe substitui o | include do VRP e vai além. O match filtra por texto ou expressão regular, o count conta as linhas e o last mostra só o fim da saída, ótimo para log. O display set converte a configuração em linhas set, o formato que você copia e cola em outro roteador.

user@r1> show route protocol bgp | count
user@r1> show interfaces terse | match ge-
user@r1> show log messages | last 20
user@r1> show configuration | display set | match bgp

Para testar alcance, o ping aceita count para não ficar rodando sem fim, e o traceroute funciona como no VRP. Os dois rodam no modo operacional.

user@r1> ping 192.0.2.2 count 5
user@r1> traceroute 198.51.100.1

Comandos Junos de configuração: set, edit e delete

A configuração do Junos é uma árvore. Cada set cria um caminho completo dessa árvore em uma linha só, partindo do nível em que você está. Quatro linhas bastam para dar nome ao roteador, descrever a interface, colocar um IP e definir o ASN local.

user@r1# set system host-name borda-lab
user@r1# set interfaces ge-0/0/0 description "uplink lab"
user@r1# set interfaces ge-0/0/0 unit 0 family inet address 192.0.2.1/30
user@r1# set routing-options autonomous-system 64500

Linha a linha: system host-name muda o nome que aparece no prompt depois do commit. interfaces ge-0/0/0 description documenta a porta. O IP vai na unit 0, família inet: no Junos toda interface física tem pelo menos uma unidade lógica, e é nela que o endereço fica. Por fim, routing-options autonomous-system define o ASN usado pelo BGP.

Navegando na hierarquia com edit, up e top

Quando a configuração fica longa, repetir o caminho inteiro em cada set cansa. O edit entra num nível da árvore e cria o nível se ele não existir. A partir dali, os set são relativos. O up sobe um nível e o top volta para a raiz.

user@r1# edit protocols bgp group TRANSITO
[edit protocols bgp group TRANSITO]
user@r1# set type external
user@r1# set peer-as 64501
user@r1# set neighbor 192.0.2.2
user@r1# up
[edit protocols bgp]
user@r1# top
[edit]
user@r1#

Repare no banner mudando a cada passo. Ele é o seu mapa: se o set foi parar no lugar errado, quase sempre o banner mostrava um nível diferente do que você imaginava. Esse grupo BGP ainda não tem política de import e export; numa borda de verdade ele não deveria ir para produção assim.

Apagando com delete

O delete faz o papel do undo do VRP. Ele remove o item e tudo o que estiver abaixo dele na árvore, então cuidado com o nível em que você está. Um delete protocols bgp no topo apaga o BGP inteiro da candidate.

user@r1# delete interfaces ge-0/0/0 description
user@r1# delete protocols bgp group TRANSITO neighbor 192.0.2.2

Conferindo antes de aplicar: show | compare e display set

Este é o hábito que mais vale a pena trazer para a rotina. Antes de qualquer commit, rode show | compare. Ele compara a candidate com a configuração ativa e mostra só a diferença, com + no que entra e - no que sai.

user@r1# show | compare
user@r1# show | compare rollback 1
user@r1# show | display set
user@r1# run show interfaces terse

Uma saída típica logo depois do bloco de set (antes do edit e do delete), num roteador em que a ge-0/0/0 ainda não tinha configuração:

[edit system]
-  host-name r1;
+  host-name borda-lab;
[edit interfaces]
+   ge-0/0/0 {
+       description "uplink lab";
+       unit 0 {
+           family inet {
+               address 192.0.2.1/30;
+           }
+       }
+   }
[edit routing-options]
+  autonomous-system 64500;

O show | compare rollback 1 compara com a versão anterior à ativa, útil para entender o que o último commit mudou. O show | display set mostra a candidate inteira em formato set. E o run executa um comando do modo operacional sem sair da configuração, como o run show interfaces terse do exemplo.

commit check, commit confirmed e commit

O commit é o momento em que a candidate vira a configuração ativa. Antes disso, o Junos confere a sintaxe e a coerência do conjunto. Dá para pedir só essa conferência com commit check, sem aplicar nada.

user@r1# commit check
configuration check succeeds
user@r1# commit comment "bgp transito lab"
commit complete
user@r1# commit confirmed 5
user@r1# commit
commit complete
user@r1# commit and-quit

Linha a linha, o porquê de cada um:

  1. commit check valida e responde configuration check succeeds. Nada muda no roteador.
  2. commit comment aplica e grava um comentário que aparece no histórico. Daqui a três meses é isso que vai dizer quem mudou o quê e por quê.
  3. commit confirmed 5 aplica, mas com prazo: se você não confirmar em 5 minutos, o Junos volta sozinho para a configuração anterior. Sem número, o prazo padrão é de 10 minutos.
  4. commit (ou commit check) dentro do prazo confirma a mudança.
  5. commit and-quit aplica e sai do modo de configuração no mesmo passo.
Use commit confirmed em acesso remoto. Se a mudança derrubar a sua própria sessão SSH (um filtro de firewall errado, uma rota de gerência que sumiu), você não consegue desfazer. Com o commit confirmed, o roteador desfaz por você quando o prazo vence.

rollback: voltando para uma configuração anterior

O rollback é o que dá mais segurança. Cada commit guarda a versão anterior numa pilha. A configuração ativa é o rollback 0, a anterior é o 1, e assim por diante até o 49. O show system commit, no modo operacional, lista essa pilha com data, usuário e comentário de cada commit.

user@r1> show system commit
user@r1> configure
user@r1# rollback ?
user@r1# rollback 1
load complete
user@r1# show | compare
user@r1# commit

O ponto que mais confunde quem vem do VRP: o rollback 1 não muda o roteador. Ele só carrega a versão 1 na candidate e responde load complete. Você ainda precisa conferir com show | compare e aplicar com commit. O rollback sem número (ou rollback 0) descarta as mudanças que você fez na candidate e volta ao que está ativo, um jeito rápido de desistir de uma edição bagunçada.

Fluxo do Junos: candidate configuration, commit check, commit e a pilha de rollbacks
Do set ao commit: a candidate é validada, vira a ativa (rollback 0) e a versão anterior desce na pilha.

Tabela de equivalência: Huawei VRP x Junos

Para quem pensa em VRP, esta tabela traduz os comandos Junos mais comuns. Ela cobre o uso do dia a dia; opções específicas de cada comando mudam entre as plataformas. A coluna do VRP está detalhada na nossa lista de comandos para roteadores e switches Huawei.

TarefaHuawei VRPJunos
Entrar na configuraçãosystem-viewconfigure
Ver interfacesdisplay interface briefshow interfaces terse
Tabela de rotasdisplay ip routing-tableshow route
Sessões BGPdisplay bgp peershow bgp summary
Configuração inteiradisplay current-configurationshow configuration
Configuração do nível atualdisplay thisshow (no modo de configuração)
Remover itemundodelete
Subir um nívelquitup ou exit
Filtrar saída| include| match
Aplicar mudançaimediato (ou commit no modo de duas etapas do VRP8)commit
Salvar no bootsaveo próprio commit já grava
Desfazerrefazer à mão ou rollback do VRP8rollback n e commit

Duas diferenças de filosofia aparecem na tabela. No Junos não há um save para o boot: o commit já grava no disco, e o que não passou por commit não sobrevive a um reboot (o save do modo de configuração só exporta a configuração para um arquivo). E o delete apaga a árvore abaixo do item, enquanto o undo do VRP costuma remover só a linha.

Erros comuns com os comandos Junos

  • Esquecer o commit. A configuração aparece no show do modo de configuração, mas não está ativa. Confira no modo operacional com show configuration.
  • Achar que rollback já aplicou. Ele carrega a versão na candidate. Sem commit, nada muda.
  • Rodar delete no nível errado. Olhe o banner antes. delete no topo com um caminho curto apaga muito mais do que parece.
  • Commit sem compare. Mudanças antigas esquecidas na candidate entram junto. O show | compare mostra tudo o que vai entrar.
  • Mexer remoto sem commit confirmed. Um erro em firewall filter ou rota de gerência corta o acesso e só volta com alguém no console.
  • Colocar IP direto na interface física. O endereço fica em unit 0 family inet, não em ge-0/0/0 sozinho.

Quando o commit falha, o Junos mostra o caminho da hierarquia onde está o problema e a mensagem de erro. Leia o caminho entre colchetes: ele aponta direto para o trecho a corrigir. Se você trabalha também com OLT Huawei, os comandos básicos da OLT Huawei MA5800 seguem a lógica do VRP e servem de contraponto.

Perguntas frequentes

Qual a diferença entre commit e commit confirmed no Junos?

O commit aplica a candidate de forma definitiva. O commit confirmed aplica com prazo: se não houver um novo commit ou commit check dentro dele, o roteador volta sozinho para a configuração anterior. O prazo padrão é de 10 minutos.

Quantas configurações anteriores o Junos guarda?

Até 49 versões anteriores, numeradas de 1 a 49, além da ativa, que é o rollback 0. O show system commit lista o histórico com data, usuário e comentário.

Como ver a configuração do Junos em formato set?

Use show configuration | display set no modo operacional ou show | display set no modo de configuração. Dá para combinar com | match para filtrar só um protocolo ou uma interface.

Como rodar um show sem sair do modo de configuração?

Coloque run na frente do comando, como run show bgp summary. Você continua no mesmo nível da hierarquia e não perde o contexto da edição.

Preciso salvar a configuração depois do commit?

Não. O commit já grava a configuração ativa no armazenamento do equipamento. Ela continua lá depois de um reboot. O que fica só na candidate, sem commit, é perdido.

Conclusão

Os comandos Junos ficam simples quando você entende o ciclo: olhar no modo operacional, editar a candidate, conferir com show | compare, validar com commit check, aplicar com commit confirmed e confirmar. O rollback cobre o resto. Com esses comandos Junos e a tabela de equivalência aberta ao lado, a transição a partir do VRP leva poucos dias de laboratório.

O próximo passo natural é a política de roteamento, que no Junos usa policy-statement no lugar da route-policy do VRP. Se você já tem BGP no Huawei, o post sobre BGP communities no Huawei mostra a lógica que você vai reescrever do lado Juniper.

Fontes: Junos OS CLI User Guide e CLI Reference, documentação oficial da Juniper Networks (juniper.net/documentation).

Compartilhar:

Sobre o autor

Ivan Alves

Especialista em redes de provedores (ISP)

Ivan Alves trabalha há mais de 15 anos com redes de provedores de internet, do NOC ao backbone e à borda BGP. Coordena infraestrutura e tecnologia em um provedor regional e escreve aqui os tutoriais que gostaria de ter encontrado quando começou: comandos testados, cenário explicado e o porquê de cada linha.

1 Comentário

  1. Commit confirmed e rollback no Junos: mudar sem perder acesso – IA Tecnologia Responder

    […] Este guia mostra como usar o commit confirmed numa janela de manutenção, como conferir o histórico de commits, como comparar versões e como voltar para uma configuração anterior com rollback. No fim, comparo com o que existe no Huawei VRP8 e no Cisco IOS XE. Os exemplos foram montados num roteador de laboratório chamado r1, com endereços de documentação. Se você ainda não domina candidate, set e show | compare, comece pelos comandos Junos básicos. […]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *