# cd lg-1.9 && ls
total 146
drwxr-xr-x 2 www 100 512 25 ноя 2004 .
drwxr-xr-x 7 www www 512 8 янв 01:36 ..
-rw-r--r-- 1 www 100 3308 25 ноя 2004 CHANGELOG
-rw-r--r-- 1 www 100 17976 16 июл 2002 COPYING
-rw-r--r-- 1 www 100 5161 15 июн 2004 README
-rw-r--r-- 1 www 100 256 15 июн 2004 as.txt
-rw-r--r-- 1 www 100 50998 28 сен 2004 communities.txt
-rw-r--r-- 1 www 100 1406 16 июл 2002 favicon.ico
-rwxr-xr-x 1 www 100 36818 25 ноя 2004 lg.cgi
-rw-r--r-- 1 www 100 14691 25 ноя 2004 lg.conf
-rwxr-xr-x 1 www 100 2428 15 июн 2004 makeaslist.pl
-rwxr-xr-x 1 www 100 3718 15 июн 2004 makedb.pl
Итак, вникнем в README, чтобы понять что нужно делать дальше… Имеем в наличии пошаговую инструкцию… Ну что ж, начнем.
- Cоздаем каталог для размещения файлов Looking Glass.
# mkdir /usr/local/www/lg.muff.kiev.ua |
- Копируем файлы lg.cgi, lg.conf и favicon.ico в этот каталог. Выставляем необходимые права доступа:
# cp lg.cgi lg.conf favicon.ico /usr/local/www/lg.muff.kiev.ua
# chown www:www /usr/local/www/lg.muff.kiev.ua/
# chmod 644 /usr/local/www/lg.muff.kiev.ua/*
# chmod 755 /usr/local/www/lg.muff.kiev.ua/lg.cgi |
- Отредактируем httpd.conf. Я создал отдельный виртуалхост следующего содержания:
ServerName lg.muff.kiev.ua
ServerAdmin admin[dot]muff.kiev.ua
ErrorLog /var/log/apache/lg.muff.kiev.ua-error.log
TransferLog /var/log/apache/lg.muff.kiev.ua-access.log
ScriptAlias / /usr/local/www/lg/lg.cgi
DocumentRoot /usr/local/www/lg/
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
|
- Перезапустим веб-сервер, чтобы изменения вступили в силу:
- Хм… Как бы все готово. Проверяем, что у нас доступно по адресу http://lg.muff.kiev.ua/. Результат следующий:
Чтобы немного «приукрасить» ресурс, разместим на странице логотип. Для этого необходимо поместить в каталог файл изображения с названием logo.gif. Еще необходимо внести некоторые изменения в файл lg.conf, но это немного попозже.
- Дальше, следуя инструкции, загружаем файлы созласно указанного списка и размещаем их в каталоге Looking Glass-а:
Необходимо в файле as.txt раскомментировать строки, начинающиеся с «include«.
Также, в случае необходимости (например, при использовании локальных номеров автономных систем) необходимо задать номер автономной системы в файле as.txt. В моем частном случае номер автономной системы 12998 (ISP BGNet). Он прописан в файле as-ripe.txt, поэтому просто закомментируем прописанную в файле as.txt строку.
- Следующий шаг — создание базы данных. Для этого воспользуемся скриптом makedb.pl. Скопируем его в директорию LG и дадим команду на запуск:
# cp makedb.pl /usr/local/www/lg.muff.kiev.ua
# ./makedb.plReading AS names..
Read AS list from as.txt..
OK
Reading community names..
Read community list from communities.txt..
OK
Setting up database..
OK |
Результатом команды будет файл as.db.
- Чтобы быть уверенным, что все необходимые файлы доступны на чтение веб-сервером, добавим необходимые права:
# chmod a+r /usr/local/www/lg.muff.kiev.ua/*.txt
# chmod a+r /usr/local/www/lg.muff.kiev.ua/as.db |
Кажется все инструкции выполнены… Дальше необходимо создать файл логов и выставить необходимые права:
Теперь советую отредактировать конфигурационный файл lg.conf, задать необходимые переменные и описать роутеры, к которым будем подключаться. Для теста вписал три роутера:
- ROUTER1: UA-IX. Clients. FreeBSD Router.
- ROUTER2: UA-IX. Clients. Cisco Router.
- ROUTER3: Full-View. Clients. FreeBSD Router.
Листинг lg.conf получился следующего содержания:
/
/var/log/lg.log
./as.db
http://lg.muff.kiev.ua/">logo.gif>
Looking Glass
/favicon.ico
admin[dot]muff.kiev.ua
/usr/bin/rsh -l lg
POST
10
All commands will be logged for possible later analysis and statistics.
On
UA-IX
telnet://[email protected]
telnet://lguser:[email protected]
Full-View
telnet://[email protected]
Казалось бы, что на этом все… Однако нашел еще несколько костылей.
Telnet-соединение к маршрутизаторам не выполнялось. В логах веб-сервера обнаружил такую запись:
Can’t locate Net/Telnet.pm in @INC (@INC contains: /usr/local/lib/perl5/5.8.9/BSDPAN /usr/local/lib/perl5/site_perl/5.8.9/mach /usr/local/lib/perl5/site_perl/5.8.9 /usr/local/lib/perl5/5.8.9/mach /usr/local/lib/perl5/5.8.9 .) at (eval 9) line 2., referer: http://lg.muff.kiev.ua/ |
Теперь понятно… Упустил, что на этом сервере не установлено perl-расширение Net::Telnet. Выполним установку этого модуля из портов:
# cd /usr/ports/net/p5-Net-Telnet && make install clean && rehash |
После этого заработало соединение к Cisco-роутеру, а с серверами под управлением FreeBSD c установленной Quagga все еще были проблемы. В логах обнаружил такие записи:
2012/03/22 20:17:30 BGP: buffer_flush_window called with non-positive window height 0, forcing to 1
2012/03/22 20:21:59 BGP: buffer_flush_window called with non-positive window height 0, forcing to 1
2012/03/22 20:59:18 BGP: buffer_flush_window called with non-positive window height 0, forcing to 1
2012/03/22 21:02:16 BGP: buffer_flush_window called with non-positive window height 0, forcing to 1
2012/03/22 21:03:17 BGP: buffer_flush_window called with non-positive window height 0, forcing to 1
2012/03/22 21:06:16 BGP: buffer_flush_window called with non-positive window height 0, forcing to 1 |
Решение было следующим. В скрипте lg.cgi необходимо заккоментировать (или удалить) следующий блок:
$telnet->put(pack("C9",
255, # TELNET_IAC
250, # TELNET_SB
31, 0, 200, 0, 0, # TELOPT_NAWS
255, # TELNET_IAC
240)); # TELNET_SE
После удаления этого блока все заработало. Итак, финиш… Ну и напоследок, скриншоты, как все это выглядит:
Вот так выглядит интерфейс:
Вывод комманды show ip bgp 31.43.184.0/24:
Вывод комманды show ip bgp neighbors 193.227.206.46 advertised-routes:
Вывод комманды show ip bgp summary:
Обзор нейбора (show ip bgp neighbors 193.227.207.14):
Обзор приходящих от нейбора роутов (show ip bgp neighbors 193.227.206.29 routes):
Вывод комманды ping 8.8.8.8:
Вывод комманды traceroute 8.8.8.8:
Источник http://muff.kiev.ua/content/bgp-looking-glass-dlya-bgp-routera
Запись опубликована в рубрике *Unix,*Linux, *Сети. Добавьте в закладки постоянную ссылку.
| |