<div dir="ltr">Hi Team,<div><br></div><div>I would like to bring up 2 VRF separated BGP neighborship between two routers as below</div><div><br></div><div> R1 [eth1.55]-------------------------[eth1.55] R2</div><div><br></div><div>B_VRF_BLUE<---------------------> B_VRF_BLUE </div><div>B_VRF_RED <---------------------> B_VRF_RED<br></div><div><br></div><div>I created two VRFs red and blue in the kernel.</div><div><br></div><div>ip link add red type vrf table 100<br>ip link set dev red up<br><br>ip link add blue type vrf table 200<br>ip link set dev blue up<br></div><div><br></div><div>Then i enslaved the logical interface to both VRFs red and blue.</div><div><br></div><div>ip link set dev eth1.55 master red  <br>ip link set dev eth1.55 master blue  ---> enslaving to red is overridden by blue after this<br></div><div><br></div><div>/tmp # ip link show eth1.55<br>14: eth1.55@eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue <b>master blue </b><br></div><div><br></div><div>At R1, I could see B_VRF_BLUE is established and at R2 B_VRF_RED is established.</div><div><br></div><div>R1</div><div>==</div><div>bird> show protocols<br>Name    Proto    Table    State  Since     Info<br></div><div>B_VRF_RED  BGP     ---     start  23:54:26.660  Idle      Received: Cease<br>B_VRF_BLUE BGP     ---     up   23:54:42.207  Established<br></div><div><br></div><div>R2</div><div>====</div><div>bird> show protocols<br>Name    Proto    Table    State  Since     Info<br></div><div>B_VRF_RED  BGP     ---     up   23:58:44.611  Established<br>B_VRF_BLUE BGP     ---     start  23:58:39.842  Active     Socket: Connection closed<br></div><div><br></div><div>Either one of the BGP sessions is established on both ends. The other session is not getting established.</div><div>Please let me know if I am missing anything here. <br></div><div><br></div><div>Also I noticed that L3VPN support was added into BIRD recently. Is there any support added to handle multiple VRF separated BGP neighborships during this commit ?</div><div>Please clarify.</div><div><br></div><div>Below are the configurations used.</div><div>R1</div><div>====</div><div>ipv4 table T_VRF_RED;<br>ipv4 table T_VRF_BLUE;<br></div><div><br></div><div>protocol kernel K_VRF_RED {<br>    vrf "red";<br>    kernel table 100;<br>    scan time 20;<br><br>    ipv4 {<br>        table T_VRF_RED;<br>        import all;<br>        export all;<br>    };<br>}<br>protocol kernel K_VRF_BLUE {<br>    vrf "blue";<br>    kernel table 200;<br>    scan time 20;<br><br>    ipv4 {<br>        table T_VRF_BLUE;<br>        import all;<br>        export all;<br>    };<br>}<br>protocol direct C_VRF_RED {<br>    vrf "red";<br>    ipv4 { table T_VRF_RED; };<br><br>}<br>protocol direct C_VRF_BLUE {<br>    vrf "blue";<br>    ipv4 { table T_VRF_BLUE; };<br><br>}<br><br>protocol static S_VRF_RED {<br>    vrf "red";<br>    ipv4 { table T_VRF_RED; };<br><br>    route <a href="http://10.10.1.0/24">10.10.1.0/24</a> blackhole;<br>}<br>protocol static S_VRF_BLUE {<br>    vrf "blue";<br>    ipv4 { table T_VRF_BLUE; };<br><br>    route <a href="http://10.10.1.0/24">10.10.1.0/24</a> blackhole;<br>}<br>protocol bgp B_VRF_RED {<br>    vrf "red";<br>    router id 10.16.44.216;<br>    local 55.0.0.1 as 100;<br>    neighbor 55.0.0.2  as 100;<br>    enable as4 on;<br>    hold time 90;<br>    keepalive time 30;<br>    direct;<br>    # regular IPv4 unicast (1/1)<br>    ipv4 {<br>        table T_VRF_RED;<br>        import all;<br>        export all;<br>    };<br>}<br>protocol bgp B_VRF_BLUE {<br>    vrf "blue";<br>    router id 10.16.44.216;<br>    local 55.0.0.1 as 100;<br>    neighbor 55.0.0.2  as 100;<br>    enable as4 on;<br>    hold time 90;<br>    keepalive time 30;<br>    direct;<br>    # regular IPv4 unicast (1/1)<br>    ipv4 {<br>        table T_VRF_BLUE;<br>        import all;<br>        export all;<br>    };<br>}<br></div><div><br></div><div>R2</div><div>====</div><div>ipv4 table T_VRF_RED;<br>ipv4 table T_VRF_BLUE;<br></div><div><br></div><div>protocol kernel K_VRF_RED {<br>    vrf "red";<br>    kernel table 100;<br>    scan time 20;<br><br>    ipv4 {<br>        table T_VRF_RED;<br>        import all;<br>        export all;<br>    };<br>}<br>protocol kernel K_VRF_BLUE {<br>    vrf "blue";<br>    kernel table 200;<br>    scan time 20;<br><br>    ipv4 {<br>        table T_VRF_BLUE;<br>        import all;<br>        export all;<br>    };<br>}<br>protocol direct C_VRF_RED {<br>    vrf "red";<br>    ipv4 { table T_VRF_RED; };<br><br>}<br>protocol direct C_VRF_BLUE {<br>    vrf "blue";<br>    ipv4 { table T_VRF_BLUE; };<br><br>}<br>protocol static S_VRF_RED {<br>    vrf "red";<br>    ipv4 { table T_VRF_RED; };<br><br>    route <a href="http://10.10.1.0/24">10.10.1.0/24</a> blackhole;<br>}<br>protocol static S_VRF_BLUE {<br>    vrf "blue";<br>    ipv4 { table T_VRF_BLUE; };<br><br>    route <a href="http://10.10.1.0/24">10.10.1.0/24</a> blackhole;<br>}<br>protocol bgp B_VRF_RED {<br>    vrf "red";<br>    router id 10.16.44.217;<br>    local 55.0.0.2 as 100;<br>    neighbor 55.0.0.1  as 100;<br>    enable as4 on;<br>    hold time 90;<br>    keepalive time 30;<br>    direct;<br>    # regular IPv4 unicast (1/1)<br>    ipv4 {<br>        table T_VRF_RED;<br>        import all;<br>        export all;<br>    };<br>}<br>protocol bgp B_VRF_BLUE {<br>    vrf "blue";<br>    router id 10.16.44.217;<br>    local 55.0.0.2 as 100;<br>    neighbor 55.0.0.1  as 100;<br>    enable as4 on;<br>    hold time 90;<br>    keepalive time 30;<br>    direct;<br>    # regular IPv4 unicast (1/1)<br>    ipv4 {<br>        table T_VRF_BLUE;<br>        import all;<br>        export all;<br>    };<br>}<br></div><div><br></div><div><br></div><div>Thanks,</div><div>Ramanathan </div></div>