I need/want to migrate from Quagga to BIRD after several Quagga hiccups, namely Quagga stopped working after updates in Stretch.
BIRD is also more flexible and modern.
I have my OSPF BIND anycast configuration in Quagga and would like to setup the OSPF service in a way similar on BIRD.
What to do?
My /etc/quagga/ospfd.conf is:
! ! Zebra configuration saved from vty ! 2011/03/22 21:17:11 ! hostname dns password 8 xxxxxxx enable password 8 xxxxxxx log stdout service password-encryption ! ! ! interface dummy0 ip ospf cost 100 ! interface dummy1 ip ospf cost 500 ! interface dummy2 ip ospf cost 1000 ! interface dummy3 ip ospf cost 900 ! interface eth0 ip ospf authentication message-digest ip ospf message-digest-key 5 md5 MySecretPassword ip ospf cost 1000 ! interface eth1 ip ospf cost 1000 ! interface lo ! router ospf ospf router-id 1.1.1.1 auto-cost reference-bandwidth 10000 network 1.1.1.0/22 area 0.0.0.0 network 2.2.2.2/32 area 0.0.0.0 network 3.3.3.3/32 area 0.0.0.0 network 4.4.4.4/32 area 0.0.0.0 network 5.5.5.5/32 area 0.0.0.0 area 0 filter-list prefix AREA_1_OUT out ! ip prefix-list AREA_1_OUT seq 5 permit 2.2.2.2/32 ip prefix-list AREA_1_OUT seq 10 permit 3.3.3.3/32 ip prefix-list AREA_1_OUT seq 15 permit 4.4.4.4/32 ip prefix-list AREA_1_OUT seq 20 permit 5.5.5.5/32 ip prefix-list AREA_1_OUT seq 25 deny any ! line vty !
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
After solving the problems described here OSPF md5 encryption from Quagga to BIRD and in OSPF route costs in BIRD , the rest of the migration is relatively easy.
To have an equivalent service, the steps are:
sudo dpkg --purge quagga sudo apt-get install bird sudo chkconfig bird6 off sudo service bird6 stop
Then there is a need to create the setup in /etc/bird/bird.conf as:
#
router id 1.1.1.1;
# The Device protocol is not a real routing protocol. It doesn't generate any
# routes and it only serves as a module for getting information about network
# interfaces from the kernel.
protocol device {
scan time 10;
}
protocol ospf {
tick 2;
rfc1583compat yes;
area 0.0.0.0 {
networks {
1.1.1.0/22;
};
stubnet 2.2.2.2/32 {
cost 100;
};
stubnet 3.3.3.3/32 {
cost 500;
};
stubnet 4.4.4.4/32 {
cost 1000;
};
stubnet 5.5.5.5/32 {
cost 900;
};
interface "eth0" {
cost 1000;
password "MySecretPassword" {
id 5;
};
authentication cryptographic;
};
interface "dummy0" {
stub;
};
interface "dummy1" {
stub;
};
interface "dummy2" {
stub;
};
interface "dummy3" {
stub;
};
};
}
After modifying the configuration:
sudo service bird restart
To check for the service on the local server:
sudo birdc
and then
show status
and
show ospf
and
show ospf state
and
show ospf neighbors
P.S. I did not find a straightforward document, and did not find much about Quagga coexisting and migrating to BIRD, and decided to document it here.
I did not migrate all my Quagga servers/OSPF nodes at once, because both configurations are similar, and talk with each other (via the OSPF protocol obviously).
See also OSPF import route filter for BIRD
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0