OSPF Configuration Guidance

Kevin P. Fleming kevin+bird at km6g.us
Sun Jan 2 18:33:22 CET 2022


This may be the wrong place to ask for this guidance, as I suspect
it's more related to OSPF than to Bird, but...

I've got two systems running Debian Sid (kernel 5.15, Bird 2.08-2)
which are connected to a 'transport' Ethernet with two other systems
running OSPF.

Each of these two systems has three 'dummy' interface with IPv4 and
IPv6 addresses on them, which are used for binding services (SSH, NTP,
and DNS recursor). The NTP and DNS addresses are 'anycast', both
systems respond to the same addresses.

All of the OSPF stuff is in area 0. I've pasted the Bird configuration
below. While everything is working, I'm concerned I may have chosen
non-optimal ways to achieve my goals :)

Goals:

* Broadcast routes for the three dummy interfaces, but don't export
routes for anycast addresses into the kernel routing tables.

* Don't export any routes into the kernel routing tables unless they
came from OSPF.

' Don't broadcast a route for the 'transport' network, as every node
which needs it is directly connected.

Any guidance or advice/criticism very much welcome!

------------------
router id 192.168.120.2;

protocol device {
        scan time 60;
}

filter f_kernel4 {
    if source !~ [RTS_OSPF, RTS_OSPF_EXT2] then reject;
    if net.ip ~ 192.168.255.0/24 then reject;
    accept;
}

protocol kernel kernel4 {
        scan time 60;
    ipv4 {
        import none;
        export filter f_kernel4;
    };
}

filter f_kernel6 {
    if source !~ [RTS_OSPF, RTS_OSPF_EXT2] then reject;
    if net.ip ~ 2001:470:8afe:255::/64 then reject;
    accept;
}

protocol kernel kernel6 {
        scan time 60;
    ipv6 {
        import none;
        export filter f_kernel6;
    };
}

protocol ospf v2 ospf4 {
    ipv4 {
        import where source != RTS_DEVICE;
        export all;
    };
    area 0 {
        interface "transport" {
        };
        interface "mgmt" {
        };
        interface "ntp" {
        };
        interface "dns" {
        };
    };
}

protocol ospf v3 ospf6 {
    ipv6 {
        import where source != RTS_DEVICE;
        export all;
    };
    area 0 {
        interface "transport" {
        };
        interface "mgmt" {
        };
        interface "ntp" {
        };
        interface "dns" {
        };
    };
}

protocol static static4 {
    ipv4;
    check link;
    route 192.168.120.2/32 via "mgmt" { ospf_metric1 = 0; };
    route 192.168.255.1/32 via "ntp" { ospf_metric1 = 0; };
    route 192.168.255.2/32 via "dns" { ospf_metric1 = 0; };
}

protocol static static6 {
    ipv6;
    check link;
    route 2001:470:8afe:120::2/128 via "mgmt" { ospf_metric1 = 0; };
    route 2001:470:8afe:255::1/128 via "ntp" { ospf_metric1 = 0; };
    route 2001:470:8afe:255::2/128 via "dns" { ospf_metric1 = 0; };
}


More information about the Bird-users mailing list