Для примера настрою протокол internal BGP в Bird, в моем случае iBGP понадобился для того чтобы передавать маршруты пользователей с нескольких серверов доступа на NAT сервер. В качестве серверов доступа я настраивал Accel-ppp (ipoe) и JuniperMX, все они работали одновременно и балансировал пользователей делая искусственную задержку DHCPOFFER.
Основную настройку Bird я описывал в статье:
Установка и настройка BIRD (BGP)
Теперь приведу пример настройки секций iBGP на основном NAT сервере (он является шлюзом по умолчанию для всех серверов) и укажем route reflector client для серверов доступа:
protocol bgp AccelIpoe1 {
debug { states, events };
router id 192.168.5.1;
source address 192.168.5.1;
local as 65000;
neighbor 192.168.5.9 as 65000;
direct;
next hop self;
rr client;
import filter import_32;
export none;
}
protocol bgp JuniperMX204 {
description «ixnfo.com»;
debug { states, events };
router id 192.168.5.1;
source address 192.168.5.1;
local as 65000;
neighbor 192.168.5.8 as 65000;
direct;
next hop self;
rr client;
import filter import_32;
export none;
}
Приведу пример настроек на серверах доступа, где запущен Accel-ppp:
router id 192.168.5.9;
protocol direct {
interface "ipoe*";
}
protocol kernel {
persist off;
scan time 30;
learn;
import all;
export all;
}
protocol device {
scan time 100;
}
filter import_32 {
if net.len = 32 then {
# print "net accepted:", net;
accept;
}
else{
# print "net rejected:", net;
reject;
}
}
protocol bgp ixnfo.com {
debug { states, events };
router id 192.168.5.9;
source address 192.168.5.9;
local as 65000;
neighbor 192.168.5.1 as 65000;
next hop self;
import none;
export filter import_32;
}
Перезапустим bird чтобы применить изменения:
service bird restart
На основном сервере посмотрим количество маршрутов, чтобы убедиться что они импортировались:
ip route | wc -l
ip route | less
Пример просмотра маршрутов в Bird:
birdc
show route all table master
exit
Смотрите также мою статью:
Настройка iBGP на Juniper MX