![]() When a BGP vrf instance is deleted, the routes it exported into the main VPN table are not deleted and they remain as stale routes attached to an unknown bgp instance. When the new vrf instance comes along, it imports these routes from the main table and thus we see duplicatesalongside its own identical routes. The solution is to call the unexport logic when a BGP vrf instance is being deleted. problem example --------------- volta1# sh bgp vrf VRF-a ipv4 unicast BGP table version is 4, local router ID is 18.0.0.1, vrf id 5 Default local pref 100, local AS 567 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 7.0.0.6/32 7.0.0.5@0< 10 100 0 ? *> 7.0.0.8/32 18.0.0.8 0 0 111 ? *> 18.0.0.0/24 18.0.0.8 0 0 111 ? *> 56.0.0.0/24 7.0.0.5@0< 0 100 0 ? Displayed 4 routes and 4 total paths volta1# conf t volta1(config)# no router bgp 567 vrf VRF-a volta1(config)# volta1(config)# router bgp 567 vrf VRF-a volta1(config-router)# bgp router-id 18.0.0.1 volta1(config-router)# no bgp ebgp-requires-policy volta1(config-router)# no bgp network import-check volta1(config-router)# neighbor 18.0.0.8 remote-as 111 volta1(config-router)# ! volta1(config-router)# address-family ipv4 unicast volta1(config-router-af)# label vpn export 12345 volta1(config-router-af)# rd vpn export 567:111 volta1(config-router-af)# rt vpn both 567:100 volta1(config-router-af)# export vpn volta1(config-router-af)# import vpn volta1(config-router-af)# exit-address-family volta1(config-router)# ! volta1(config-router)# end volta1# sh bgp vrf VRF-a ipv4 unicast BGP table version is 4, local router ID is 18.0.0.1, vrf id 5 Default local pref 100, local AS 567 Status codes: s suppressed, d damped, h history, * valid, > best, = multipath, i internal, r RIB-failure, S Stale, R Removed Nexthop codes: @NNN nexthop's vrf id, < announce-nh-self Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 7.0.0.6/32 7.0.0.5@0< 10 100 0 ? * 7.0.0.8/32 18.0.0.8 0 0 111 ? *> 18.0.0.8@-< 0 0 111 ? * 18.0.0.0/24 18.0.0.8 0 0 111 ? *> 18.0.0.8@-< 0 0 111 ? *> 56.0.0.0/24 7.0.0.5@0< 0 100 0 ? Displayed 4 routes and 6 total paths @- routes indicating unknown bgp instance are imported Signed-off-by: Pat Ruddy <pat@voltanet.io> |
||
---|---|---|
.github | ||
alpine | ||
babeld | ||
bfdd | ||
bgpd | ||
debian | ||
doc | ||
docker | ||
eigrpd | ||
fpm | ||
gdb | ||
grpc | ||
include | ||
isisd | ||
ldpd | ||
lib | ||
m4 | ||
mlag | ||
nhrpd | ||
ospf6d | ||
ospfclient | ||
ospfd | ||
pbrd | ||
pimd | ||
pkgsrc | ||
python | ||
qpb | ||
redhat | ||
ripd | ||
ripngd | ||
sharpd | ||
snapcraft | ||
staticd | ||
tests | ||
tools | ||
vrrpd | ||
vtysh | ||
watchfrr | ||
yang | ||
zebra | ||
.clang-format | ||
.dir-locals.el | ||
.dockerignore | ||
.git-blame-ignore-revs | ||
.gitignore | ||
bootstrap.sh | ||
buildtest.sh | ||
changelog-auto.in | ||
config.version.in | ||
configure.ac | ||
COPYING | ||
COPYING-LGPLv2.1 | ||
Makefile.am | ||
README.md | ||
stamp-h.in |
FRRouting
FRR is free software that implements and manages various IPv4 and IPv6 routing protocols. It runs on nearly all distributions of Linux and BSD and supports all modern CPU architectures.
FRR currently supports the following protocols:
- BGP
- OSPFv2
- OSPFv3
- RIPv1
- RIPv2
- RIPng
- IS-IS
- PIM-SM/MSDP
- LDP
- BFD
- Babel
- PBR
- OpenFabric
- VRRP
- EIGRP (alpha)
- NHRP (alpha)
Installation & Use
For source tarballs, see the releases page.
For Debian and its derivatives, use the APT repository at https://deb.frrouting.org/.
Instructions on building and installing from source for supported platforms may be found in the developer docs.
Once installed, please refer to the user guide for instructions on use.
Community
The FRRouting email list server is located here and offers the following public lists:
Topic | List |
---|---|
Development | dev@lists.frrouting.org |
Users & Operators | frog@lists.frrouting.org |
Announcements | announce@lists.frrouting.org |
For chat, we currently use Slack. You can join by clicking the "Slack" link under the Participate section of our website.
Contributing
FRR maintains developer's documentation which contains the project workflow and expectations for contributors. Some technical documentation on project internals is also available.
We welcome and appreciate all contributions, no matter how small!
Security
To report security issues, please use our security mailing list:
security [at] lists.frrouting.org