Model danych YANG
 

YANG (Yet Another Next Generation) jest językiem służącym do modelowania czy opisywania danych, który został zestandaryzowany w RFC 7950 (YANG) i RFC 6020 (YANG+NETCONF). Model danych standaryzuje dane oraz sposób ich organizacji, zachowania i wzajemnego powiązania.

W przypadku urządzeń sieciowych nie pracuje się bezpośrednio na plikach czy bazie danych. Konfiguracja dostępna jest poprzez odpowiedni interfejs, jak m.in. WebUI, CLI over SSH, XML over SSH, czy API over HTTP/HTTPS. Każdy z nich udostępnia w stronę zarządzającego jakiś model danych, na którym musi on dalej pracować. Jest on tak zaprojektowany, aby był wygodny w użytkowaniu oraz intuicyjny dla osoby pracującej na nim. W przypadku WebUI może być to jakaś tabelka lub formularz, a w przypadku CLI określona składania poleceń.

Każde z urządzeń posiada także jakiś wewnętrzny model danych, którego celem jest przechowywanie i przetwarzanie danych w sposób najwygodniejszy dla urządzenia.

Najczęściej na urządzeniach sieciowych konfigurujemy te same zestawy standardowych i otwartych protokołów. W związku z tym, ten wewnętrzny model danych jest na tyle podobny pomiędzy urządzeniami różnych producentów, że bez względu na to, czy korzystamy z urządzenia Cisco, czy Juniper, to do skonfigurowania tej samej rzeczy musimy dostarczyć ten sam zbiór parametrów i danych. Dostarczamy go za pomocą wygodnego dla nas modelu danych, który to urządzenie w naszą stronę udostępnia. Natomiast docelowo i tak zostaną one umieszczone wewnątrz struktury modelu danych, który jest wygodny w przetwarzaniu dla urządzenia.


Zainteresowanych automatyzacją sieci, systemów IT, centrów danych i środowisko DevOps, a także zakupem czy wdrożeniem Cisco NSO lub platformy Red Hat Ansible Automation zapraszamy do This email address is being protected from spambots. You need JavaScript enabled to view it..


Na rysunku poniżej, kolorami zostały oznaczone trzy niezbędne parametry, jakie należy dostarczyć urządzeniu, aby skonfigurowało dodatkową sesję BGP. W zależności od urządzenia, dokonać tego można na różne sposoby i przy użyciu różnych składni. Po lewej widać składnię Cisco, a po prawej składnię Juniper. Każda z nich obudowuje te trzy niezbędne parametry odpowiednią strukturą, która pozwala lepiej zrozumieć powiązania i relacje pomiędzy nimi.


W związku z tym, że różne urządzenia sieciowe potrzebują tych samych danych do realizacji tego samego zadania, wewnętrzny model danych może zostać zestandaryzowany i znormalizowany w taki sposób, aby był spójny dla rozwiązań różnych producentów. Oczywiście takich rozwiązań, które oferują w jakimś stopniu tą samą funkcjonalność.

I tak też się stało, kiedy powstały otwarte modele danych IETF i OpenConfig. Wykorzystują one język modelowania danych YANG. Ich celem jest normalizacja zarówno danych, jak i ich struktury oraz gramatyki. Dzięki temu, nie trzeba się przejmować różną składnią i sposobem powiązania ze sobą poszczególnych obiektów u każdego z producentów.

Model YANG normalizuje wartości danych konfiguracyjnych i stanów operacyjnych, a także ich strukturę, składnię oraz gramatykę. Dane modelu YANG zapisywane są w kilku formatach:

Model danych YANG tworzy jakby szablon, na podstawie którego dopiero generowane są dane XML, JSON lub YAML. Zapisane w którymś z tych formatów dane modelu YANG przesyłane są za pomocą:

  • NETCONF (SSHv2, XML) – 830/TCP,
  • RESTCONF/API (HTTP, XML/JSON) – 443/TCP.

O ile do typowych urządzeń sieciowych dane są wysyłane za pomocą NETCONF lub RESTCONF, to niektóre systemy diagnozowania, monitorowania czy zarządzania oferują na tyle zróżnicowane zbiory funkcjonalności, że dostęp do nich odbywa się poprzez specyficzne dla nich REST API.


Model YANG organizuje dane w strukturze drzewa, w którym każdy węzeł ma nazwę oraz wartość lub zestaw węzłów potomnych. Da się w nim opisać ograniczenia i obostrzenia dla danych, a także zależności pomiędzy nimi. Jest on rozszerzalny i umożliwia warunkowe dołączanie do hierarchii dodatkowych struktur danych.

Każde z rozwiązań może posiadać dodatkowe funkcjonalności, których dane składowane są w natywnym dla niego modelu danych YANG. Zwykle model otwarty jest oddzielnym drzewem lub fragmentem drzewa modelu natywnego, który pozwala w ten sam sposób odwoływać się do tych samych danych na różnych urządzeniach.

Istnieje w nim także rozgraniczenie pomiędzy danymi konfiguracyjnymi, a stanami operacyjnymi i statystykami. Jest to coś, czego brakowało w drzewie MIB (Management Information Base) protokołu SNMP (Simple Network Management Protocol). Dane te były tam wymieszane, co utrudniało pobieranie konfiguracji czy możliwość jej łatwego porównania. To sprawiało, że protokół SNMP stosowany był głównie tylko do monitorowania i zbierania statystyk.


Zapraszamy do kontaktu drogą mailową This email address is being protected from spambots. You need JavaScript enabled to view it. lub telefonicznie +48 797 004 932.