Аннотация:
Авторы рассматривают разработанное сетевое приложение PreFirewall для контроллера программно-конфигурируемой сети (ПКС) Floodlight. Данное сетевое приложение осуществляет фильтрацию устанавливаемых правил в модуль ядра firewall контроллера Floodlight с целью недопущения возникновения аномалий между устанавливаемыми правилами. Разработанное сетевое приложение PreFirewall прошло ряд тестов. В результате проведенного нагрузочного тестирования было установлено, что время добавления новых правил, при использовании PreFirewall, серьезно возрастает с ростом количества ранее обработанных правил. Анализ сетевого приложения PreFirewall показал, что при добавлении правила (самая частая операция), в худшем случае необходимо произвести его сравнение со всеми существующими правилами, которые хранятся в виде двумерного массива. Таким образом, операция добавления нового правила является наиболее трудоемкой и сильнее всего влияет на производительность сетевого приложения, что приводит к возрастанию времени его отклика. Одним из возможных путей решения данной проблемы является выбор такой структуры данных, используемой для хранения правил, в которой операция добавления нового правила была бы простой. В качестве такой структуры предлагается использование дерева, каждая вершина которого содержит всевозможные значения полей в устанавливаемых правилах. Данный подход обеспечивает константную сложность операции добавления нового правила и, следовательно, решает проблему производительности сетевого приложения PreFirewall. Статья публикуется в авторской редакции.