Введение
BIRD (рекурсивный акроним BIRD Internet Routing Daemon) - реализация с открытым исходным кодом для маршрутизации пакетов Интернет-протокола в операционных системах типа Unix. Он был разработан как школьный проект на факультете математики и физики, Университете Карла, Прага, и распространяется под лицензией GNU General Public License. BIRD поддерживает версию 4 и версию 6 Интернет-протокола, запуская отдельные демоны. Он устанавливает несколько таблиц маршрутизации и использует протоколы маршрутизации BGP, RIP и OSPF, а также статически определенные маршруты. Его дизайн значительно отличается от GNU Zebra, Quagga и FRRouting. В настоящее время BIRD включен во многие дистрибутивы Linux, такие как Debian, Ubuntu и Fedora. BIRD используется в нескольких интернет-биржах, таких как Лондонская интернет-биржа (LINX), DE CIX и MSK IX в качестве маршрутного сервера, где он заменил Quagga из-за проблем со масштабируемостью. Согласно исследованию Euro IX 2012 года, BIRD является наиболее используемым маршрутным сервером среди европейских интернет-обменников. В 2010 году, Чешская Республика. NIC, нынешний спонсор разработки BIRD, получил награду LINX за выдающийся вклад в развитие технологии маршрутных серверов.
Дизайн
BIRD реализует внутреннюю таблицу маршрутизации, к которой подключаются поддерживаемые протоколы. Большинство из этих протоколов импортируют маршруты сети в эту внутреннюю таблицу маршрутизации, а также экспортируют маршруты сети из этой внутренней таблицы маршрутизации в данный протокол. Таким образом, информация о маршрутах сети обменивается между различными протоколами маршрутизации. Используя протокол ядра, эта внутренняя таблица маршрутизации может быть подключена к фактической таблице маршрутизации ядра. Это позволяет BIRD экспортировать маршруты сети из своей внутренней таблицы маршрутизации в таблицу маршрутизации ядра и, по желанию, также узнавать о маршрутах сети из таблицы маршрутизации ядра (созданной внешне администратором или другими средствами) и импортировать эти маршруты в свою внутреннюю таблицу маршрутизации. Фильтры могут использоваться для контроля того, какие маршруты сети импортируются в внутреннюю таблицу маршрутизации или экспортируются в данный протокол. Сетевые маршруты могут быть приняты, отклонены или изменены с использованием фильтров. BIRD также поддерживает несколько внутренних таблиц маршрутизации и несколько экземпляров поддерживаемых типов протоколов. Протоколы могут быть подключены к различным внутренним таблицам маршрутизации, эти внутренние таблицы маршрутизации могут обмениваться информацией о маршрутах сети, которые они содержат (контролируемые фильтрами), и каждая из этих внутренних таблиц маршрутизации может быть подключена к другой таблице маршрутизации ядра, что позволяет осуществлять маршрутизацию политики. Конфигурация выполняется путем редактирования файла конфигурации и указания BIRD на перенастройку. BIRD изменяет новую конфигурацию без необходимости перезапуска самого демона и перезапускает переконфигурированные протоколы только в случае необходимости. Существует также возможность выполнения мягкой перенастройки, которая не перезапускает протоколы, но может оставить некоторую устаревшую информацию, такую как измененные фильтры, не отфильтровывающие уже экспортированные маршруты сети.