
pybatfish v2026.08.18
Cliente de Python para Batfish, una herramienta de análisis de configuración de red que valida seguridad, fiabilidad y cumplimiento mediante el modelado del comportamiento de la red a partir de configuraciones de dispositivos antes del despliegue.
¿Tienes preguntas, comentarios o solicitudes de funciones? ¡Únete a nuestra comunidad en Slack!
Pybatfish
Pybatfish es un cliente Python para Batfish.
¿Qué es Batfish?
Batfish es una herramienta de validación de redes que proporciona garantías de corrección para seguridad, fiabilidad y cumplimiento normativo mediante el análisis de la configuración de dispositivos de red. Construye modelos completos del comportamiento de la red a partir de las configuraciones de los dispositivos y encuentra violaciones de las políticas de red (incorporadas, definidas por el usuario y mejores prácticas).
Un caso de uso principal de Batfish es validar los cambios de configuración antes del despliegue (aunque también se puede usar para validar configuraciones ya desplegadas). La validación previa al despliegue es una brecha crítica en los flujos de trabajo de automatización de redes existentes. Al usar Batfish en flujos de trabajo de automatización, los ingenieros de red pueden cerrar esta brecha y asegurar que solo se desplieguen cambios correctos.
Batfish NO requiere acceso directo a los dispositivos de red. El análisis central solo requiere la configuración de los dispositivos de red. Este análisis puede mejorarse utilizando información adicional de la red como:
- Rutas BGP recibidas de pares externos
- Información de topología representada por LLDP/CDP
Vea www.batfish.org para información técnica sobre cómo funciona.
¿Qué tipos de comprobaciones de corrección soporta Batfish?
El canal de YouTube de Batfish (al que puedes suscribirte para recibir nuevo contenido) ilustra muchos tipos de comprobaciones. Estas comprobaciones abarcan una variedad de comportamientos de red y atributos de configuración de dispositivos.
Cumplimiento de Configuración
- Marcar estructuras no definidas pero referenciadas o definidas pero no referenciadas (por ejemplo, ACLs, route-maps)
- Las configuraciones de MTU, AAA, NTP, logging, etc. coinciden con las plantillas
- Los dispositivos solo pueden ser accedidos usando SSHv2 y la contraseña no es nula
Fiabilidad
- La alcanzabilidad de extremo a extremo no se ve afectada para ningún flujo después de cualquier fallo de enlace único o dispositivo único
- Ciertos servicios (por ejemplo, DNS) son globalmente alcanzables
Seguridad
- Los servicios sensibles solo pueden ser alcanzados desde subredes o dispositivos específicos
- Las rutas entre puntos finales son las esperadas (por ejemplo, atraviesan un firewall, tienen al menos ECMP de 2 vías, etc.)
Análisis de Cambios
- La alcanzabilidad de extremo a extremo es idéntica entre la configuración actual y una planificada
- Los cambios planificados en ACL o firewall son comprobablemente correctos y no causan daños colaterales a otro tráfico
- Dos configuraciones, potencialmente de diferentes proveedores, son funcionalmente equivalentes
¿Cómo empiezo?
Si aún no has instalado Batfish, sigue las instrucciones listadas en el repositorio de github de batfish para hacerlo.
Instalar Pybatfish
Recomendamos encarecidamente que instales Pybatfish en un entorno virtual de Python 3. Los detalles sobre cómo configurar uno se pueden encontrar aquí. Una vez que tu entorno virtual esté configurado y activado, actualiza pip y luego instala pybatfish.
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pybatfish
Ahora, estás listo para evaluar tu propia red con Batfish. Te recomendamos usar Jupyter notebooks como punto de partida, pero puedes usar otros métodos con los que te sientas cómodo, por ejemplo, un IDE como PyCharm o un intérprete interactivo de Python. Si eliges usar Jupyter notebooks como punto de partida, necesitas instalar Jupyter en tu entorno virtual. La documentación de Jupyter se puede encontrar aquí, pero los comandos a continuación te ayudarán a comenzar.
python3 -m pip install jupyter
jupyter notebook
Nuestros notebooks proporcionan una guía de inicio rápido para diferentes casos de uso. Más allá de eso, la documentación completa está disponible en readthedocs.
Documentación de Pybatfish
La documentación completa de las APIs de pybatfish está aquí.
