More Related Content
Similar to PLNOG15: Yang - latin of XXI centaury - Sławomir Janukowicz (20)
PLNOG15: Yang - latin of XXI centaury - Sławomir Janukowicz
- 1. YANG - ŁACINA XXI WIEKU
Sławomir Janukowicz
sjanukowicz@juniper.net
- 2. 2 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Mamy angielski, francuski, niemiecki, chiński to po co nam
łacina
Kto za tą łaciną stoi
Jak się pisze po łacinie
Zalety łaciny
Kto to w chwili obecnej rozumie
O CZYM BĘDZIE
- 3. 3 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
PO CO NAM ŁACINA
- 4. 4 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
J
PO CO – PROTOKÓŁ KOMUNIKACYJNY
Język znakowy Pismo Mowa
Efektywna komunikacja wymaga jednolitego sposoby wymiany informacji
- 5. 5 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
PO CO – SAM PROTOKÓŁ TO ZA MAŁO
English
English
English
Français Deutsch Español
Français Deutsch Español
English English English
Français Deutsch Español
English Français
English Deutsch
English Español
ipv4-address
- 6. 6 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
KTO ZA ŁACINĄ STOI
- 7. 7 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Gramatyka, ortografia – RFC 6020 (październik 2010)
Dzieła:
IETF
Openconfig
Producenci sprzętu i oprogramowania
KTO ZA TYM STOI
- 8. 8 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Gramatyka, ortografia – RFC 6020 (październik 2010)
Dzieła:
IETF
Openconfig
Producenci sprzętu i oprogramowania
ZASADY JEZYKOWE
- 9. 9 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
YANG – składnia zbliżona do SMI (opisy MIBów) – czyli dla ludzi
YIN – składnia XML – czyli dla nieludzi
Możliwa bezstratna konwersja w obie strony
Nieludzie – komputery i oprogramowanie
YANG YIN
- 10. 10 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
IETF
RFC7223 – Maj 2014 - Interface Management
RFC7277 – Czerwiec 2014 – IP Management
RFC7317 – Sierpień 2014 – System Management
RFC7407 – Grudzień 2014 – SNMP Configuration
Nic od tego czasu nie powstało więcej
AUTORZY DZIEŁ
- 11. 11 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Google
AT&T
British Telecom
Microsoft
Facebook
Comcast
Verizon
Level3
Cox Communications
Yahoo!
Apple
Deutsche Telekom
AUTORZY DZIEŁ
Openconfig:
- 12. 12 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Openconfig
BGP
Interface
Routing statyczny
MPLS
Moduły optyczne
Polityki rutingu
VLAN
AUTORZY DZIEŁ
- 13. 13 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Producenci sprzętu
Juniper
Konfiguracja – dzieła zebrane
Pełny model konfiguracji urządzeń Juniper pracujących z
systemem od wersji 14.2
show system schema module module-name format yang
output-file-name filename
show system schema module configuration format yang
output-file-name /var/tmp/config.yang
AUTORZY DZIEŁ
- 14. 14 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
JAK SIĘ PISZĘ PO ŁACINIE
- 15. 15 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Kategoria Ograniczenia
Liczba całkowita Min Max
Liczba rzeczywista Min Max
Łańcuch Długość, wzorzec
Wyliczenie Obiekty
Bit
Referencje
ELEMENTY JĘZYKA
Typy danych
- 16. 16 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
typedef ipv4-address {
type string {
pattern ’(([0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5]).){3}’
+ ’([0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])’
+ ’(%[p{N}p{L}]+)?’;
}
}
Po % można wpisać:
Zone index
DEFINICJE TYPÓW
- 17. 17 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Leaf
Posiada wartość
Występuje tylko raz
Leaf-list
Posiada wartość
Występuje wielokrotnie
Container
Nie posiada wartości
Zawiera inne obiekty
Występuje raz
List
Nie posiada wartości
Zawiera inne obiekty
Występuje wiele razy
OBIEKTY
- 18. 18 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
leaf domain {
type inet:domain-name; // values are typed (type
imported)
mandatory true; // must exist in a valid configuration
config true; // part of the set of configuration objects
description
"The host name of this system.";
}
LEAF
- 19. 19 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
leaf-list search {
type inet:domain-name; // imported from the module with
prefix inet
ordered-by user; // maintain the order given by the user
description
"List of domain names to search.";
}
LEAF-LIST
- 20. 20 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
container system {
config true;
leaf hostname {
type inet:domain-name;
}
container resolver {
leaf domain { /* see above */ }
leaf-list search { /* see above */ }
description
"The configuration of the resolver library.";
}
}
CONTAINER
- 21. 21 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
list nameserver {
key address;
leaf address {
type inet:ip-address;
}
leaf status {
type enumeration {
enum enabled; enum disabled; enum failed;
}
}
}
LIST
- 22. 22 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Augment – rozszerzenie
When – definicja parametrów rozszerzających
Czuli jeśli port jest typu E1 to ma jakieś parametry których nie ma
port typu Ethernet
Must – definicja ograniczeń jakie musi zawierać poprawna
konfiguracja
AUGMENT, MUST, WHEN
- 23. 23 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
augment system/resolver {
container debug {
presence "enables debugging";
description
"This container enables debugging.";
leaf level {
type enumeration {
enum low;
enum medium;
enum full;
}
default "medium";
mandatory false;
description
"The debugging level; default is medium
debug information.";
}
}
}
AUGMENT
- 24. 24 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
augment system/resolver {
leaf access-timeout {
type uint32;
unit "seconds";
mandatory true;
description "Maximum time without
server response.";
}
leaf retry-timer {
type uint32;
units "seconds";
description "Period after which to retry
an operation";
must "$this < ../access-timeout" {
error-app-tag "retry-timer-invalid";
error-message "The retry timer must be
less "
+ "than the access timeout";
}
}
}
AUGMENT AND MUST
- 25. 25 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
augment system/resolver/nameserver {
when "status = enabled";
leaf tx {
type yang:counter32;
config false;
}
leaf rx {
type yang:counter32;
config false;
}
}
AUGMENT AND WHEN
- 26. 26 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
leaf-list next-hop {
type union {
type inet:ip-address;
type local-defined-next-hop;
type string;
//TODO: this should be a leafref pointing to a
configured
//interface, but YANG 1.0 does not support leafrefs in a
//union type. It should be updated when YANG 1.1 is
//released.
}
description
"Specify a set of next hops. Each entry may be an IP
address, interface, or a single pre-defined next-hop can
be
used, e.g., drop";
}
ŁACINA JEST ŻYWA
Moduł
static routes
zdefiniowany przez Openconfig
- 27. 27 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
ZALETY ŁACINY
- 28. 28 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Sprawdzanie konfiguracji przed jej wysłaniem na urządzenie
Nigdy więcej błędów składniowych
Parametry zawsze w zakresach obsługiwanych przez urządzenie
Szczególnie ważne dla automatów
Kto lubi oprogramowywać obsługę błędów
Znacząco ułatwiona konfiguracja wielu urządzeń gdy wymagana
jest realizacja całej usługi lub wycofanie zmian
SPRAWDZANIE KONFIGURACJI PRZED JEJ
WYSŁANIEM NA URZĄDZENIE
- 29. 29 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Dla każdego urządzenia można pobrać moduł Yang i odczytać z
niego
MTU dla portu
Ilość możliwych do sąsiedztw BGP
Ilość obsługiwanych reguł firewall
Wymaga to dobrych modułów ale droga jest otwarta
WARTOŚCI SPECYFICZNE DLA URZĄDZENIA
- 30. 30 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
To na co ja się zalogowałem
Ruter
Przełącznik
Ogniomurek
Szczególnie ważne dla automatów
Można określić czy dana konfiguracja – czyli zbudowana na niej
usługa może zadziałać
Może mamy drugie urządzenie (lub więcej) gdzie można próbować
załadować tą konfigurację
TO Z KIM ROZMAWIAM – PRZEDSTAW SIĘ
- 31. 31 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Moduł Yang może definiować konfigurację całej usługi
L3VPN
L2 circuit
Filtrowanie ruchu WWW przez zewnętrzne urządzenie
Pewność skonfigurowania wszystkich wymaganych parametrów
KONFIGURACJA WYŻSZYCH POZIOMÓW
- 32. 32 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Producent oprogramowania „zahaczającego” o konfigurację
sieci musi wybrać jakieś API
Jasno opisane
Odpowiednio szczegółowe
Transport
Znaczenie komunikatów
DOMYŚLNE API
- 33. 33 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Znam się na konfigurowaniu „Yangiem” i mogę skonfigurować
wszystko
No prawie
Skonfigurowanie za pomocą odpowiadających komend nie
gwarantuje takiego samego działania obecnie i Yang nic tu nie
zmieni
JEDEN JĘZYK DO WSZYSTKIEGO
- 34. 34 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
KTO OBECNIE ZNA ŁACINĘ
- 35. 35 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Cisco
ASR9000
Juniper
MX
Moduły do pobrania z urządzenia albo ze strony producenta
KTO TEN JĘZYK ZNA
- 36. 36 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Wewnętrzna konfiguracja w formacie XML
Możliwość ładowania dowolnych modułów YANG
Potrzebny opis translacji – skrypt pomiędzy modułem YANG i
konfiguracją urządzenia
Przydatne do opisów konfiguracji wyższych poziomów
ŁACINĄ Z JUNIPEREM
- 37. 37 Copyright © 2015 Juniper Networks, Inc. www.juniper.net
Inicjatywa Openconfig – wystarczy jedno RFQ z wymaganiem
na obsługę zdefiniowanych modułów wysłane na rynek przez
znanego członka grupy
KTO TEN JĘZYK BĘDZIE ZNAŁ