Программное средство верификации конфигурационных файлов сетевого оборудования
Чумаченко Павел Юрьевич, кандидат технических наук, доцент; Петров Евгений Николаевич, студент
Национальный исследовательский университет «Московский институт электронной техники»
Статья посвящена решению проблемы верификации конфигурационных файлов сетевого оборудования при помощи разработки программного средства, выполняющего оперативный анализ этих файлов на основе за- ранее определенных пользовательских правил. В статье рассматриваются особенности данного программ- ного решения и принципы его работы.
Ключевые слова: сетевое администрирование, сетевое телекоммуникационное оборудование, верифи- кация конфигурационных файлов, программное средство.
К
онфигурирование телекоммуникационного обору- дования крупных сетевых инфраструктур является трудоемким процессом, требующим в частности много- кратных проверок корректности всех настроек оборудо- вания после каждого их изменения. Информация о за- даваемых параметрах работы оборудования хранится в специализированных конфигурационных файлах [1]. Большой объем этих файлов создает серьезные трудности для ручной их верификации, представляющей собой ру- тинные процедуры, что приводит к большому влиянию человеческого фактора на результат [2]. Очевидно, что низкое качество выполнения данного вида работы спо- собно значительно увеличить риск возникновения сбоев в работе сети и недоступности ее сегментов. С другой сто- роны, выполнение данной работы компьютером гаранти- рует отсутствие ошибок по невнимательности, быстроту
и своевременную отчетность.
Таким образом, является актуальной задача автомати- зации процесса верификации конфигурационных файлов сетевого оборудования, которая заключается в проверке корректности составления этих файлов и их соответствие пользовательским правилам, определяемым сетевым специалистом.
Существующие на сегодняшнем рынке программные средства, предлагаемые разработчиками оборудования, ориентированы на выполнение более общего круга задач сетевого администрирования, обладают крайне избы-
точным функционалом, привязкой к конкретной аппа- ратной платформе и не позволяют решить проблему во всей полноте на требуемом уровне.
Для решения описанной задачи предлагается исполь- зование специализированного программного средства, ориентированного на выполнение парсинга конфигура- ционных файлов, их анализ согласно заданным правилам, отслеживание изменения этих файлов и проведение их оперативной верификации. Это позволяет существенно уменьшить влияние человеческого фактора на резуль- таты проверки соответствия конфигурационных файлов задаваемым требованиям, саму же проверку изменений файлов выполнять с минимальной временной задержкой в автоматическом режиме.
Функциональная схема программного средства вери- фикации конфигурационных файлов представлена на ри- сунке 1.
Основной задачей программного средства является мониторинг изменений в конфигурационных файлах се- тевого оборудования и файлов пользовательских правил. При этом доступ к файлам осуществляется напрямую в файловой системе или посредством систем управления версиями (Git, CVS, GNU Bazaar и др.), команды управ- ления которыми выполняются с помощью вызовов из самой программы, что позволяет производить верифи- кацию по мере внесения изменений в автоматическом ре- жиме.
Рис. 1. Функциональная схема предлагаемого решения по верификации конфигурационных файлов
В основе работы предлагаемого программного сред- ства лежит процесс формирования иерархического де- рева из конфигурационного файла и дальнейшего ана- лиза интересующих фрагментов построенного дерева в соответствии с пользовательскими правилами. Све- дения о выявленных несовпадениях формируются в отчет о работе, направляемый сетевому специалисту по элек- тронной почте.
Анализ изменений происходит следующим образом: если изменения были внесены в пользовательские пра- вила, то все конфигурационные файлы нуждаются в по- вторной верификации вне зависимости от наличия в них
{
изменений; если изменений в пользовательских файлах не происходило, то повторно проверяются только те конфи- гурационные файлы, которые были изменены.
Для хранения почты сетевого специалиста, путей к пользовательским правилам и конфигурационным файлам сетевого оборудования, а также других настроек, в частности, параметров работы через систему управ- ления версиями, например git [4], в корне домашнего ка- талога пользователя создается файл.pca_config. В этом же файле ведется учет времени изменения конфигураци- онных файлов для их оперативного анализа. Структура файла настроек имеет следующий вид:
«net_config_filepath»: «filepath», “user_rules_filepath”: “filepath”, “email”:
{
“in_use”:”yes”, “mail_from”:”mail@from.xyz”, “host”:”host”,
“port”:”port”, “password_filepath”:”filepath”, “mail_to”:
[
“mail1@to.xyz”, “mail2@to.xyz”, “mail3@to.xyz”, “mail4@to.xyz”
]
},
“git”:
{
“in_use”:”yes”
},
“modifications”: [
{
“filename”:”filename1”, “timestamp”:”1234567890”
},
{
“filename”:”filename2”,
«timestamp»:»1234567890»
}
]
},
где «net_config_filepath» — путь к папке с конфи- гурационными файлами; «user_rules_filepath» — путь к папке с пользовательскими правилами; «email» — па- раметры отправки отчета по электронной почте; «git» — параметры использования системы контроля версий git;
«modifications» — хранение имен файлов и времени их модификации для отслеживания изменений.
Алгоритм работы программного средства верифи- кации конфигурационных файлов представлен на ри- сунке 2.
Рис. 2. Алгоритм работы программного средства верификации конфигурационных файлов
Очевидно, что для упрощения работы с программным средством верификации конфигурационных файлов и обе- спечения возможности его использования на разнородном сетевом оборудовании, формат записи пользователь- ских правил должен обладать гибкостью и быть легко чи-
{
таемым. Исходя из этого, в качестве структуры хранения пользовательских правил было решено использовать JSON [5] из-за его простоты и читаемости, гибкость была достигнута за счет использования регулярных выражений внутри правил. Итоговая структура имеет следующий вид:
“sections”: [
{
“device_type”: “device_type”, “type”: “type”,
“trigger”: “trigger”, “conditions”:
[
{
“rule”: “rule”, “message”: “message”, “command”: “command”
}
]
}
]
},
},
где «sections» — логическое деление файла по сек- циям; «device_type» — тип устройства; «type» — тип проверяемого интерфейса; «trigger» — выражение, не- обходимое для начала проверки секции; «conditions» — массив правил проверки; «rule» — ожидаемое выра- жение; «message» — сообщение, отображаемое в случае, если «rule» не найдено; «command» — команда, выпол- няемая в случае, если «rule» не найдено.
По мере проверки конфигурационных файлов фор- мируется отчет, содержащий все ошибки, выявленные в ходе работы программного средства, с указанием имени ошибочного конфигурационного файла и невыполненного пользовательского правила.
Результатом проведенной работы является разработка программного средства верификации конфигурационных файлов сетевого оборудования на основе пользователь-
ских правил. Разработанное программное средство по- зволит существенно увеличить производительность ра- боты ИТ-отдела за счет снижения влияния человеческого фактора и автоматизации процесса проверки конфигу- рации.
Следует отметить, что расширение функционала, обе- спечивающего автоматическое выполнение действий над файлами, основываясь на пользовательских правилах, позволит также автоматизировать процесс исправления распространенных типовых ошибок конфигурирования.
Алгоритм, лежащий в основе разработанного про- граммного средства верификации конфигурационных файлов, может быть полезен при автоматизации про- цессов анализа и верификации различных иерархических структур данных без привязки к конкретной предметной области.
Литература:
Cisco 1800 Series Integrated Services Routers (Fixed) Software Configuration Guide // CISCO. URL: http://www. cisco.com/c/en/us/td/docs/routers/access/1800/1801/software/configuration/guide/scg/routconf.html (дата обращения: 17.04.2016).
Девятков, В. В. Мьо Тан Тун. Автоматизация проверки некорректности конфигурирования сетевых экранов // Вестник московского государственного технического университета им. н.э. баумана. серия: приборостро- ение.— М.: Изд-во МГТУ им. Н. Э. Баумана, 2015. № 1. С 100–110.
Гагарина, Л. Г., Кокорева Е. В., Виснадул Б. Д. Технология разработки программного обеспечения.— М.: Форум, 2008.— 399 с.
Documentation // Git. URL: https://git-scm.com/doc (дата обращения: 17.04.2016).
Introducing JSON // JSON. URL: http://www.json.org/ (дата обращения: 17.04.2016).
Our Documentation // Python. URL: https://www.python.org/doc/ (дата обращения: 17.04.2016).
ciscoconfparse // PyPi. URL: https://pypi.python.org/pypi/ciscoconfparse (дата обращения: 17.04.2016).
Молодой ученый
Международный научный журнал Выходит два раза в месяц
Do'stlaringiz bilan baham: |