Высокоуровневая система разработки приложений fNetKAT для программно-конфигурируемых сетей под управлением RunOS v2.0 в части автоматизации процедур маршрутизации потока в программно-конфигурируемой сетикурсовая работа (Магистр)
Аннотация:Логикой сети управляют приложения, запущенные на контроллере, которые используют специальный программный интерфейс. Некоторые контроллеры (например, NOX, Ryu, Beacon) используют прямое управление таблицами потоков коммутаторов с помощью OpenFlow сообщений. Однако для разработки приложений, которые напрямую управляют коммутаторами с помощью протокола OpenFlow, программистам приходится в логике кода поддерживать низкоуровневые детали протокола: заботиться о корректности таблиц потоков, недопущение перекрытия правил, их приоритезация и многое другое. Такая технология усложняет возможность создания модульного кода независимыми разработчиками и его повторное использование, увеличивает вероятность появления ошибок. Кроме того, приходится поддерживать одновременно несколько разных версий протокола OpenFlow в зависимости от эксплуатируемого сетевого оборудования, версий работающего на них математического обеспечения. Поэтому создаются системы, которые берут на себя низкоуровневые детали по настройке OpenFlow коммутаторов, и гарантируя программисту корректность работы с оборудованием и предоставляя ему высокоуровневый интерфейс для программирования логики приложения по управлению сетью с помощью высокоуровневых абстракций. У каждой из систем NetKAT и Maple, которые легли в основу предлагаемой работы, свои особенности: NetKAT теоретически хорошо обоснован, но вместе с тем характеризуется большими накладными расходами и сложным синтаксисом, Maple сосредоточен на программировании отдельного сетевого коммутатора, что не достаточно для реализации независимых приложений, управляющих сетью в целом, и противоречит модульному подходу к созданию приложений и сервисов в ПКС. В работе предлагается совместить подход, основанный на системах NetKAT и Maple и сочетающий их преимущества на платформе RunOS v2.0.