BIRD (acrónimo recursivo de BIRD Internet Routing Daemon [2] ) es una implementación de código abierto para enrutar paquetes de protocolo de Internet en sistemas operativos tipo Unix . Fue desarrollado como un proyecto escolar en la Facultad de Matemáticas y Física de la Universidad Carolina de Praga [3] y se distribuye bajo la Licencia Pública General de GNU .
BIRD es compatible con el protocolo de Internet versión 4 y versión 6 ejecutando daemons separados . [4] Establece múltiples tablas de enrutamiento, [5] y utiliza protocolos de enrutamiento BGP , RIP y OSPF , así como rutas definidas estáticamente. Su diseño difiere significativamente de GNU Zebra , Quagga y FRRouting . Actualmente BIRD está incluido en muchas distribuciones de Linux, como Debian , [6] Ubuntu [7] y Fedora . [8]
BIRD se utiliza en varios intercambios de Internet , como el London Internet Exchange (LINX), [9] LONAP , [10] DE-CIX [11] y MSK-IX [12] como servidor de ruta , donde reemplazó a Quagga debido a sus problemas de escalabilidad. [9] Según la encuesta Euro-IX de 2012, [13] BIRD es el servidor de ruta más utilizado entre los intercambios de Internet europeos.
En 2010, CZ.NIC , el actual patrocinador del desarrollo de BIRD, recibió el premio LINX Conspicuous Contribution Award por la contribución de BIRD al avance en la tecnología de servidores de ruta. [14]
BIRD implementa una tabla de enrutamiento interna a la que se conectan los protocolos admitidos. La mayoría de estos protocolos importan rutas de red a esta tabla de enrutamiento interna y también exportan rutas de red desde esta tabla de enrutamiento interna al protocolo indicado. De esta manera, la información sobre las rutas de red se intercambia entre diferentes protocolos de enrutamiento.
Mediante el protocolo del núcleo, esta tabla de enrutamiento interna puede conectarse a la tabla de enrutamiento del núcleo real. Esto permite a BIRD exportar rutas de red desde su tabla de enrutamiento interna a la tabla de enrutamiento del núcleo y, opcionalmente, también obtener información sobre las rutas de red de la tabla de enrutamiento del núcleo (creada externamente por el administrador o por otros medios) e importar estas rutas a su tabla de enrutamiento interna.
Se pueden utilizar filtros para controlar qué rutas de red se importan a la tabla de enrutamiento interna o se exportan al protocolo determinado. Las rutas de red se pueden aceptar, rechazar o modificar mediante filtros.
BIRD también admite varias tablas de enrutamiento internas y varias instancias de los tipos de protocolos admitidos. Los protocolos pueden estar conectados a diferentes tablas de enrutamiento internas, estas tablas de enrutamiento internas pueden intercambiar información sobre las rutas de red que contienen (controladas por filtros) y cada una de estas tablas de enrutamiento internas puede estar conectada a una tabla de enrutamiento de kernel diferente, lo que permite el enrutamiento de políticas.
La configuración se realiza editando el archivo de configuración y diciéndole a BIRD que se reconfigure. BIRD cambia a la nueva configuración sin necesidad de reiniciar el demonio y reinicia los protocolos reconfigurados solo si es necesario. También existe una opción para realizar una reconfiguración suave, que no reinicia los protocolos pero puede dejar información obsoleta, como filtros modificados que no filtran las rutas de red ya exportadas.