Начал осваивать bird, пока для домашних целей, на quagga работало в принципе и кушать сильно не просило.
Как выглядит домашняя схема:
2 аплинка, один отдает 1ГБ канал через DHCP подключение, второй обычный ADSL используется в качестве резерва. ASDL модем отдает default route через rip2.
Как было: по dhcp получил адрес и работает, quagga по rip получает второй default gw и ставит его с повышенной метрикой в резерв, собственно весь конфиг кваги:
- Код: Выделить всё
log stdout
!
password zebra
enable password zebra
!
interface eth0
ipv6 nd suppress-ra
!
interface eth1
ipv6 nd suppress-ra
!
interface eth2
ipv6 nd suppress-ra
!
interface lo
!
interface tun0
ipv6 nd suppress-ra
!
interface tun11
ipv6 nd suppress-ra
!
router rip
version 2
redistribute connected
network 192.168.8.0/24
!
ip forwarding
!
line vty
!
Этого хватало.
Теперь использую bird:
- Код: Выделить всё
# cat /etc/bird/bird.conf|grep -v "^#"
timeformat base iso long;
timeformat log iso long;
timeformat protocol iso long;
timeformat route iso long;
log "/var/log/bird/bird.log" all;
log stderr all;
router id 192.168.7.254;
protocol kernel {
scan time 20;
import none;
export all; # Actually insert routes into the kernel routing table
}
protocol direct {
interface "eth0", "eth3";
}
protocol device {
scan time 20;
}
debug protocols { routes, interfaces };
protocol rip {
debug all;
interface "eth0" { metric 2; mode multicast; };
import filter { print "importing"; accept; };
export filter { print "exporting"; accept; };
}
#
Вроде ничего такого и тоже должно работать, но увы, не работает как надо.
После того как опускает 1ГБ аплинк, ifdown eth3, default gw пропадает и через не много времени появляется default gw по rip2, то есть в принципе переход выполнен успешно.
Но дальше поднимает назад интерфейс ifup eth3, он получает адрес и гейт по dhcp и увы, он не меняет default route который прилетел до этого по rip2. В итоге трафик все равно уходит через ADSL.
Как можно научить bird работать с dhcp интерфейсом?
Заранее извиняюсь если не правильно выразился или не понятным языком. Старался описать ситуацию максимально подробно.