NETCONF - NETCONF

Camadas de protocolo NETCONF.

O Network Configuration Protocol ( NETCONF ) é um protocolo de gerenciamento de rede desenvolvido e padronizado pela IETF . Ele foi desenvolvido no grupo de trabalho NETCONF e publicado em dezembro de 2006 como RFC 4741 e posteriormente revisado em junho de 2011 e publicado como RFC 6241 . A especificação do protocolo NETCONF é um documento Internet Standards Track.

NETCONF fornece mecanismos para instalar, manipular e excluir a configuração de dispositivos de rede. Suas operações são realizadas em uma camada simples de Remote Procedure Call (RPC). O protocolo NETCONF usa uma codificação de dados baseada em Extensible Markup Language (XML) para os dados de configuração e também para as mensagens do protocolo. As mensagens de protocolo são trocadas em cima de um protocolo de transporte seguro.

O protocolo NETCONF pode ser conceitualmente dividido em quatro camadas:

  1. A camada de conteúdo consiste em dados de configuração e dados de notificação.
  2. A camada de Operações define um conjunto de operações de protocolo de base para recuperar e editar os dados de configuração.
  3. A camada de Mensagens fornece um mecanismo para codificar chamadas de procedimento remoto (RPCs) e notificações.
  4. A camada de transporte seguro fornece um transporte seguro e confiável de mensagens entre um cliente e um servidor.

O protocolo NETCONF foi implementado em dispositivos de rede, como roteadores e switches, por alguns dos principais fornecedores de equipamentos. Um ponto forte particular do NETCONF é o seu suporte para mudanças robustas de configuração usando transações envolvendo vários dispositivos.

História

O IETF desenvolveu o protocolo SNMP ( Simple Network Management Protocol ) no final dos anos 1980 e ele provou ser um protocolo de gerenciamento de rede muito popular . No início do século 21, tornou-se aparente que, apesar do que foi originalmente planejado, o SNMP não estava sendo usado para configurar equipamentos de rede, mas principalmente para monitoramento de rede . Em junho de 2002, o Conselho de Arquitetura da Internet e os principais membros da comunidade de gerenciamento de rede da IETF se reuniram com operadores de rede para discutir a situação. Os resultados desta reunião estão documentados no RFC 3535 . Descobriu-se que cada operadora de rede estava usando principalmente uma interface de linha de comando (CLI) proprietária diferente para configurar seus dispositivos. Ele tinha uma série de recursos que os operadores gostaram, incluindo o fato de ser baseado em texto, ao contrário do SNMP codificado por BER . Além disso, muitos fornecedores de equipamentos não oferecem a opção de configurar completamente seus dispositivos via SNMP. Como os operadores geralmente gostavam de escrever scripts para ajudar a gerenciar suas caixas, eles descobriram que o SNMP CLI faltava de várias maneiras. Mais notavelmente foi a natureza imprevisível da saída. O conteúdo e a formatação da saída estavam sujeitos a alterações de maneiras imprevisíveis.

Na mesma época, a Juniper Networks estava usando uma abordagem de gerenciamento de rede baseada em XML. Isso foi levado ao IETF e compartilhado com a comunidade em geral. Coletivamente, esses dois eventos levaram a IETF em maio de 2003 à criação do grupo de trabalho NETCONF. Este grupo de trabalho foi contratado para trabalhar em um protocolo de configuração de rede, que se alinharia melhor com as necessidades dos operadores de rede e fornecedores de equipamentos. A primeira versão do protocolo básico NETCONF foi publicada como RFC 4741 em dezembro de 2006. Várias extensões foram publicadas nos anos subsequentes (notificações no RFC 5277 em julho de 2008, bloqueios parciais no RFC 5717 em dezembro de 2009, com padrões no RFC 6243 em junho 2011, notificações do sistema no RFC 6470 em fevereiro de 2012, controle de acesso no RFC 6536 em março de 2012). Uma versão revisada do protocolo básico NETCONF foi publicada como RFC 6241 em junho de 2011.

Camadas de protocolo

Conteúdo

O conteúdo das operações NETCONF é um XML bem formado. A maior parte do conteúdo está relacionada ao gerenciamento de rede . Posteriormente, o suporte para codificação em JavaScript Object Notation (JSON) também foi adicionado.

O grupo de trabalho NETMOD concluiu o trabalho para definir uma linguagem de modelagem "amigável" para definir a semântica de dados operacionais, dados de configuração, notificações e operações, chamada YANG . YANG é definido no RFC 6020 (versão 1) e no RFC 7950 (versão 1.1), e é acompanhado pelos "Tipos de dados comuns YANG" encontrados no RFC 6991 .

Durante o verão de 2010, o grupo de trabalho NETMOD foi re-fretado para trabalhar em modelos de configuração de núcleo (sistema, interface e roteamento), bem como trabalhar na compatibilidade com a linguagem de modelagem SNMP .

Operações

O protocolo de base define as seguintes operações de protocolo:

Operação Descrição
<get> Recupere as informações de configuração e estado do dispositivo em execução
<get-config> Recupere todo ou parte de um armazenamento de dados de configuração especificado
<edit-config> Edite um armazenamento de dados de configuração criando, excluindo, mesclando ou substituindo conteúdo
<copy-config> Copie um armazenamento de dados de configuração inteiro para outro armazenamento de dados de configuração
<delete-config> Excluir um armazenamento de dados de configuração
<lock> Bloquear todo um armazenamento de dados de configuração de um dispositivo
<unlock> Libere um bloqueio de armazenamento de dados de configuração obtido anteriormente com a operação <lock>
<close-session> Solicitar o encerramento normal de uma sessão NETCONF
<kill-session> Forçar o encerramento de uma sessão NETCONF

A funcionalidade básica do NETCONF pode ser estendida pela definição das capacidades do NETCONF. O conjunto de recursos de protocolo adicionais que uma implementação suporta é comunicado entre o servidor e o cliente durante a parte de troca de capacidade da configuração da sessão. Os recursos obrigatórios do protocolo não estão incluídos na troca de capacidade, pois são assumidos. O RFC 4741 define vários recursos opcionais, incluindo: xpath e: validate. Observe que o RFC 6241 torna o RFC 4741 obsoleto .

Um recurso para oferecer suporte à assinatura e recebimento de notificações de eventos assíncronos é publicado no RFC 5277 . Este documento define a operação <create-subscription>, que permite a criação de assinaturas em tempo real e de reprodução. As notificações são então enviadas de forma assíncrona usando a construção <notification>. Ele também define o recurso: interleave, que quando suportado com o recurso basic: notification facilita o processamento de outras operações NETCONF enquanto a assinatura está ativa.

A capacidade de suportar bloqueio parcial da configuração em execução é definida no RFC 5717 . Isso permite que várias sessões editem subárvores não sobrepostas na configuração em execução. Sem esse recurso, o único bloqueio disponível é para toda a configuração.

A capacidade de monitorar o protocolo NETCONF é definida na RFC 6022 . Este documento contém um modelo de dados incluindo informações sobre datastores NETCONF, sessões, bloqueios e estatísticas que facilitam o gerenciamento de um servidor NETCONF. Ele também define métodos para clientes NETCONF descobrirem modelos de dados suportados por um servidor NETCONF e define a operação <get-schema> para recuperá-los.

Mensagens

A camada de mensagens NETCONF fornece um mecanismo de enquadramento simples e independente de transporte para codificação

  • Invocações RPC (mensagens <rpc>),
  • Resultados RPC (mensagens <rpc-reply>) e
  • notificações de eventos (mensagens <notification>).

Cada mensagem NETCONF é um documento XML bem formado. Um resultado de RPC está vinculado a uma invocação de RPC por um atributo de id de mensagem. As mensagens NETCONF podem ser canalizadas, ou seja, um cliente pode invocar vários RPCs sem ter que esperar primeiro pelas mensagens de resultado RPC. As mensagens RPC são definidas no RFC 6241 e as mensagens de notificação são definidas no RFC 5277 .

Transporte

  • Protocolo NETCONF sobre Secure Shell (SSH): rfc: 6242
  • Protocolo NETCONF sobre Segurança da Camada de Transporte (TLS) com autenticação mútua X.509: rfc: 7589

Veja também

  • YANG
  • Stefan Wallin (18/10/2014). Tutorial NETCONF (YouTube). Estocolmo: tail-f.
  • Gerenciamento de rede
  • Gerenciamento de configurações
  • Monitoramento de rede
  • Esquema XML

Referências