Связываем вместе quagga, openospfd, openbgpd [2010]
Все знают quagga (потомок zebr'ы). Недавно
услышал, что есть такая штука, как openbgpd, openospfd. Решил
попробовать, что оно такое, и что лучше.
Народ пишет, что "детища" open'ка (openbgpd,
openospfd) работают шустрее, чем та же quagga, и нагрузка на сервак
меньше. У меня, к сожалению нет возможности сравнить их при, например, 100 000
анонсах и посмотреть, кто как работает, поэтому, опишу базовую настройку, и
обслуживаение.
Будем исходить из того, что quagga, openbgpd,
openospfd у вас уже стоят. Если нет - тогда бегом обновляем порты, и
ставим их. Они находятся в /usr/port/net.
Кратко скажу о топологии сети, в которой находятся роутеры.
Это обычная тестовая локалка, в ней 3 машины, один интерфейс каждой из них
смотрит в локалку 192.168.5.0/24, остальные - тестовые, им спецом прибиты
IP, что бы проверить работу динамической машрутизации.
quagga -
192.168.5.8
openbgpd -
1912.168.5.65
openospfd -
192.168.5.10
0)Предисловие.
Для удачной работы протокола ospf, нужно выставить
переменную sysctl
net.inet.ip.forwarding=1
иначе, будет выдавать предпреждение
WARNING: IP forwarding
NOT enabled, running as stub router
что означает, что роутер не будет принимать внешние маршруты.
Ещё хочется отметить такой факт под openbsd. В портах
есть пакет quagga, но на самом деле это не что иное, как собранные вместе
пакеты openbgpd, openpspfd, openrip. Поэтому, синтаксис
должен походить на синтаксис open. Естественно, что запускать нужно
каждый демон отдельно.
Синтаксис пакетов не похож на цисковский и квагговский,
поэтому будьте внимательны.
Как видим, все маршруты помещены в таблицу маршрутизации.
5)Проверяем работу
openbgpd.
Для управления работой bgpd демона, существует утилита
bgpctl, с помощью которой можно на ходу менять, смотреть таблицу
маршрутзации:
#bgpctl show
rib flags: * = Valid, > = Selected, I = via IBGP, A =
Announced origin: i = IGP, e = EGP, ? = Incomplete flags
destination gateway lpref med aspath origin *>
1.0.0.0/8 192.168.5.8 100 0 8 i *>
2.2.0.0/16 192.168.5.8 100 0 8 i AI*>
6.0.0.0/8 0.0.0.0 100 0 i AI*>
7.0.0.0/10 0.0.0.0 100 0 i
#bgpctl show
fib flags: * = valid, B = BGP, C = Connected, S = Static N =
BGP Nexthop reachable via this route r = reject route, b = blackhole
route flags prio destination gateway *S 0
0.0.0.0/0 192.168.5.1 *B 48 1.0.0.0/8
192.168.5.8 *B 48 2.2.0.0/16 192.168.5.8 *C 0
127.0.0.1/8 link#0 *C 0 127.0.0.1/32
link#3 *CN 0 192.168.5.0/24 link#1 *C 0
192.168.5.65/32 link#3
Примечание. На 6-ку
freebsd не хотело устанавливаться, получилось только на 8-ку.
6)Проверяем работу
openospfd.
Здесь так же есть утилита управления демоном ospfctl.
Собственно смотрим:
# ospfctl show
rib Destination Nexthop Path Type Type Cost
Uptime 11.0.0.0/11 192.168.5.8 Intra-Area Network 20
01:26:00 192.168.5.0/24 192.168.5.10 Intra-Area Network
10 01:29:48
# ospfctl show
fib flags: * = valid, O = OSPF, C = Connected, S = Static Flags
Destination Nexthop *S 0.0.0.0/0
192.168.5.1 *O 11.0.0.0/11 192.168.5.8 *C
22.22.20.0/22 link#4 *C 127.0.0.1/8 link#0 *
127.0.0.1/32 127.0.0.1 *C 192.168.5.0/24 link#1
Примечание. Здесь так же меньше настроек, чем в ospf
(quagga).
7) Заключение.
Лично я так пока и не определился с тем, что выбрать. Пока
сижу на quagga, там больше возможностей по настройке под свои нужды. Так
же разнится синтаксис: под quagga - он больше походит на цисковский.