5

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
!
4

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.