Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Notificações de eventos do NETCONF

RESUMO Os clientes da NETCONF podem assinar notificações de eventos em sessões netconf para receber alertas para eventos que possam afetar as operações ou atividades de gerenciamento de dispositivos.

Visão geral das notificações de eventos do NETCONF

Determinados dispositivos que executam o Junos OS Evolved oferecem suporte a notificações de eventos NETCONF, um serviço de notificação de eventos assíncrono entre um servidor NETCONF e um cliente NETCONF. Depois de habilitar o serviço de notificação, o servidor NETCONF envia notificações de eventos, conforme os eventos ocorrem, a todos os clientes da NETCONF que assinam as notificações. Os clientes podem assinar notificações netconf para receber alertas para eventos que possam afetar as operações ou atividades de gerenciamento de dispositivos.

O servidor NETCONF envia notificações para os seguintes tipos de eventos:

  • netconf-session-start— Indica quando uma sessão da NETCONF começa e identifica o usuário que iniciou a sessão.
  • netconf-session-end— Indica quando uma sessão da NETCONF termina e identifica o usuário que era o dono da sessão e o motivo pelo qual a sessão foi terminada.
  • netconf-config-change— Indica quando uma sessão de gerenciamento confirma alterações na configuração ativa e fornece um resumo das mudanças.
  • Eventos de ON_CHANGE do OpenConfig

Você pode habilitar o serviço de notificação de eventos NETCONF em dispositivos suportados. Veja como habilitar e assinar as notificações de eventos netconf para obter instruções. Você pode configurar opcionalmente o recurso de interleave, que permite que os clientes da NETCONF assinem notificações e enviem RPCs na mesma sessão NETCONF, conforme descrito no Interleave Capability.

Depois de habilitar notificações de eventos netconf, o servidor NETCONF anuncia o notification recurso e o interleave recurso na troca de recursos.

Para assinar o serviço de notificação para eventos em um dispositivo específico, um cliente netconf envia um <create-subscription> RPC para o servidor NETCONF no dispositivo e indica o seguinte:

  • <stream>— O fluxo de eventos que é de interesse.

    Um fluxo é um conjunto de notificações de eventos que correspondem a alguns critérios de encaminhamento. Uma assinatura é vinculada a um único fluxo para a vida útil da assinatura. O NETCONF fluxo é o fluxo padrão e só suportado em dispositivos Junos. O servidor NETCONF retorna um erro se a solicitação de assinatura for para qualquer outro fluxo. Se você omitir esse parâmetro, o dispositivo trata a solicitação de assinatura como uma solicitação para o NETCONF fluxo.

  • <filter>— um filtro de sub-árvore que seleciona um subconjunto de todos os eventos possíveis.

    Se um cliente NETCONF especificar um filtro, o servidor encaminha apenas os eventos selecionados pelo filtro. Se um cliente não especificar um filtro, o servidor encaminha todos os eventos. O Junos OS Evolved oferece suporte apenas a filtros de alto nível e não oferece suporte ao uso de filtros XPATH para este elemento. Consulte o recurso de filtragem para obter mais informações.

Após um cliente netconf assinar notificações de eventos, o servidor NETCONF envia as notificações conforme elas ocorrem. As notificações continuam até o encerramento da sessão da NETCONF.

Nota:

Um cliente NETCONF recebe todas as notificações de eventos por padrão. Não há como restringir ou limitar o conteúdo de uma notificação com base em privilégios do usuário. Como alguns eventos, por exemplo, netconf-config-change podem conter informações confidenciais, é importante controlar o acesso lido às informações.

Para obter mais informações sobre notificações de eventos netconf, veja os seguintes RFCs:

  • RFC 5277, Notificações de eventos da NETCONF

  • Notificações base do RFC 6470, protocolo de configuração de rede (NETCONF)

Formato de notificação de eventos da NETCONF

As notificações de eventos do NETCONF são documentos XML bem formados. Quando o servidor NETCONF recebe um evento interno, ele o converte em uma codificação XML apropriada com um elemento de nível <notification> superior e um <eventTime> elemento infantil. O conteúdo real contido na notificação depende do evento.

Uma solicitação de assinatura pode incluir filtros para tipos específicos de notificações. Se a solicitação de assinatura incluir filtros, os filtros definidos pelo usuário serão aplicados a cada notificação no fluxo de eventos, e o servidor NETCONF encaminha apenas eventos correspondentes ao cliente.

A notificação de evento de amostra a seguir contém um netconf-config-change evento. A notificação captura o data-tempo do evento, o tempo de confirmação, o usuário que cometeu as mudanças de configuração e um resumo dessas mudanças.

As notificações a seguir contêm amostra netconf-session-start e netconf-session-end eventos:

Recursos de interleave

Por padrão, após um cliente netconf assinar notificações de eventos em uma sessão netconf, o cliente também não pode enviar RPCs na mesma sessão. O recurso de interleave permite que o cliente e o servidor NETCONF continuem trocando RPCs e respostas RPC dentro da mesma sessão NETCONF que é usada para notificações. O recurso de interleave reduz o número geral de sessões netconf porque você não precisa de uma sessão NETCONF dedicada para notificações. Para usar o recurso de interleave em dispositivos que oferecem suporte a esse recurso, você deve configurar a interleave declaração no nível hierárquico [edit system services netconf notification] .

Um cliente netconf termina uma assinatura encerrando a sessão netconf ou a sessão de transporte subjacente da sessão NETCONF, por exemplo, com uma <close-session> ou <kill-session> operação. Se você habilitar o recurso de interleave, um cliente pode encerrar a sessão executando uma <close-session> operação de dentro da mesma sessão. Se você não habilitar o recurso de interleave, o cliente pode encerrar a sessão, por exemplo, executando a operação a <kill-session> partir de outra sessão.

Recursos de filtragem

Quando um cliente netconf se inscreve em notificações de eventos, o cliente pode assinar todas as notificações de eventos no fluxo, ou o cliente pode se inscrever em um subconjunto de notificações de eventos. Para assinar um subconjunto de notificações de eventos, o cliente inclui o elemento opcional <filter> no <create-subscription> RPC. Se a solicitação de assinatura incluir filtros, os filtros serão aplicados a cada notificação no fluxo de eventos, e o servidor NETCONF encaminha apenas eventos correspondentes ao cliente. Caso contrário, o servidor encaminha todos os eventos.

O <filter> formato de parâmetro para a <create-subscription> operação é semelhante ao formato de filter parâmetro para outras operações de NETCONF. Ele inclui um filtro de sub-árvore que seleciona as notificações de eventos desejadas. No caso da operação, no entanto, os <create-subscription> dispositivos Junos só oferecem suporte a filtros subtree que se comparam com o elemento de nível superior da notificação fechada, por exemplo. <netconf-config-change> O filtro é aplicado às notificações no fluxo e apenas contra o conteúdo do <notification> invólucro.

Nota:

Os dispositivos Junos não suportam o uso do XPath para filtrar as notificações.

Ao filtrar para notificações específicas, você deve incluir o namespace apropriado na tag. Se você não especificar o namespace, as notificações de eventos não corresponderão ao filtro, e o servidor NETCONF não encaminhará as notificações. No exemplo a seguir, a solicitação de assinatura retorna um subconjunto de todas as notificações de eventos NETCONF. O filtro seleciona e encaminha apenas <netconf-config-change> eventos e <oc-ifl-event> eventos.

Como habilitar e assinar notificações de eventos netconf

Você deve habilitar o serviço de notificação de eventos NETCONF em um dispositivo antes que um cliente NETCONF possa assinar notificações de eventos em uma sessão netconf. Após a habilitação do serviço, um cliente da NETCONF se inscreve para receber notificações de eventos enviando uma solicitação de assinatura ao servidor NETCONF. A resposta do servidor NETCONF indica se a solicitação foi bem sucedida. Se a solicitação for bem sucedida, o servidor envia notificações de eventos assíncronos para o cliente NETCONF conforme os eventos ocorrem e até que a sessão netconf seja terminada.

Este exemplo requer o seguinte hardware e software:

  • Dispositivo em execução Junos OS Evolved Release 21.2R1 ou posterior que oferece suporte ao serviço de notificação de eventos NETCONF. Consulte o Feature Explorer para dispositivos compatíveis.

Para habilitar e assinar notificações de eventos NETCONF, execute as seguintes tarefas:

Habilite o serviço de notificação de eventos NETCONF

Para permitir que um cliente assine notificações de eventos em uma sessão netconf:

  1. Habilite o serviço de notificação de eventos NETCONF configurando a notification declaração.
  2. (Opcional) Configure a opção interleave para permitir que um cliente netconf execute RPCs em uma sessão netconf que também assina notificações.
  3. Configure a rfc-compliant declaração para garantir que o dispositivo esteja em conformidade com o NETCONF RFC 4741.
  4. (Opcional) Configure as opções de rastreamento do NETCONF para solucionar problemas.

    Por exemplo:

  5. Habilite serviços de notificação na porta padrão para aplicativos em execução no dispositivo.

    Em versões que exijam a allow-clients declaração, você também deve especificar os clientes (nomes de host ou endereços IP) que podem assinar notificações.

    Por exemplo:

  6. Confirmar a configuração.

Inscreva-se para receber notificações de eventos

Depois de habilitar o serviço de notificação de eventos NETCONF em um dispositivo, os clientes da NETCONF podem se inscrever para receber notificações de eventos em uma sessão netconf. Um cliente NETCONF pode incluir os seguintes parâmetros opcionais na solicitação de assinatura:

  • <stream>— Fluxo de eventos que é de interesse. O valor padrão e apenas aceitável é NETCONF.

  • <filter>— Filtro subtree que seleciona um subconjunto de todos os eventos possíveis.

Para assinar notificações de eventos em uma sessão netconf:

  1. Inicie a sessão netconf.
  2. Verifique se o serviço de notificação de eventos NETCONF está habilitado no dispositivo confirmando que o recurso de notificação é anunciado na troca de recursos.
  3. Emita uma solicitação create-subscription e especifique opcionalmente o NETCONF fluxo.
    • Para assinar todas as notificações, omite o <filter> parâmetro.

    • Para assinar um subconjunto de notificações, inclua o <filter type="subtree"> elemento e defina um ou mais filtros de subtree para as notificações de interesse. Os dispositivos Junos oferecem suporte apenas a filtros de sub-árvore compatíveis com o elemento de alto nível da notificação fechada. Você deve incluir o namespace apropriado na tag para a notificação específica.

      Por exemplo:

  4. Verifique se a solicitação de assinatura é bem sucedida.

    O servidor NETCONF retorna <ok/> se a solicitação for bem sucedida ou um <rpc-error> elemento se não puder concluir a solicitação de assinatura.

    Se a solicitação de assinatura for bem-sucedida, o servidor NETCONF começa a enviar notificações de eventos de forma assíncrona pela conexão.

  5. Se o recurso de interleave estiver habilitado, o cliente NETCONF pode continuar a enviar RPCs na mesma sessão.

Encerre a assinatura

Um cliente netconf encerra uma assinatura para receber notificações de eventos, encerrando a sessão netconf ou a sessão de transporte subjacente da sessão NETCONF.

Para encerrar a sessão e a assinatura da NETCONF, execute uma das seguintes ações:
  • Se o recurso de interleave estiver habilitado, emita a <close-session/> operação na sessão NETCONF.

  • Emita a <kill-session> operação de uma sessão NETCONF externa e especifique o ID da sessão para a sessão NETCONF terminar (conforme definido no <session-id> elemento da troca inicial <hello> ).

  • Encerre a sessão de transporte subjacente da sessão netconf.