Кратко о BIRD:
The BIRD project aims to develop a fully functional dynamic IP routing daemon. - Both IPv4 and IPv6 - Multiple routing tables - BGP - RIP - OSPF - Static routes - Inter-table protocol - Command-line interface - Soft reconfiguration - Powerful language for route filtering WWW: http://bird.network.cz/
Пользователи FreeBSD могут найти демоны BIRD в портах: IPv4 версия: /usr/ports/net/bird IPv6 версия: /usr/ports/net/bird6
С момента размещения статьи Используем BIRD для создания «пограничного» маршрутизатора размещенную zaikini, я все мечтал найти время и уделить его изучению и пробам BIRD.
О демоне BIRD народ хорошо отзывается, да и многие IX`ы держат свои Route Server`а именно на этом демоне.
И вот наконец мне предоставилась такая возможность. Для одного проекта понадобилось автоматом генерить blackhole маршруты для BGP и тут я вспомнил что как раз давно хотел попробовать BIRD.
Поднял на тестовом стенде из тройки виртуальных машин:
- FreeBSD 9.1 + BIRD 1.3.11
- FreeBSD 8.4 + BIRD 1.3.11
- FreeBSD 7.2 + BIRD 1.3.2
- FreeBSD 7.2 + BIRD 1.3.11
Погонял BGP и OSPF в различных конфигурациях и схемах — понравилось. Даже больше скажу — очень понравилось. Есть конечно в BIRD некоторые вещи пока не совсем мне понятные или как это сказать не до конца логичные, НО в целом абалденный демон. Респект и уважуха разработчикам BIRD.
Итоговый «приговор» по BIRD: must have.
До сего момента мы работали на Quagga, но она иногда реально достает своими непонятными приколами, когда после реконфига чего либо помогает тока рестарт демонов дабы эти изменения наконец сказались.
Рестарт bgpd и о чудо ! Все непонятки устраняются и все работает как и положено. Но сейчас не об этом речь 🙂
Вообщем пересели мы на BIRD. Что дальше ? А дальше, как это водится, понадобился Looking Glass для BIRD`а, не всегда ж есть желание/возможность лазать в консоль 🙂
Погуглил… нагуглил только sileht/bird-lg и ulg—universal-looking-glass — оба написаны на python.
Попытки найти нечто подобное лукинг глассу для Cisco/Quagga/Juniper и на PHP мне не удалось.
«Ну что ж… Толи лыжи, толи … получается что нету… значит надо написать самому.» — сказал я и приступил к реализации :).
Через некоторое время первая версия LG на PHP была готова и протестирована.
Пока из функционала было реализовано самое необходимое — возможность посмотреть маршрут, пингать и трасернуть.
Потом я подумал о том, что скорее всего я не один такой, кто не хочет/может пользоваться LG на питоне, так же о (похоже) единственно существующем варианте LG для BIRD`а, а так же о том что сам пользуюсь бесплатным ПО, которое пишут и выкладывают другие и … и решил что нужно так же поделиться с общественностью своей разработкой.
Итак представляю вам свой труд и новый проект в рамках проекта Subnets.ru: BIRD Looking Glass на PHP.
Для работы LG вам необходимо:
- установленный и запущенный BIRD
- web сервер (аля apache)
- PHP5: модуль для apache и CLI версия
Более детально написано в README и ошибках, которые, если чего то не хватает, вам будет выдавать web интерфейс LG после его установки.
Я не смотрю на свои возможности через «розовые очки», я больше сис.админ чем программист, но все же кое что напрограммить и я могу 🙂
Лично я свою первоочередную задачу (наличие хоть какого LG для BIRD на PHP) решил. Возможно сей «продукт» поможет и вам.
Это явно не последняя версия этого LG, как снова дойдут руки — буду допиливать функционал далее, благо дело мыслей много, а желаний (как это обычно и бывает) ещё больше :).
В LG встроен механизм проверки наличия новой версии, поэтому если таковая появится, то те кто установит и будет использовать узнают об этом зайдя на главную страницу своего LG.
Надо ли пояснять, что для функционирования сего механизма сервер с LG должен иметь доступ к Инету, а если быть точнее то к URL`у http://bird-lg.subnets.ru/.
Работа LG проверена под OS FreeBSD, если у вас другая ось то вы как раз проверите сами.
З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА ! Уважайте чужой труд.
Автор: Николаев Дмитрий (virus (at) subnets.ru)