Привет, сетевой друг!
Сегодня разберу YANG - язык моделирования данных, без которого современная сетевая автоматизация не работает.🟣Что делает YANG: описывает структуру конфигурации и состояния сетевых устройств. Это как схема базы данных, только для роутеров и свитчей. NETCONF и RESTCONF используют YANG-модели чтобы знать, какие данные можно читать и изменять и в каком формате.
🟣Без YANG каждый вендор придумывает свою структуру данных. С YANG есть стандартные модели - openconfig и ietf, которые одинаково работают на Cisco, Juniper и Huawei. Один скрипт автоматизации для всего зоопарка.
🟣Как выглядит YANG-модель:
module ietf-interfaces {
container interfaces {
list interface {
key "name";
leaf name {
type string;
}
leaf description {
type string;
}
leaf enabled {
type boolean;
default true;
}
}
}
}🟣Смотрим какие модели поддерживает устройство через NETCONF:
from ncclient import manager
with manager.connect(host="10.0.0.1", port=830,
username="admin", password="pass",
hostkey_verify=False) as m:
caps = m.server_capabilities
for cap in caps:
if "yang" in cap:
print(cap)
🟣Инструменты для работы с моделями: pyang валидирует и конвертирует YANG-файлы, yangsuite от Cisco позволяет визуально исследовать модели и сразу строить NETCONF-запросы.
pyang -f tree ietf-interfaces.yang
Серверная Админа | Zeroday | #Yang
