Proteja ou desproteja um objeto de configuração usando o protocolo Junos XML
O protect
atributo impede alterações em hierarquias e declarações de configuração selecionadas. Você não pode alterar um elemento protegido manualmente pela CLI ou usar automaticamente scripts de confirmação ou chamadas de procedimentos remotos. Se você tentar fazer alterações de configuração em uma declaração protegida ou dentro de uma hierarquia protegida, o dispositivo emite um aviso e a mudança de configuração falha.
Se uma hierarquia ou declaração de configuração estiver protegida, os usuários não poderão realizar as seguintes atividades:
-
Exclua ou modifique a hierarquia ou uma declaração ou identificador dentro da hierarquia protegida (a exclusão de uma hierarquia desprotegida que contém elementos protegidos exclui todos os elementos infantis desprotegidos e preserva todos os elementos infantis protegidos.)
-
Insira uma nova declaração de configuração ou um identificador dentro da hierarquia protegida
-
Renomeie a declaração protegida ou uma declaração ou identificador dentro da hierarquia protegida
-
Copie uma configuração na hierarquia protegida
-
Ativar ou desativar as declarações ou declarações protegidas dentro da hierarquia protegida
-
Anotar a declaração ou hierarquia protegida, ou declarações dentro da hierarquia protegida
Se você proteger uma declaração de configuração ou hierarquia que não existe, o dispositivo primeiro cria o elemento de configuração e depois o protege. Se você desprotegir uma declaração ou elemento que não esteja protegido, nenhuma ação será tomada.
Você pode identificar elementos protegidos ao exibir a configuração. A Tabela 1 descreve como você identifica elementos protegidos para dados de configuração em diferentes formatos.
Identificador de | formato |
---|---|
Comandos de modo de configuração |
Os |
JSON |
As hierarquias e declarações protegidas incluem o |
Texto |
Os elementos protegidos são precedidos por |
XML |
A tag de abertura do elemento protegido contém o |
Um usuário ou aplicativo cliente deve ter permissão para modificar a configuração para proteger ou desprotegir objetos de configuração.
Em uma sessão de protocolo NETCONF ou Junos XML com um dispositivo Junos, para proteger um elemento de configuração contra alterações ou para desprotegir um elemento previamente protegido, um aplicativo do cliente primeiro inclui os elementos de tag descritos na criação, modificação ou exclusão de elementos de configuração usando o protocolo Junos XML.
XML
Ao usar elementos de tag Junos XML para representar a configuração, o aplicativo do cliente inclui o protect="protect"
ou unprotect="unprotect"
atributo na tag de abertura do objeto. O aplicativo inclui qualquer elemento de tag de identificador necessário. Na amostra RPC a seguir, o elemento de tag do identificador é chamado <name>
:
<configuration> <!-- opening tag for each parent of the object --> <object (protect="protect" | unprotect="unprotect")> <name>identifier</name> </object> <!-- closing tag for each parent of the object --> </configuration>
Em uma sessão NETCONF compatível com YANG, você pode proteger ou desprotegir um elemento de configuração em dados XML, incluindo os atributos e jcmd:protect="(true | false)"
o xmlns:jcmd="http://yang.juniper.net/junos/jcmd"
elemento tag. Para obter mais informações, veja anotações de metadados YANG para dispositivos Junos.
Texto
Ao usar texto ASCII formatado para proteger ou desprotegir um objeto, o aplicativo precede o elemento com o operador ou unprotect:
o protect:
elemento conforme apropriado. Se você estiver protegendo um nível de hierarquia e sem elementos infantis adicionais sob essa hierarquia, adicione um ponto e vírgula após a declaração do elemento.
<configuration-text> /* statements for parent levels */ /* For an object with an identifier */ (protect: | unprotect:) object identifier { /* Child configuration statements */ } /* For a hierarchy level or object without an identifier */ (protect: | unprotect:) element { /* Child configuration statements */ } /* closing braces for parent levels */ </configuration-text>
Comandos do modo de configuração (set)
Ao usar comandos de modo de configuração para proteger um objeto, o aplicativo especifica o protect
ou unprotect
o comando equivalente ao comando de modo de configuração CLI. Você pode proteger hierarquias e declarações individuais.
<configuration-set> (protect | unprotect) statement-path-to-hierarchy (protect | unprotect) statement-path-to-object object identifier </configuration-set>
JSON
Ao usar dados de configuração do JSON para representar a configuração, o aplicativo cliente protege ou desprotegi um objeto, incluindo o atributo apropriado na lista de atributos do objeto. O cliente inclui o "protect" : true
atributo para proteger o objeto e inclui o "protect" : false
atributo ou "unprotect" : true
para desprotegir o objeto. Para proteger ou desprotegir um objeto que tenha um identificador, o cliente também inclui o identificador para o objeto.
A configuração JSON genérica a seguir indica a colocação do atributo ao proteger uma hierarquia, um objeto que tem um identificador e uma declaração leaf.
<configuration-json> { "configuration" : { /* JSON objects for parent hierarchies */ "hierarchy" : { "@" : { "comment" : "/* protect a hierarchy */" , "protect" : true }, "object" : [ { "@" : { "comment" : "/* protect an object with an identifier */" , "protect" : true }, "name" : "identifier", "@statement-name" : { "comment" : "/* protect a statement */" , "protect" : true } } ] } /* closing braces for parent hierarchies */ } } </configuration-json>
Nos dados de configuração do Junos OS que são representados usando o JSON, o valor para o e "unprotect"
atributo é do "protect"
tipo Boolean, que é expresso em minúscula e não está incluído entre aspas.
Em uma sessão NETCONF compatível com YANG, você pode proteger ou desprotegir um objeto de configuração em dados JSON, incluindo a "junos-configuration-metadata:protect" : (true | false)
anotação no objeto de metadados da declaração. Para obter mais informações, veja anotações de metadados YANG para dispositivos Junos.
O exemplo a seguir protege o [edit access]
nível de hierarquia da configuração usando elementos de tag Junos XML:
<rpc> <load-configuration> <configuration> <access protect="protect"/> </configuration> </load-configuration> </rpc>
Uma vez protegido, qualquer tentativa de modificar o nível de [edit access]
hierarquia produz um aviso. O RPC a seguir tenta excluir o nível de [edit access]
hierarquia. Como esse nível de hierarquia é protegido, o servidor retorna um aviso de que a hierarquia está protegida e a mudança de configuração falha.
<rpc> <load-configuration> <configuration> <access delete="delete"/> </configuration> </load-configuration> </rpc> <xnm:warning xmlns="http://xml.juniper.net/xnm/1.1/xnm" xmlns:xnm="http://xml.juniper.net/xnm/1.1/xnm"> <message> [access] is protected, 'access' cannot be deleted </message> </xnm:warning>