Herramienta que permite interactuar con redes definidas por software [Software Defined Networks - SDN] que utilizan el Protocolo de Puerta de Enlace Fronteriza [Border Gateway Protocol - BGP] al transformar los mensajes BGP en texto simple o JSON. BGP es un protocolo fundamental para el enrutamiento en Internet, ya que permite a los routers intercambiar información de rutas y alcanzabilidad entre diferentes sistemas autónomos (AS).
Ejemplo básico de un archivo de configuración:
$ nano exabgp.conf
group test {
neighbor 192.168.1.1 {
router-id 192.168.1.2;
local-address 192.168.1.2;
local-as 65000;
peer-as 65001;
}
process announce {
run /usr/bin/python3 /path/to/your/script.py;
encoder json;
}
}
neighbor 192.168.1.1 --> define el vecino BGP con el que exabgp se comunicará.
router-id, local-address, local-as, y peer-as --> son parámetros necesarios para establecer la sesión BGP.
process announce --> define un proceso que ejecutará un script en Python y codificará los mensajes BGP en formato JSON.
# exabgp exabgp.conf
# exabgp /path/to/exabgp.conf --api /var/run/exabgp.sock
# socat - UNIX-CONNECT:/var/run/exabgp.sock