I am having some difficulty getting my OSPF configuration to play nicely
with OpenVPN tunnels on FreeBSD. I have a number of point-to-point tunnels
between sites, with a BIRD instance running on each tunnel endpoint.
Endpoint addresses for a tunnel use a logical /31. Initially, the BIRD
instances would talk to each other, but the endpoint addresses were not
advertised by OSPF, making them unreachable.

I remedied this by adding stubnet declarations (/32) for each of the tunnel
endpoints. This has the effect of making all of my endpoint addresses
reachable, but causes another issue. In this configuration, if I restart
one of my OpenVPN tunnels, it fails to set addressing on the tunnel,
because the host route already exists in the routing table (due to the
stubnet).

I have attached my OSPF configuration below. Is there some better way of
configuring this, to make my tunnel endpoints advertise properly without
declaring them as stubnets?

Thanks!

protocol ospf {
    tick 2;
    area 0 {
        stub no;
        stubnet 10.70.0.3/32;
        stubnet 172.26.26.5/32;
        stubnet 1.2.3.221/32;
        interface "re0" {
            stub;
            cost 100;
            hello 2;
            dead 10;
            authentication cryptographic;
            password "password";
        };
        interface "tun*" {
            type ptp;
            hello 2;
            dead 10;
            authentication cryptographic;
            password "password";
        };
    };
}

Reply via email to