Definition

NETCONF (Network Configuration Protocol)

Was ist das Network Configuration Protocol (NETCONF)?

NETCONF ist ein Netzwerkmanagementprotokoll der Internet Engineering Task Force (IETF). Es stellt einen sicheren Mechanismus für die Installation, Bearbeitung und Löschung von Konfigurationsdaten auf Netzwerkgeräten wie Firewalls, Routern oder Switches bereit.

Es wurde von der NETCONF-Arbeitsgruppe entwickelt und im Dezember 2006 als RFC 4741 veröffentlicht. Im Juni 2011 wurde das Protokoll überarbeitet und als RFC 6241 freigegeben. Dies ist die aktuellste Version (Stand: September 2025). RFC 6241 ist weiterhin die Basis-Spezifikation und wurde aktualisiert, unter anderem durch

  • RFC 7803 (Februar 2016, Registrierungsrichtlinie für Capability-URNs)
  • RFC 8526 (März 2019, NMDA-Erweiterungen inklusive <get-data>/<edit-data>)

NETCONF wurde entwickelt, um die Mängel des Simple Network Management Protocol (SNMP) und der Befehlszeilenschnittstelle zur Konfiguration von Netzwerkgeräten auszugleichen.

Wie funktioniert NETCONF?

NETCONF verwendet das RPC-Protokoll (Remote Procedure Call), um die Kommunikation zwischen Clients und Servern durchzuführen. RPC ist ein Client/Server-Protokoll, mit dem ein Programm einen Dienst von einem anderen Programm anfordern kann, ohne die Details des zugrunde liegenden Netzwerks zu kennen. RPC-Nachrichten werden in der Auszeichnungssprache Extensible Markup Language (XML) codiert und über sichere, verbindungsorientierte Sitzungen übertragen.

Ein NETCONF-Client, der häufig Teil eines Netzwerkmanagers ist, kann ein Skript oder eine Anwendung sein. Ein Server ist in der Regel ein Netzwerkgerät. In RFC 6241 werden die Begriffe Client und Anwendung sowie Server und Gerät synonym verwendet.

Der Client sendet RPC-Nachrichten, die Operationen auf dem Server ausführen. Zudem kann der Client Benachrichtigungen vom Server abonnieren. Neben der klassischen Methode nach RFC 5277 werden Subscribed Notifications nach RFC 8639 (Framework) und RFC 8640 (NETCONF-Binding) eingesetzt. Der Server führt die vom Client aufgerufenen Operationen aus und kann Benachrichtigungen an den Client senden.

Ein NETCONF-Server enthält einen oder mehrere Konfigurationsdatenspeicher. Ein Konfigurationsdatenspeicher ist ein Datenspeicher, der alle erforderlichen Konfigurationsdaten enthält, um ein Gerät aus seinem Standardzustand in einen konfigurierten Betriebszustand zu versetzen. Ein NETCONF-Datenspeicher ist ein Ort, an dem Konfigurationsinformationen gespeichert und abgerufen werden können. Dieser kann beispielsweise eine Datenbank, eine Reihe von Dateien oder ein Speicherort im Flash-Speicher sein, aber auch eine beliebige Kombination davon.

Abbildung 1: Diagramm zur Veranschaulichung der Funktionsweise des Netzwerkkonfigurationsprotokolls (NETCONF).
Abbildung 1: Diagramm zur Veranschaulichung der Funktionsweise des Netzwerkkonfigurationsprotokolls (NETCONF).

Das NETCONF-Protokoll ermöglicht eine sichere RPC-Kommunikation zwischen Client und Server und stellt einen standardbasierten Ansatz zur Verwaltung von Netzwerkgeräten bereit. Es lässt sich in vier Schichten unterteilen:

  • Sichere Transportschicht (Secure Transport Layer): Die erste Schicht stellt den zentralen Kommunikationspfad zwischen Client und Server bereit. NETCONF ist nicht an ein bestimmtes Transportprotokoll gebunden, sondern kann über jedes Transportprotokoll gelegt werden, einschließlich Transport Layer Security (TLS) und Secure Shell (SSH). Das verwendete Protokoll muss jedoch die erforderlichen Funktionen bereitstellen. Über die Transportschicht wird die Kommunikation zwischen Client und Server mittels einer Reihe von RPC-Nachrichten ermöglicht. In der Praxis ist SSH (RFC 6242) mandatory-to-implement; TLS (RFC 7589) ist weit verbreitet.
  • Nachrichtenschicht (Messages Layer): Die zweite Schicht stellt einen transportunabhängigen Framing-Mechanismus zum Codieren von RPCs und Benachrichtigungen bereit. NETCONF verwendet ein RPC-basiertes Kommunikationsmodell, um das erforderliche Framing für die Unterstützung von Anfragen und Antworten zwischen Client und Server bereitzustellen. In der Dokumentation der Nachrichtenschicht konzentriert sich RFC 6241 vorwiegend auf die RPC-Kommunikation, während Benachrichtigungen in RFC 5277 dokumentiert sind.
  • Operationsschicht (Operations Layer): Die dritte Schicht definiert eine kleine Gruppe von Low-Level-Basisoperationen zum Abrufen von Informationen und Verwalten von Konfigurationen. Die Gruppe umfasst Operationen wie beispielsweise <get-config> oder <edit-config>. Diese Operationen werden als RPC-Methoden mit XML-codierten Parametern aufgerufen, die als untergeordnete Elemente der RPC-Elemente übergeben werden.
  • Inhaltsschicht (Content Layer): Die oberste Schicht befasst sich mit Konfigurations- und Benachrichtigungsdaten, liegt jedoch außerhalb des Geltungsbereichs von RFC 6241 und stützt sich stattdessen auf das geräteeigene Datenmodell. NETCONF überträgt die Konfigurationsinformationen des Modells innerhalb des Elements config, behandelt sie jedoch als undurchsichtige Daten. Die Datenmodellierungssprache YANG (RFC 7950) wurde für die Spezifizierung von NETCONF-Datenmodellen und -Protokolloperationen entwickelt.

Wenn ein Client mit einem Server kommuniziert, sendet er eine oder mehrere RPC-Anforderungsnachrichten an diesen. Der Server antwortet mit eigenen RPC-Antwortnachrichten. Die beiden XML-Elemente, die für die RPC-Kommunikation am häufigsten verwendet werden, sind <rpc> und <rpc-reply>. Das Element RPC umschließt eine vom Client an den Server gesendete Anforderung. Die Anforderungsinformationen innerhalb dieses Elements umfassen den Namen des RPC und seine Parameter. Das Element <rpc-reply> wird verwendet, um auf <rpc>-Nachrichten zu antworten. Alle Antwortdaten werden innerhalb dieses Elements codiert.

NETCONF-Basisoperationen

Das NETCONF-Protokoll unterstützt eine Reihe von Low-Level-Operationen zum Abrufen und Verwalten von Gerätekonfigurationsinformationen. Diese Operationen werden durch XML-Elemente spezifiziert, die nachfolgend beschrieben sind. NETCONF unterstützt auch zusätzliche Operationen, die auf den Fähigkeiten der einzelnen Geräte basieren.

  • <get>. Diese Operation ruft alle oder einen Teil der Informationen über die laufende Konfiguration und den Gerätestatus ab.
  • <get-config>: Ruft alle oder einen Teil der Konfigurationsinformationen ab, die in einem bestimmten Konfigurationsdatenspeicher verfügbar sind.
  • <edit-config>. Übermittelt eine Konfiguration oder einen Teil davon an einen Zielkonfigurationsdatenspeicher.
  • <copy-config>. Erstellt einen Zielkonfigurationsdatenspeicher oder ersetzt dessen Informationen durch die aus einem anderen Konfigurationsdatenspeicher.
  • <delete-config>. Löscht einen Zielkonfigurationsdatenspeicher, jedoch nur, wenn dieser nicht ausgeführt wird.
  • <lock>. Sperrt einen Zielkonfigurationsdatenspeicher, sofern nicht bereits eine Sperre für einen Teil dieses Datenspeichers besteht.
  • <unlock>. Hebt eine Sperre für einen Konfigurationsdatenspeicher auf, der zuvor durch einen Lock-Vorgang gesperrt wurde.
  • <close-session>. Fordert den NETCONF-Server dazu auf, eine geöffnete Sitzung ordnungsgemäß zu beenden.
  • <kill-session>. Erzwingt die Beendigung einer Sitzung, wodurch aktuelle Vorgänge abgebrochen werden.

Sowohl das Element <get> als auch das Element <get-config> unterstützen die Verwendung von <filter> als untergeordnetes Element. Bei Verwendung mit dem Element <get> ruft das Element <filter> den angegebenen Teil der Systemkonfigurations- und Statusdaten ab. Enthält das Element <get> kein Element <filter>, gibt es alle Gerätezustands- und Konfigurationsinformationen zurück. Bei Verwendung mit dem Element <get-config> ruft das Element <filter> den angegebenen Teil der Gerätekonfigurationsinformationen ab. Enthält das Element <get-config> kein Element <filter>, gibt es alle Gerätekonfigurationsdaten zurück.

Dieser Artikel wurde im September 2025 aktualisiert und erweitert.

Erfahren Sie mehr über LAN-Design und Netzwerkbetrieb