Radek Krej í
[email protected]
NETCONF a YANG . . . pohledem v˝vojá e
Internet a Technologie 13.2
YANG
YANG tools
Osnova
NETCONF
1
YANG
2
YANG tools
3
NETCONF
4
Capabilities
5
NETCONF tools
6
libnetconf
7
Netopeer
Radek Krej í
Capabilities
NETCONF tools
NETCONF a YANG pohledem v˝vojá e
libnetconf
30. 11. 2013, Praha
Netopeer
1 / 27
YANG
YANG tools
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
Modelovací jazyk YANG Opakování z IT 13.1
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
2 / 27
YANG
YANG tools
Jazyk YANG
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
„Yet Another Next Generation“ modeling language (RFC 6020) XML encoding (JSON) konfigura ní vs. stavová data data vs. NETCONF operace (a notifikace) p ehlednost a itelnost (pro lov ka) rozöi itelnost Guidelines for Authors of YANG Data Models (RFC 6087)
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
3 / 27
YANG
YANG tools
Jazyk YANG
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
„Yet Another Next Generation“ modeling language (RFC 6020) XML encoding (JSON) konfigura ní vs. stavová data data vs. NETCONF operace (a notifikace) p ehlednost a itelnost (pro lov ka) rozöi itelnost Guidelines for Authors of YANG Data Models (RFC 6087) Základní datové modely hlavní systémové parametry ( as, DNS resolver, uûivatelé) sí ová rozhraní v etn konfigurace IP sm rování SNMP Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
3 / 27
YANG
YANG tools
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
Nástroje pro práci s jazykem YANG Co m ûu pouûít, kdyû musím pracovat s YANGem?
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
4 / 27
YANG
YANG tools
YANG editory
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
Zv˝razn ní syntaxe pro Vim, Emacs
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
5 / 27
YANG
YANG tools
YANG editory
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
Zv˝razn ní syntaxe pro Vim, Emacs komer ní produkty MasterYANG (SegueSoft) Visual YANG Designer (MG-SOFT) ...
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
5 / 27
YANG
YANG tools
NETCONF
Capabilities
Validace a transformace I
NETCONF tools
libnetconf
Netopeer
pyang pyang.googlecode.com
YANG generátor/transformátor/validátor Moûnost tvorby vlastních v˝stupních plugin TreeOutput: module: ietf-system +--rw system +--rw contact? string +--rw name? string +--rw location? string +--ro platform | +--ro os-name? string | +--ro os-release? string | +--ro os-version? string | +--ro machine? string | +--ro nodename? string +--rw clock | +--ro current-datetime? | +--ro boot-datetime? Radek Krej í
yang:date-and-time yang:date-and-time
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
6 / 27
YANG
YANG tools
NETCONF
Capabilities
Validace a transformace II
NETCONF tools
libnetconf
Netopeer
yangbuilder p evod z Groovy do YANGu bitbucket.org/novakmi/yangbuilder
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
7 / 27
YANG
YANG tools
Knihovny
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
Java YANG Tools (sou ást OpenDaylight) C/C++
Python (pyang)
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
8 / 27
YANG
YANG tools
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
Protokol NETCONF Opakování z IT 13.1
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
9 / 27
YANG
YANG tools
NETCONF
Protokol NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
Konfigura ní protokol typu klient-server. (RFC 6241) Rozöi itelná sada operací.
XML encoded
Obsah definován pomocí datov˝ch model (YANG) a uchováván v úloûiötích (datastores) Obsah Operace Zprávy Transport Radek Krej í
konfigura ní a stavová data manipulace s úloûiöti a konfigura ními daty vrstva RPC (poûadavky/odpov di) SSH (RFC 6242) nebo TLS (RFC 5539) NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
10 / 27
YANG
YANG tools
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
Rozöí ení protokolu NETCONF NETCONF Capabilities
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
11 / 27
YANG
YANG tools
NETCONF
Notifikace
server
klient
llo
>
> llo
NETCONF tools
libnetconf
Netopeer
asynchronní doru ování zpráv (RFC 5277) oznamování událostí
<rp
c>
ply -re
d lení událostí do jednotliv˝ch stream
>
real-time vs. historie
c <rp
on ati
ic tif <no
Radek Krej í
Capabilities
>
problém s ukon ením p íjmu notifikací
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
12 / 27
YANG
YANG tools
ízení p ístupu
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
RFC 6536 omezení p ístupu uûivatel k . . . operacím (RPC)
jednotliv˝m datov˝m element m notifikacím
samostatná práva pro . . . vytvá ení tení modifikace mazání provád ní
moûnost provázání se systémov˝mi uûivateli Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
13 / 27
YANG
YANG tools
Validace
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
kontrola konfigura ních dat po syntaktické
i sémantické stránce
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
14 / 27
YANG
YANG tools
Validace
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
kontrola konfigura ních dat po syntaktické
i sémantické stránce
problém s dostupností YANG parseru
v C lze obejít pomocí validace RelaxNG schématu v libxml2 a pouûitím Schematronu pomocí libxslt
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
14 / 27
YANG
YANG tools
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
Implementace protokolu NETCONF
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
15 / 27
YANG
YANG tools
NETCONF
NETCONF architektura
Capabilities
NETCONF tools
libnetconf
Netopeer
NETCONF server
uživatelské rozhraní NETCONF client
Radek Krej í
NETCONF ... NETCONF agent agent SSH Subsystem SSH
NETCONF a YANG pohledem v˝vojá e
SSH server
30. 11. 2013, Praha
16 / 27
YANG
YANG tools
NETCONF
Capabilities
NETCONF tools
libnetconf
Dostupné (open-source) implementace
Netopeer
libnetconf/Netopeer (C) – knihovna, server, klient ncclient (Python) – klient net-netconf (Ruby) – klient NetconfX (Java) – klient Yuma klony (C) – klient, server (OpenYuma, yuma123)
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
17 / 27
YANG
YANG tools
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
libnetconf Implementace protokolu NETCONF pro GNU/Linux libnetconf.googlecode.com
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
18 / 27
YANG
YANG tools
Motivace
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
„Nechme v˝vojá e pouûívat NETCONF, aniû by detailn znali jeho pravidla.“
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
19 / 27
YANG
YANG tools
Motivace
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
„Nechme v˝vojá e pouûívat NETCONF, aniû by detailn znali jeho pravidla.“ Pro management systém pot ebuji: odesílat/p ijímat konfigura ní data do/ze za ízení p ijímat notifikace
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
19 / 27
YANG
YANG tools
Motivace
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
„Nechme v˝vojá e pouûívat NETCONF, aniû by detailn znali jeho pravidla.“ Pro management systém pot ebuji: odesílat/p ijímat konfigura ní data do/ze za ízení p ijímat notifikace Pro správu za ízení pot ebuji: dostat data, podle kter˝ch mám za ízení nakonfigurovat mít moûnost oznamovat události
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
19 / 27
YANG
YANG tools
libnetconf
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
„Platforma pro v˝voj Network Management Systém a serverov˝ch za ízení a aplikací s podporou protokolu NETCONF.“
NETCONF server
uživatelské rozhraní NETCONF client
Radek Krej í
NETCONF ... NETCONF agent agent SSH Subsystem SSH
NETCONF a YANG pohledem v˝vojá e
SSH server
30. 11. 2013, Praha
20 / 27
YANG tools
NETCONF
libnetconf – klient
NMS UI
Radek Krej í
Capabilities
libnetconf
YANG
NETCONF tools
libnetconf
Netopeer
OpenSSH sí libssh2
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
21 / 27
YANG
YANG tools
NETCONF
libnetconf – server
Capabilities
NETCONF tools
libnetconf
Netopeer
agent ...
device manager
libnetconf
libnetconf
sí
SSH server
libnetconf
úložišt
agent SSH Subsystem
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
22 / 27
YANG
YANG tools
libnetconf
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
aktuáln verze 0.6 NETCONF v1.0 a v1.1 podpora validace, notifikací, ízení p ístupu a dalöích rozöí ení ov eno p i NETCONF Interoperability Testing v rámci IETF
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
23 / 27
YANG
YANG tools
NETCONF
Capabilities
NETCONF tools
libnetconf
Netopeer
Netopeer Sada aplikací s podporou protokolu NETCONF netopeer.googlecode.com
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
24 / 27
YANG
YANG tools
NETCONF
Netopeer aplikace I
Capabilities
NETCONF tools
libnetconf
Netopeer
netopeer-cli NETCONF klient z p íkazové ádky p vodn testovací klient libnetconfu snaha o maximální jednoduchost UI netopeer-server-sl testovací server libnetconfu funguje jako SSH Subsystem jednoduchost kódu – ukázka pouûití libnetconfu
Radek Krej í
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
25 / 27
YANG
YANG tools
NETCONF
Netopeer aplikace II
Capabilities
NETCONF tools
libnetconf
Netopeer
netopeer-server dosp l˝ NETCONF server aplikace pln vyuûívající libnetconf transAPI
agent
libnetconf netopeer-server libnetconf
libnetconf
SSH Subsystem
NETCONF a YANG pohledem v˝vojá e
...
transAPI modul
...
agent
Radek Krej í
úložišt
transAPI modul
sí
SSH server
libnetconf
30. 11. 2013, Praha
26 / 27
YANG
YANG tools
NETCONF
Capabilities
Netopeer aplikace III
NETCONF tools
libnetconf
Netopeer
netopeer-webGUI uûivatelsky p ív tiv˝ a univerzální NETCONF klient první ve ejná verze dostupná b hem následujících t˝dn Web GUI (PHP, Sympfony) Apache modul libnetconf libssh2 network
Radek Krej í
SSH server
SSH server
NETCONF server
NETCONF server
NETCONF a YANG pohledem v˝vojá e
30. 11. 2013, Praha
27 / 27
D kuji za pozornost
NETCONF a YANG . . . pohledem v˝vojá e
Radek Krej í
[email protected]
Internet a Technologie 13.2