YANG — это язык моделирования данных, предназначенный для описания структуры и управления конфигурациями сетевых устройств. Он широко используется в таких сетевых технологиях, как NETCONF и RESTCONF, для унифицированного управления сетевыми ресурсами.
Сетевая операционная система с открытым исходным кодом SONiC (Software for Open Networking in the Cloud) нуждается в интуитивных инструментах для работы с моделями YANG. Разработка HTML-приложения для работы с YANG-моделями должна быть интегрирована в SONiC, обеспечивая удобный веб-интерфейс для визуализации, редактирования и валидации YANG моделей.
Это приложение должно предлагать пользователям возможности для навигации по структурам YANG, создания конфигураций и взаимодействия с NETCONF/RESTCONF API для управления устройствами через веб-интерфейс. Основное внимание должно быть уделено удобству работы и поддержке взаимодействия с различными сетевыми компонентами SONiC.
На данный момент SONiC поддерживает работу с YANG моделями через интерфейсы командной строки и внешние инструменты. Однако отсутствует интегрированный веб-интерфейс для прямого взаимодействия с YANG моделями. Это затрудняет процесс работы с моделями, требует специальных знаний и не поддерживает визуализацию сложных структур YANG.
Существующие решения для работы с YANG моделями, такие как pyang и yanglint, не интегрированы в SONiC и требуют сторонних утилит и библиотек для использования, что усложняет конфигурацию сети для конечного пользователя.
Рассмотрим два других популярных инструмента для работы с YANG моделями — Yangster и Cisco YANG Suite.
Необходимо, чтобы разрабатываемое приложение было специализированным для ОС SONiC, предлагая поддержку интеграции с открытой сетевой архитектурой и возможность работы с YANG моделями на различных устройствах, что делает его более универсальным по сравнению с Cisco YANG Suite, но менее сфокусированным на разработку, как Yangster.
Тестирование приложения должно включать следующие аспекты:
Тестирование должно проводиться как вручную с использованием реальных YANG моделей, так и автоматизированными средствами с помощью юнит-тестов и функциональных тестов для проверки взаимодействия с SONiC.
HTML приложение, встроенное в SONiC, которое позволит пользователям легко визуализировать, редактировать и валидировать YANG-модели. Оно должно интегрироваться с RESTCONF/NETCONF API и обеспечивать простое управление конфигурациями сетевых устройств.
Работа в основном предполагает создание веб-редактора кода с поддержкой визуализации, поэтому потребуются некоторые хотя бы минимальные навыки фронтенд-разработки. Также надо будет очень много читать, экспериментировать и разбираться, поскольку сама предметная область несколько нетипична для матмеха. Особой специфики SONiC или сетевых устройств, по крайней мере, на первых этапах разработки, скорее всего, не будет, но ориентироваться в мире Linux будет нелишне.
Не выбирайте эту тему, если вам нужно просто как-то закрыть практику, тут много нетривиальной работы!
2 курс, 3 курс, Бакалаврская ВКР
Литвинов Юрий Викторович
YADRO