Bird 2.0.0 & VRF & Best Practices

Tim Weippert weiti at weiti.org
Sun Dec 17 20:00:16 CET 2017


Hi List, 

i tried Bird 2.0.0, Kernel 4.14.6, Archlinux, VRF separated BGP Peerings.

I get an Config running, where i had an BGP Peering in Global Space and
one in a VRF. As the VRF Config seems "complex" i though maybe i do
something wrong or even more complex as really needed.

I had the following setup:

VM1 - ens10 <----> ens10 - VM2 (Global Space, BGP Peering)
VM1 - VRF RED - ens11 <----> ens11 - VRF RED VM2 ( VRF Peering)

The following is my working config for the Peering "inside" the VRF:

# VRF RED Tests
ipv4 table T_VRF_RED;

protocol kernel K_VRF_RED {
        vrf "red";
        kernel table 100;
        scan time 20;

        ipv4 {
                table T_VRF_RED;
                import all;
                export all;
        };
}

protocol direct C_VRF_RED {
        vrf "red";
        ipv4 { table T_VRF_RED; };

        interface "ens11";
        interface "red"; # Think this can be ommitted ...
}

protocol static S_VRF_RED {
        vrf "red";
        ipv4 { table T_VRF_RED; };

        route 10.10.1.0/24 blackhole;
}

protocol bgp B_VRF_RED {
        vrf "red";
        local 172.16.10.[1|2] as 65100;
        neighbor 172.16.10.[2|1] as 65100;
        multihop;

        # regular IPv4 unicast (1/1)
        ipv4 {
                table T_VRF_RED;
                import all;
                export where source ~ [ RTS_STATIC, RTS_BGP ];
        };
}

I tried several configs (with protocol direct, without) but this seems
the only one, i get working Peerings with resolveable next hops.

Is this as intended? Per VRF Kernel, Direct, BGP (Static only in my
test) Protocol to get an working VRF aware / separated routing 
instance? 

Or is there something i misunderstand or can be simplified?

Thanks for comments.

regards, 
tim

-- 
Tim Weippert
http://weiti.org - weiti at weiti.org
GPG Fingerprint - E704 7303 6FF0 8393 ADB1  398E 67F2 94AE 5995 7DD8


More information about the Bird-users mailing list