VRF separated BGP neighborships over a logical interface
Ramanathan Selvamani
ramana.it05 at gmail.com
Wed Mar 29 09:28:29 CEST 2023
Hi Team,
I would like to bring up 2 VRF separated BGP neighborship between two
routers as below
R1 [eth1.55]-------------------------[eth1.55] R2
B_VRF_BLUE<---------------------> B_VRF_BLUE
B_VRF_RED <---------------------> B_VRF_RED
I created two VRFs red and blue in the kernel.
ip link add red type vrf table 100
ip link set dev red up
ip link add blue type vrf table 200
ip link set dev blue up
Then i enslaved the logical interface to both VRFs red and blue.
ip link set dev eth1.55 master red
ip link set dev eth1.55 master blue ---> enslaving to red is overridden
by blue after this
/tmp # ip link show eth1.55
14: eth1.55 at eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc
noqueue *master
blue *
At R1, I could see B_VRF_BLUE is established and at R2 B_VRF_RED is
established.
R1
==
bird> show protocols
Name Proto Table State Since Info
B_VRF_RED BGP --- start 23:54:26.660 Idle
Received: Cease
B_VRF_BLUE BGP --- up 23:54:42.207 Established
R2
====
bird> show protocols
Name Proto Table State Since Info
B_VRF_RED BGP --- up 23:58:44.611 Established
B_VRF_BLUE BGP --- start 23:58:39.842 Active Socket:
Connection closed
Either one of the BGP sessions is established on both ends. The other
session is not getting established.
Please let me know if I am missing anything here.
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 ?
Please clarify.
Below are the configurations used.
R1
====
ipv4 table T_VRF_RED;
ipv4 table T_VRF_BLUE;
protocol kernel K_VRF_RED {
vrf "red";
kernel table 100;
scan time 20;
ipv4 {
table T_VRF_RED;
import all;
export all;
};
}
protocol kernel K_VRF_BLUE {
vrf "blue";
kernel table 200;
scan time 20;
ipv4 {
table T_VRF_BLUE;
import all;
export all;
};
}
protocol direct C_VRF_RED {
vrf "red";
ipv4 { table T_VRF_RED; };
}
protocol direct C_VRF_BLUE {
vrf "blue";
ipv4 { table T_VRF_BLUE; };
}
protocol static S_VRF_RED {
vrf "red";
ipv4 { table T_VRF_RED; };
route 10.10.1.0/24 blackhole;
}
protocol static S_VRF_BLUE {
vrf "blue";
ipv4 { table T_VRF_BLUE; };
route 10.10.1.0/24 blackhole;
}
protocol bgp B_VRF_RED {
vrf "red";
router id 10.16.44.216;
local 55.0.0.1 as 100;
neighbor 55.0.0.2 as 100;
enable as4 on;
hold time 90;
keepalive time 30;
direct;
# regular IPv4 unicast (1/1)
ipv4 {
table T_VRF_RED;
import all;
export all;
};
}
protocol bgp B_VRF_BLUE {
vrf "blue";
router id 10.16.44.216;
local 55.0.0.1 as 100;
neighbor 55.0.0.2 as 100;
enable as4 on;
hold time 90;
keepalive time 30;
direct;
# regular IPv4 unicast (1/1)
ipv4 {
table T_VRF_BLUE;
import all;
export all;
};
}
R2
====
ipv4 table T_VRF_RED;
ipv4 table T_VRF_BLUE;
protocol kernel K_VRF_RED {
vrf "red";
kernel table 100;
scan time 20;
ipv4 {
table T_VRF_RED;
import all;
export all;
};
}
protocol kernel K_VRF_BLUE {
vrf "blue";
kernel table 200;
scan time 20;
ipv4 {
table T_VRF_BLUE;
import all;
export all;
};
}
protocol direct C_VRF_RED {
vrf "red";
ipv4 { table T_VRF_RED; };
}
protocol direct C_VRF_BLUE {
vrf "blue";
ipv4 { table T_VRF_BLUE; };
}
protocol static S_VRF_RED {
vrf "red";
ipv4 { table T_VRF_RED; };
route 10.10.1.0/24 blackhole;
}
protocol static S_VRF_BLUE {
vrf "blue";
ipv4 { table T_VRF_BLUE; };
route 10.10.1.0/24 blackhole;
}
protocol bgp B_VRF_RED {
vrf "red";
router id 10.16.44.217;
local 55.0.0.2 as 100;
neighbor 55.0.0.1 as 100;
enable as4 on;
hold time 90;
keepalive time 30;
direct;
# regular IPv4 unicast (1/1)
ipv4 {
table T_VRF_RED;
import all;
export all;
};
}
protocol bgp B_VRF_BLUE {
vrf "blue";
router id 10.16.44.217;
local 55.0.0.2 as 100;
neighbor 55.0.0.1 as 100;
enable as4 on;
hold time 90;
keepalive time 30;
direct;
# regular IPv4 unicast (1/1)
ipv4 {
table T_VRF_BLUE;
import all;
export all;
};
}
Thanks,
Ramanathan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20230329/11d88a9a/attachment.htm>
More information about the Bird-users
mailing list