Назад к обновлениям
New releaseAug 19, 2026

pybatfish v2026.08.18

Python-клиент для Batfish — инструмента анализа конфигураций сети, который проверяет безопасность, надёжность и соответствие требованиям, моделируя поведение сети на основе конфигураций устройств до развёртывания.

Поделиться

Есть вопросы, отзывы или предложения? Присоединяйтесь к нашему сообществу в Slack!

codecov

Pybatfish

Pybatfish — это Python-клиент для Batfish.

Что такое Batfish?

Batfish — это инструмент для проверки сетей, который обеспечивает гарантии корректности в области безопасности, надежности и соответствия требованиям, анализируя конфигурации сетевых устройств. Он строит полные модели поведения сети на основе конфигураций устройств и находит нарушения сетевых политик (встроенных, заданных пользователем и лучших практик).

Основной сценарий использования Batfish — проверка корректности изменений конфигурации до их развертывания (хотя его можно использовать и для проверки уже развернутых конфигураций). Деплойментная проверка является критическим пробелом в существующих рабочих процессах автоматизации сети. С помощью Batfish в автоматизированных рабочих процессах сетевые инженеры могут закрыть этот пробел и гарантировать, что развертываются только корректные изменения.

Batfish НЕ требует прямого доступа к сетевым устройствам. Для основного анализа требуются только конфигурации сетевых устройств. Этот анализ может быть расширен с помощью дополнительной информации из сети, такой как:

  • BGP-маршруты, полученные от внешних пиров
  • Информация о топологии, представленная LLDP/CDP

Смотрите www.batfish.org для технической информации о том, как это работает.

Какие виды проверок корректности поддерживает Batfish?

Getting to know Batfish

Канал Batfish на YouTube (на который можно подписаться для получения нового контента) иллюстрирует многие типы проверок. Эти проверки охватывают ряд сетевых поведений и атрибутов конфигурации устройств.

Соответствие конфигурации

  • Отмечать неопределенные, но используемые, или определенные, но неиспользуемые структуры (например, ACL, map-маршруты)
  • Параметры конфигурации для MTU, AAA, NTP, логирования и т.д. соответствуют шаблонам
  • Доступ к устройствам возможен только через SSHv2, и пароль не пустой

Надежность

  • Сквозная достижимость не нарушается для любого потока после отказа одного канала или одного устройства
  • Некоторые службы (например, DNS) глобально достижимы

Безопасность

  • Чувствительные службы достижимы только из определенных подсетей или устройств
  • Пути между конечными точками соответствуют ожиданиям (например, проходят через межсетевой экран, имеют как минимум 2-way ECMP и т.д.)

Анализ изменений

  • Сквозная достижимость идентична в текущей и планируемой конфигурации
  • Запланированные изменения ACL или межсетевого экрана доказуемо корректны и не вызывают побочного ущерба для другого трафика
  • Две конфигурации, возможно от разных производителей, функционально эквивалентны

С чего начать?

Если вы еще не установили Batfish, следуйте инструкциям, приведенным в репозитории batfish на GitHub.

Установка Pybatfish

Мы настоятельно рекомендуем устанавливать Pybatfish в виртуальную среду Python 3. Подробности о том, как ее настроить, можно найти здесь. После настройки и активации виртуальной среды обновите pip, а затем установите pybatfish.

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pybatfish

Теперь вы готовы оценить свою сеть с помощью Batfish. Мы рекомендуем использовать Jupyter notebooks в качестве отправной точки, но вы можете использовать и другие методы, с которыми вам удобно работать, например, IDE вроде PyCharm или интерактивную оболочку Python. Если вы решите использовать Jupyter notebooks в качестве отправной точки, вам нужно установить Jupyter в вашу виртуальную среду. Документация Jupyter доступна здесь — но приведенные ниже команды помогут вам начать.

python3 -m pip install jupyter
jupyter notebook

Наши notebooks предоставляют краткое руководство для различных сценариев использования. Кроме того, полная документация доступна на readthedocs.

Документация Pybatfish

Полная документация по API pybatfish находится здесь.

Категории