Radek Krej í rkrejci@cesnet.cz NETCONF a YANG... pohledem v vojá e Internet a Technologie 13.2
Osnova 1 YANG 2 YANG tools 3 NETCONF 4 Capabilities 5 NETCONF tools 6 libnetconf 7 Netopeer Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 1 / 27
Modelovací jazyk YANG Opakování z IT 13.1 Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 2 / 27
Jazyk YANG 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
Jazyk YANG 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
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 editory Zv razn ní syntaxe pro Vim, Emacs Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 5 / 27
YANG editory 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
Validace a transformace I 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? yang:date-and-time +--ro boot-datetime? yang:date-and-time Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 6 / 27
Validace a transformace II 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
Knihovny Java C/C++ YANG Tools (sou ást OpenDaylight) Python (pyang) Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 8 / 27
Protokol NETCONF Opakování z IT 13.1 Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 9 / 27
Protokol NETCONF Konfigura ní protokol typu klient-server. (RFC 6241) Rozöi itelná sada operací. Obsah definován pomocí datov ch model (YANG) a uchováván v úloûiötích (datastores) XML encoded Obsah Operace Zprávy Transport 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) Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 10 / 27
Rozöí ení protokolu NETCONF NETCONF Capabilities Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 11 / 27
Notifikace klient server <hello> <hello> asynchronní doru ování zpráv (RFC 5277) oznamování událostí <rpc> <rpc-reply> <notification> d lení událostí do jednotliv ch stream real-time vs. historie problém s ukon ením p íjmu notifikací Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 12 / 27
ízení p ístupu 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
Validace 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
Validace 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
Implementace protokolu NETCONF Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 15 / 27
NETCONF architektura NETCONF server uživatelské rozhraní NETCONF client SSH NETCONF agent... SSH server NETCONF agent SSH Subsystem Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 16 / 27
Dostupné (open-source) implementace 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
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
Motivace Nechme v vojá e pouûívat NETCONF, aniû by detailn pravidla. znali jeho Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 19 / 27
Motivace Nechme v vojá e pouûívat NETCONF, aniû by detailn pravidla. znali jeho 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
Motivace Nechme v vojá e pouûívat NETCONF, aniû by detailn pravidla. znali jeho 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
libnetconf 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 SSH NETCONF agent... SSH server NETCONF agent SSH Subsystem Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 20 / 27
libnetconf klient NMS UI libnetconf OpenSSH libssh2 sí Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 21 / 27
libnetconf server libnetconf SSH server agent device sí... manager úložišt libnetconf libnetconf agent SSH Subsystem Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 22 / 27
libnetconf 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
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
Netopeer aplikace I 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
Netopeer aplikace III 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 SSH server NETCONF server network SSH server NETCONF server Radek Krej í NETCONF a YANG pohledem v vojá e 30. 11. 2013, Praha 27 / 27
D kuji za pozornost NETCONF a YANG... pohledem v vojá e Internet a Technologie 13.2 Radek Krej í rkrejci@cesnet.cz