SlideShare une entreprise Scribd logo
NETCONF & YANG
M. ANTITENE
Laboratoire Informatique Paris VI (LIP6)
Motivations
 Un protocole pour le management du réseau
 Séparer entre un état de configuration et un état opérationnel
 Assurer la persistance des configurations
 Notifications, dump and restore
Configuration Management Protocol
 SNMP
Largement utilisé, monitoring
Complexité de la gestion des configurations
 NETCONF
XML-based encoding protocol
Mécanisme RPC
Sécurisé (SSH, SSL …)
Utilise un modèle pour structurer les données (YANG)
Configuration Management Protocol
Description SNMP NETCONF
Config vs operationnel state - +
Multiple Configs - +
Persistance of config state ° +
Configs change & Notification Events - +
Config dump & restore - +
Support of standard tools - +
NETCONF
 Protocole en couches
Couches Exemple
Content
Operations
RPC
Transport Protocol
Configuration Data
<get-config>, <edit-
config>
<rpc>, <rpc-reply>
BEEP, SSH, SSL,
console
NETCONF Transport
 Messages encodé en XML
 Messages crypté en SSH
Netconf over SSH, SOAP, BEEP
Authentification, intégrité et confidentialité
 Orienté connexion TCP
Plusieurs ports TCP sont définit : 830, 831, 832, 833, 6513 / tcp
<?xml version="1.0" encoding="UTF-8"?>
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<capabilities>
<capability>urn:ietf:params:netconf:base:1.0</capability>
</capabilities>
</hello>]]>]]>
NETCONF RPC Model
 Les méthodes RPC sont insérées dans le corps d’un message XML
 RPC Elements:
<rpc message-id="101"
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<some-method>
<!-- method parameters here... -->
</some-method>
</rpc>
<rpr-reply>
<rpc-reply message-id="101"
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0«
xmlns:ex="http://example.net/content/1.0" ex:user-id="fred">
<data>
<!-- contents here... -->
</data>
</rpc-reply>
<rpr-error>
<rpc-reply
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<rpc-error>
<error-type>rpc</error-type>
<error-tag>missing-attribute</error-tag>
<error-severity>error</error-severity>
<error-info>
<bad-attribute>message-id</bad-attribute>
<bad-element>rpc</bad-element>
</error-info>
</rpc-error>
</rpc-reply>
<ok Element>
<rpc-reply message-id="101"
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<ok/>
</rpc-reply>
NETCONF Configuration Data Store
 Etats du système
 Définit par des Capabilities
:running, :startup, :candidate, :writable-running
Informe sur les capacités supportées par la database
Startup
Running
Candidate
NETCONF Configuration Data Store
 <running/>
Représente l’état active des configurations actuelles
Permet à cette base de donnée d’être directement modifée
Contient les informations sur l’état de l’équipement
 <candidate/>
Regroupe les configurations à appliquer après qu’elle soient validé par le serveur
Les changements fait sur cette BDD ne s’applique pas immédiatement
Utilisation d’opérations: <lock>, <commit> pour validation
 <Startup/>
Représente les Configs à appliquer lors du prochain redémarrage
Opération <copy-config> pour copier la dernière sauvegarde de config
NETCONF Base Operations
Opérations Description
get Récupérer les infos de configs à partir de la running database ou des
statistiques
get-config Récupérer les infos de configs à partir de la running database
edit-config Modifier les configurations dans la database
copy-config Copier les configurations
delete-config Supprimer les configurations
commit Commit du contenu de la config de <candidate/> ver <running/>
database
lock Bloquer l’écriture sur la database par d’autres sessions
unlock Débloquer l’écriture sur la database par d’autres sessions
validate Valider tout le contenu de la database
close-session Fermer la session active
kill-session Fermer d’autres sessions
NETCONF Base Operations
 Before Editing: Quelle database utilisé ?
 Options de sauvegarde
if ':candidate' capability supported:
target = <candidate/>
else if ':writable-running' capability supported:
target = <running/>
else if ':url' capability supported:
target = <url>file://path/to/file</url>
else:
target = None # Server is non-complaint
if ':startup' capability supported:
save_fn = <copy-config>
<target><startup/></target>
<source><running/></source>
</copy-config>
Else
save_fn = None # automatic NV-update
Candidate Configuration Example
<rpc message-id="101"
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<lock>
<target><running/></target>
</lock>
</rpc>
# server returns <ok/> status
<rpc message-id="102"
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<lock>
<target><candidate/></target>
</lock>
</rpc> # server returns <ok/> status
<rpc message-id="103"
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
<edit-config>
<target><candidate/></target>
<default-operation>none</default-operation>
<test-option>test-then-set</test-option>
<config>
<interface xmlns= " urn:ietf:params:xml:ns:yang:ietf-interfaces "
<name>eth1</name>
<ipv4-address>192.168.1.3</ipv4-address>
<macaddr>ab:cd:ef:gh:ij:kl</macaddr>
</config>
</edit-config>
</rpc> # server returns <ok/> status
#Commit then Unlock Candidate and Running DataBase
L’ensemble des RPC à exécuter:
1. lock <running/> database
2. lock <candidate/> database
3. edit <candidate/> database
4. commit <candidate/> database
5. unlock <candidate/> database
6. unlock <running/> database
NETCONF Base Operations
YANG
 Langage pour la modélisation des données
 Utilisé par NETCONF (couche content)
• Configuration data
• State data
 Description hiérarchique des données
 Interaction entre les modules et sous-modules
• Include
• import
Module 1
Submodule A
Module 2
Submodule ZSubmodule YSubmodule X
Include
import
Modules & Submodules
Header Information
Imports & Includes
Type definition
Config, operational data declaration
RPC, notification declaration
YANG Module Content
Data Modeling
 Data nodes:
 leaf, leaf-list, container, list
 Yang data types :
 Base types : Int8/16/32/64, uint8/6/32/64, string, enumeration, boolean …
 Derived types (typedef), reusable nodes (grouping) …
container system {
list user {
key name;
leaf name {
type string;
}
leaf uid {
type uint32;
}
leaf full-name {
tyoe string;
}
leaf hostname{
type string;
mandatory true;
config true;
}
user
name uid full-name
hostname
system
YANG module example
module acme-system {
namespace "http://acme.example.com/system";
prefix "acme";
organization "ACME Inc.";
contact "joe@acme.example.com";
description
"The module for entities implementing the ACME system.";
revision 2007-11-05 {
description "Initial revision.";
}
container system {
leaf host-name {
type string;
description "Hostname for this system";
}
leaf-list domain-search {
type string;
description "List of domain names to search";
}
list interface {
key "name";
description "List of interfaces in the system";
leaf name {
type string;
}
leaf type {
type string;
}
leaf mtu {
type int32;
}
}
}
}
Netconf et Yang

Contenu connexe

Tendances

Linux Kernel Crashdump
Linux Kernel CrashdumpLinux Kernel Crashdump
Linux Kernel Crashdump
Marian Marinov
 
Accelerated Linux Core Dump Analysis training public slides
Accelerated Linux Core Dump Analysis training public slidesAccelerated Linux Core Dump Analysis training public slides
Accelerated Linux Core Dump Analysis training public slides
Dmitry Vostokov
 
Getting started with YANG
Getting started with YANGGetting started with YANG
Getting started with YANG
CoreStack
 
The basic concept of Linux FIleSystem
The basic concept of Linux FIleSystemThe basic concept of Linux FIleSystem
The basic concept of Linux FIleSystem
HungWei Chiu
 
Building IAM for OpenStack
Building IAM for OpenStackBuilding IAM for OpenStack
Building IAM for OpenStack
Steve Martinelli
 
Introduction to systemd
Introduction to systemdIntroduction to systemd
Introduction to systemd
Yusaku OGAWA
 
BPF Internals (eBPF)
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)
Brendan Gregg
 
A Deep Dive into macOS MDM (and How it can be Compromised)
A Deep Dive into macOS MDM (and How it can be Compromised)A Deep Dive into macOS MDM (and How it can be Compromised)
A Deep Dive into macOS MDM (and How it can be Compromised)
Priyanka Aash
 
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi SubsystemTutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Dheryta Jaisinghani
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux Kernel
Thomas Graf
 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVM
Pradeep Kumar
 
Powershell Demo Presentation
Powershell Demo PresentationPowershell Demo Presentation
Powershell Demo Presentation
Avik Bhattacharyya
 
Lesson 2 Understanding Linux File System
Lesson 2 Understanding Linux File SystemLesson 2 Understanding Linux File System
Lesson 2 Understanding Linux File System
Sadia Bashir
 
RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)
skalaivanibutp
 
Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and Analysis
Paul V. Novarese
 
Docker advance topic
Docker advance topicDocker advance topic
Docker advance topic
Kalkey
 
Introduction to the new MediaTek LinkIt™ Development Platform for RTOS
Introduction to the new MediaTek LinkIt™ Development Platform for RTOSIntroduction to the new MediaTek LinkIt™ Development Platform for RTOS
Introduction to the new MediaTek LinkIt™ Development Platform for RTOS
MediaTek Labs
 
SLSA - An End-to-End Framework for Supply Chain Integrity
SLSA - An End-to-End Framework for Supply Chain IntegritySLSA - An End-to-End Framework for Supply Chain Integrity
SLSA - An End-to-End Framework for Supply Chain Integrity
Sakha Global
 
Cfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF SuperpowersCfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF Superpowers
Raphaël PINSON
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and more
Brendan Gregg
 

Tendances (20)

Linux Kernel Crashdump
Linux Kernel CrashdumpLinux Kernel Crashdump
Linux Kernel Crashdump
 
Accelerated Linux Core Dump Analysis training public slides
Accelerated Linux Core Dump Analysis training public slidesAccelerated Linux Core Dump Analysis training public slides
Accelerated Linux Core Dump Analysis training public slides
 
Getting started with YANG
Getting started with YANGGetting started with YANG
Getting started with YANG
 
The basic concept of Linux FIleSystem
The basic concept of Linux FIleSystemThe basic concept of Linux FIleSystem
The basic concept of Linux FIleSystem
 
Building IAM for OpenStack
Building IAM for OpenStackBuilding IAM for OpenStack
Building IAM for OpenStack
 
Introduction to systemd
Introduction to systemdIntroduction to systemd
Introduction to systemd
 
BPF Internals (eBPF)
BPF Internals (eBPF)BPF Internals (eBPF)
BPF Internals (eBPF)
 
A Deep Dive into macOS MDM (and How it can be Compromised)
A Deep Dive into macOS MDM (and How it can be Compromised)A Deep Dive into macOS MDM (and How it can be Compromised)
A Deep Dive into macOS MDM (and How it can be Compromised)
 
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi SubsystemTutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
 
eBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux KerneleBPF - Rethinking the Linux Kernel
eBPF - Rethinking the Linux Kernel
 
Virtualization Architecture & KVM
Virtualization Architecture & KVMVirtualization Architecture & KVM
Virtualization Architecture & KVM
 
Powershell Demo Presentation
Powershell Demo PresentationPowershell Demo Presentation
Powershell Demo Presentation
 
Lesson 2 Understanding Linux File System
Lesson 2 Understanding Linux File SystemLesson 2 Understanding Linux File System
Lesson 2 Understanding Linux File System
 
RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)RPM (Red Hat Package Manager)
RPM (Red Hat Package Manager)
 
Linux Crash Dump Capture and Analysis
Linux Crash Dump Capture and AnalysisLinux Crash Dump Capture and Analysis
Linux Crash Dump Capture and Analysis
 
Docker advance topic
Docker advance topicDocker advance topic
Docker advance topic
 
Introduction to the new MediaTek LinkIt™ Development Platform for RTOS
Introduction to the new MediaTek LinkIt™ Development Platform for RTOSIntroduction to the new MediaTek LinkIt™ Development Platform for RTOS
Introduction to the new MediaTek LinkIt™ Development Platform for RTOS
 
SLSA - An End-to-End Framework for Supply Chain Integrity
SLSA - An End-to-End Framework for Supply Chain IntegritySLSA - An End-to-End Framework for Supply Chain Integrity
SLSA - An End-to-End Framework for Supply Chain Integrity
 
Cfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF SuperpowersCfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF Superpowers
 
BPF: Tracing and more
BPF: Tracing and moreBPF: Tracing and more
BPF: Tracing and more
 

En vedette

NETCONF YANG tutorial
NETCONF YANG tutorialNETCONF YANG tutorial
NETCONF YANG tutorial
Tail-f Systems
 
Open source policy open daylight and opflex
Open source policy  open daylight and opflexOpen source policy  open daylight and opflex
Open source policy open daylight and opflex
belaire11
 
Non-Fluff Software Defined Networking, Network Function Virtualization and IoT
Non-Fluff Software Defined Networking, Network Function Virtualization and IoTNon-Fluff Software Defined Networking, Network Function Virtualization and IoT
Non-Fluff Software Defined Networking, Network Function Virtualization and IoT
Mark Ryan Castellani
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
Kentaro Ebisawa
 
Open Source and Cloud: Change Through Collaboration
Open Source and Cloud: Change Through CollaborationOpen Source and Cloud: Change Through Collaboration
Open Source and Cloud: Change Through Collaboration
OPNFV
 
Deploying OpenStack with Cisco Networking, Compute and Storage
Deploying OpenStack with Cisco Networking, Compute and StorageDeploying OpenStack with Cisco Networking, Compute and Storage
Deploying OpenStack with Cisco Networking, Compute and Storage
Lora O'Haver
 
Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2
Tail-f Systems
 
Module 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG ConceptsModule 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG Concepts
Tail-f Systems
 
Module 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANGModule 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANG
Tail-f Systems
 
Introduction to SDN and NFV
Introduction to SDN and NFVIntroduction to SDN and NFV
Introduction to SDN and NFV
CoreStack
 
Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1
Tail-f Systems
 
SDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center NetworkingSDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center Networking
Thomas Graf
 
NFV management and orchestration framework architecture
NFV management and orchestration framework architectureNFV management and orchestration framework architecture
NFV management and orchestration framework architecture
sidneel
 
NFV for beginners
NFV for beginnersNFV for beginners
NFV for beginners
Dave Neary
 
SDN and NFV: Friends or Enemies
SDN and NFV: Friends or EnemiesSDN and NFV: Friends or Enemies
SDN and NFV: Friends or Enemies
Justyna Bak
 
Agile OpenStack Networking with Cisco Solutions
Agile OpenStack Networking with Cisco SolutionsAgile OpenStack Networking with Cisco Solutions
Agile OpenStack Networking with Cisco Solutions
Cisco DevNet
 
NFV : Virtual Network Function Architecture
NFV : Virtual Network Function ArchitectureNFV : Virtual Network Function Architecture
NFV : Virtual Network Function Architecture
sidneel
 
Introduction to SDN and NFV
Introduction to SDN and NFVIntroduction to SDN and NFV
Introduction to SDN and NFV
Basim Aly (JNCIP-SP, JNCIP-ENT)
 
SDN & NFV Introduction (SDN NFV Day ITB 2016)
SDN & NFV Introduction (SDN NFV Day ITB 2016)SDN & NFV Introduction (SDN NFV Day ITB 2016)
SDN & NFV Introduction (SDN NFV Day ITB 2016)
SDNRG ITB
 
Introduction to OpenFlow, SDN and NFV
Introduction to OpenFlow, SDN and NFVIntroduction to OpenFlow, SDN and NFV
Introduction to OpenFlow, SDN and NFV
Kingston Smiler
 

En vedette (20)

NETCONF YANG tutorial
NETCONF YANG tutorialNETCONF YANG tutorial
NETCONF YANG tutorial
 
Open source policy open daylight and opflex
Open source policy  open daylight and opflexOpen source policy  open daylight and opflex
Open source policy open daylight and opflex
 
Non-Fluff Software Defined Networking, Network Function Virtualization and IoT
Non-Fluff Software Defined Networking, Network Function Virtualization and IoTNon-Fluff Software Defined Networking, Network Function Virtualization and IoT
Non-Fluff Software Defined Networking, Network Function Virtualization and IoT
 
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)ネットワーク機器のAPIあれこれ入門(NetOpsCoding#2)
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
 
Open Source and Cloud: Change Through Collaboration
Open Source and Cloud: Change Through CollaborationOpen Source and Cloud: Change Through Collaboration
Open Source and Cloud: Change Through Collaboration
 
Deploying OpenStack with Cisco Networking, Compute and Storage
Deploying OpenStack with Cisco Networking, Compute and StorageDeploying OpenStack with Cisco Networking, Compute and Storage
Deploying OpenStack with Cisco Networking, Compute and Storage
 
Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2Module 6: YANG Tutorial - part 2
Module 6: YANG Tutorial - part 2
 
Module 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG ConceptsModule 3: NETCONF and YANG Concepts
Module 3: NETCONF and YANG Concepts
 
Module 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANGModule 2: Why NETCONF and YANG
Module 2: Why NETCONF and YANG
 
Introduction to SDN and NFV
Introduction to SDN and NFVIntroduction to SDN and NFV
Introduction to SDN and NFV
 
Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1Module 5: YANG Tutorial - part 1
Module 5: YANG Tutorial - part 1
 
SDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center NetworkingSDN & NFV Introduction - Open Source Data Center Networking
SDN & NFV Introduction - Open Source Data Center Networking
 
NFV management and orchestration framework architecture
NFV management and orchestration framework architectureNFV management and orchestration framework architecture
NFV management and orchestration framework architecture
 
NFV for beginners
NFV for beginnersNFV for beginners
NFV for beginners
 
SDN and NFV: Friends or Enemies
SDN and NFV: Friends or EnemiesSDN and NFV: Friends or Enemies
SDN and NFV: Friends or Enemies
 
Agile OpenStack Networking with Cisco Solutions
Agile OpenStack Networking with Cisco SolutionsAgile OpenStack Networking with Cisco Solutions
Agile OpenStack Networking with Cisco Solutions
 
NFV : Virtual Network Function Architecture
NFV : Virtual Network Function ArchitectureNFV : Virtual Network Function Architecture
NFV : Virtual Network Function Architecture
 
Introduction to SDN and NFV
Introduction to SDN and NFVIntroduction to SDN and NFV
Introduction to SDN and NFV
 
SDN & NFV Introduction (SDN NFV Day ITB 2016)
SDN & NFV Introduction (SDN NFV Day ITB 2016)SDN & NFV Introduction (SDN NFV Day ITB 2016)
SDN & NFV Introduction (SDN NFV Day ITB 2016)
 
Introduction to OpenFlow, SDN and NFV
Introduction to OpenFlow, SDN and NFVIntroduction to OpenFlow, SDN and NFV
Introduction to OpenFlow, SDN and NFV
 

Similaire à Netconf et Yang

RUDDER - Continuous Configuration (configuration management + continuous audi...
RUDDER - Continuous Configuration (configuration management + continuous audi...RUDDER - Continuous Configuration (configuration management + continuous audi...
RUDDER - Continuous Configuration (configuration management + continuous audi...
RUDDER
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
Korteby Farouk
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
PALO IT
 
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.xAlphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
Alphorm
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
Abdoulaye Dieng
 
Composants routeur cisco et différent mode de Configuration
Composants routeur cisco et différent mode de ConfigurationComposants routeur cisco et différent mode de Configuration
Composants routeur cisco et différent mode de Configuration
ZakariaBouzzitMadrid
 
laboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .pptlaboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .ppt
profsn
 
TP2_dhcp_linux-ubuntu-2023.pdf
TP2_dhcp_linux-ubuntu-2023.pdfTP2_dhcp_linux-ubuntu-2023.pdf
TP2_dhcp_linux-ubuntu-2023.pdf
aymanmikh7
 
Présentation de ISP 7.1 (ex TSM)
Présentation de ISP 7.1 (ex TSM)Présentation de ISP 7.1 (ex TSM)
Présentation de ISP 7.1 (ex TSM)
Hans Ulrick NZAMBA KASSA
 
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...Patrick Guimonet
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réelles
Geoffroy Arnoud
 
Alphorm.com Formation Palo Alto : Firewall Troubleshooting
Alphorm.com Formation Palo Alto : Firewall TroubleshootingAlphorm.com Formation Palo Alto : Firewall Troubleshooting
Alphorm.com Formation Palo Alto : Firewall Troubleshooting
Alphorm
 
Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...
Olivier DASINI
 
JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)
Fourat Zouari
 
1 installation-exchange
1 installation-exchange1 installation-exchange
1 installation-exchange
loucif abidi
 
Techdays 2009 - Active Directory Domain Services : bonnes pratiques et princi...
Techdays 2009 - Active Directory Domain Services : bonnes pratiques et princi...Techdays 2009 - Active Directory Domain Services : bonnes pratiques et princi...
Techdays 2009 - Active Directory Domain Services : bonnes pratiques et princi...
fabricemeillon
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
Korteby Farouk
 
Chapitre2-startup.pdf
Chapitre2-startup.pdfChapitre2-startup.pdf
Chapitre2-startup.pdf
BoudarraWalid
 
Les commandes CISCO (routeur)
Les commandes CISCO (routeur)Les commandes CISCO (routeur)
Les commandes CISCO (routeur)
EL AMRI El Hassan
 

Similaire à Netconf et Yang (20)

RUDDER - Continuous Configuration (configuration management + continuous audi...
RUDDER - Continuous Configuration (configuration management + continuous audi...RUDDER - Continuous Configuration (configuration management + continuous audi...
RUDDER - Continuous Configuration (configuration management + continuous audi...
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
 
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.xAlphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
Alphorm.com Formation Certification NSE4 - Fortinet Fortigate Infrastructure 6.x
 
php2 : formulaire-session-PDO
php2 : formulaire-session-PDOphp2 : formulaire-session-PDO
php2 : formulaire-session-PDO
 
Composants routeur cisco et différent mode de Configuration
Composants routeur cisco et différent mode de ConfigurationComposants routeur cisco et différent mode de Configuration
Composants routeur cisco et différent mode de Configuration
 
laboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .pptlaboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .ppt
 
TP2_dhcp_linux-ubuntu-2023.pdf
TP2_dhcp_linux-ubuntu-2023.pdfTP2_dhcp_linux-ubuntu-2023.pdf
TP2_dhcp_linux-ubuntu-2023.pdf
 
Présentation de ISP 7.1 (ex TSM)
Présentation de ISP 7.1 (ex TSM)Présentation de ISP 7.1 (ex TSM)
Présentation de ISP 7.1 (ex TSM)
 
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réelles
 
Alphorm.com Formation Palo Alto : Firewall Troubleshooting
Alphorm.com Formation Palo Alto : Firewall TroubleshootingAlphorm.com Formation Palo Alto : Firewall Troubleshooting
Alphorm.com Formation Palo Alto : Firewall Troubleshooting
 
Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...
 
JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)JBoss clustering et tuning (lab 3/3)
JBoss clustering et tuning (lab 3/3)
 
Jdbc
JdbcJdbc
Jdbc
 
1 installation-exchange
1 installation-exchange1 installation-exchange
1 installation-exchange
 
Techdays 2009 - Active Directory Domain Services : bonnes pratiques et princi...
Techdays 2009 - Active Directory Domain Services : bonnes pratiques et princi...Techdays 2009 - Active Directory Domain Services : bonnes pratiques et princi...
Techdays 2009 - Active Directory Domain Services : bonnes pratiques et princi...
 
Les Servlets et JSP
Les Servlets et JSPLes Servlets et JSP
Les Servlets et JSP
 
Chapitre2-startup.pdf
Chapitre2-startup.pdfChapitre2-startup.pdf
Chapitre2-startup.pdf
 
Les commandes CISCO (routeur)
Les commandes CISCO (routeur)Les commandes CISCO (routeur)
Les commandes CISCO (routeur)
 

Netconf et Yang

  • 1. NETCONF & YANG M. ANTITENE Laboratoire Informatique Paris VI (LIP6)
  • 2. Motivations  Un protocole pour le management du réseau  Séparer entre un état de configuration et un état opérationnel  Assurer la persistance des configurations  Notifications, dump and restore
  • 3. Configuration Management Protocol  SNMP Largement utilisé, monitoring Complexité de la gestion des configurations  NETCONF XML-based encoding protocol Mécanisme RPC Sécurisé (SSH, SSL …) Utilise un modèle pour structurer les données (YANG)
  • 4. Configuration Management Protocol Description SNMP NETCONF Config vs operationnel state - + Multiple Configs - + Persistance of config state ° + Configs change & Notification Events - + Config dump & restore - + Support of standard tools - +
  • 5. NETCONF  Protocole en couches Couches Exemple Content Operations RPC Transport Protocol Configuration Data <get-config>, <edit- config> <rpc>, <rpc-reply> BEEP, SSH, SSL, console
  • 6. NETCONF Transport  Messages encodé en XML  Messages crypté en SSH Netconf over SSH, SOAP, BEEP Authentification, intégrité et confidentialité  Orienté connexion TCP Plusieurs ports TCP sont définit : 830, 831, 832, 833, 6513 / tcp <?xml version="1.0" encoding="UTF-8"?> <hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <capabilities> <capability>urn:ietf:params:netconf:base:1.0</capability> </capabilities> </hello>]]>]]>
  • 7. NETCONF RPC Model  Les méthodes RPC sont insérées dans le corps d’un message XML  RPC Elements: <rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <some-method> <!-- method parameters here... --> </some-method> </rpc> <rpr-reply> <rpc-reply message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0« xmlns:ex="http://example.net/content/1.0" ex:user-id="fred"> <data> <!-- contents here... --> </data> </rpc-reply> <rpr-error> <rpc-reply xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <rpc-error> <error-type>rpc</error-type> <error-tag>missing-attribute</error-tag> <error-severity>error</error-severity> <error-info> <bad-attribute>message-id</bad-attribute> <bad-element>rpc</bad-element> </error-info> </rpc-error> </rpc-reply> <ok Element> <rpc-reply message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <ok/> </rpc-reply>
  • 8. NETCONF Configuration Data Store  Etats du système  Définit par des Capabilities :running, :startup, :candidate, :writable-running Informe sur les capacités supportées par la database Startup Running Candidate
  • 9. NETCONF Configuration Data Store  <running/> Représente l’état active des configurations actuelles Permet à cette base de donnée d’être directement modifée Contient les informations sur l’état de l’équipement  <candidate/> Regroupe les configurations à appliquer après qu’elle soient validé par le serveur Les changements fait sur cette BDD ne s’applique pas immédiatement Utilisation d’opérations: <lock>, <commit> pour validation  <Startup/> Représente les Configs à appliquer lors du prochain redémarrage Opération <copy-config> pour copier la dernière sauvegarde de config
  • 10. NETCONF Base Operations Opérations Description get Récupérer les infos de configs à partir de la running database ou des statistiques get-config Récupérer les infos de configs à partir de la running database edit-config Modifier les configurations dans la database copy-config Copier les configurations delete-config Supprimer les configurations commit Commit du contenu de la config de <candidate/> ver <running/> database lock Bloquer l’écriture sur la database par d’autres sessions unlock Débloquer l’écriture sur la database par d’autres sessions validate Valider tout le contenu de la database close-session Fermer la session active kill-session Fermer d’autres sessions
  • 11. NETCONF Base Operations  Before Editing: Quelle database utilisé ?  Options de sauvegarde if ':candidate' capability supported: target = <candidate/> else if ':writable-running' capability supported: target = <running/> else if ':url' capability supported: target = <url>file://path/to/file</url> else: target = None # Server is non-complaint if ':startup' capability supported: save_fn = <copy-config> <target><startup/></target> <source><running/></source> </copy-config> Else save_fn = None # automatic NV-update
  • 12. Candidate Configuration Example <rpc message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <lock> <target><running/></target> </lock> </rpc> # server returns <ok/> status <rpc message-id="102" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <lock> <target><candidate/></target> </lock> </rpc> # server returns <ok/> status <rpc message-id="103" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> <edit-config> <target><candidate/></target> <default-operation>none</default-operation> <test-option>test-then-set</test-option> <config> <interface xmlns= " urn:ietf:params:xml:ns:yang:ietf-interfaces " <name>eth1</name> <ipv4-address>192.168.1.3</ipv4-address> <macaddr>ab:cd:ef:gh:ij:kl</macaddr> </config> </edit-config> </rpc> # server returns <ok/> status #Commit then Unlock Candidate and Running DataBase L’ensemble des RPC à exécuter: 1. lock <running/> database 2. lock <candidate/> database 3. edit <candidate/> database 4. commit <candidate/> database 5. unlock <candidate/> database 6. unlock <running/> database NETCONF Base Operations
  • 13. YANG  Langage pour la modélisation des données  Utilisé par NETCONF (couche content) • Configuration data • State data  Description hiérarchique des données  Interaction entre les modules et sous-modules • Include • import Module 1 Submodule A Module 2 Submodule ZSubmodule YSubmodule X Include import
  • 14. Modules & Submodules Header Information Imports & Includes Type definition Config, operational data declaration RPC, notification declaration YANG Module Content
  • 15. Data Modeling  Data nodes:  leaf, leaf-list, container, list  Yang data types :  Base types : Int8/16/32/64, uint8/6/32/64, string, enumeration, boolean …  Derived types (typedef), reusable nodes (grouping) … container system { list user { key name; leaf name { type string; } leaf uid { type uint32; } leaf full-name { tyoe string; } leaf hostname{ type string; mandatory true; config true; } user name uid full-name hostname system
  • 16. YANG module example module acme-system { namespace "http://acme.example.com/system"; prefix "acme"; organization "ACME Inc."; contact "joe@acme.example.com"; description "The module for entities implementing the ACME system."; revision 2007-11-05 { description "Initial revision."; } container system { leaf host-name { type string; description "Hostname for this system"; } leaf-list domain-search { type string; description "List of domain names to search"; } list interface { key "name"; description "List of interfaces in the system"; leaf name { type string; } leaf type { type string; } leaf mtu { type int32; } } } }