![]() When the ASBR stops announcing a prefix into the NSSA area, the LSA type 7 is removed from the area. However the ABR is refreshing the type 5 in its LSDB while removing the Type 7 LSA. Routers outside the area do not get an update. With the following topology: r1---r2---r3, with r3 being the ASBR announcing type 7 LSA: r3 configuration router ospf redistribute static network 10.0.23.0/24 area 1 area 1 nssa ! We stop announcing prefix 3.3.3.3 in the ASBR r3# conf r3(config)# router ospf r3(config-router)# no redistribute static r3(config-router)# r2 (ABR) r2# sh ip os database NSSA-external Link States (Area 0.0.0.1 [NSSA]) Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 33.33.33.33 3600 0x8000002f 0x13be E2 3.3.3.3/32 [0x0] <-- flushed AS External Link States Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 10.0.25.2 7 0x8000002f 0x73c7 E2 3.3.3.3/32 [0x0] <-- refreshed(?) With PR#7086 the LSA type 5 is flushed from the LSDB in r2 and the change is announced to routers outside the area (r1) r2# sh ip os da NSSA-external Link States (Area 0.0.0.1 [NSSA]) Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 33.33.33.33 3600 0x80000002 0x6d91 E2 3.3.3.3/32 [0x0] <-- flushed AS External Link States Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 10.0.25.2 3600 0x80000002 0xcd9a E2 3.3.3.3/32 [0x0] <-- flushed r1# sh ip os da AS External Link States Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 10.0.25.2 3600 0x80000002 0xcd9a E2 3.3.3.3/32 [0x0] <-- flushed Unfortunately I just realized that with PR#7086 I'm introducing a new bug, as Type-5 LSA are not being refreshed when reaching MaxAge r2# sh ip os da NSSA-external Link States (Area 0.0.0.1 [NSSA]) Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 33.33.33.33 35 0x80000002 0x6d91 E2 3.3.3.3/32 [0x0] <--- refreshed AS External Link States Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 10.0.25.2 3600 0x80000002 0xcd9a E2 3.3.3.3/32 [0x0] <--- not refreshed! So this PR should fix the original issue and the bug introduced later, so when stopping redistribution in the ASBR, both type 5 and type 7 are flushed: r2# sh ip os da NSSA-external Link States (Area 0.0.0.1 [NSSA]) Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 33.33.33.33 3600 0x80000002 0x6d91 E2 3.3.3.3/32 [0x0] AS External Link States Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 10.0.25.2 3600 0x80000002 0xcd9a E2 3.3.3.3/32 [0x0] Routers outside the area are also notified r1# sh ip os da Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 10.0.25.2 3600 0x80000002 0xcd9a E2 3.3.3.3/32 [0x0] Re-enabling redistribution, both LSA will be advertised again r3# conf r3(config)# router ospf r3(config-router)# no redistribute static r3(config-router)# redistribute static r3(config-router)# r2# sh ip os da NSSA-external Link States (Area 0.0.0.1 [NSSA]) Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 33.33.33.33 19 0x80000001 0x6f90 E2 3.3.3.3/32 [0x0] AS External Link States Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 10.0.25.2 11 0x80000001 0xcf99 E2 3.3.3.3/32 [0x0] and they are refreshed when reaching MaxAge NSSA-external Link States (Area 0.0.0.1 [NSSA]) Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 33.33.33.33 10 0x80000002 0x6d91 E2 3.3.3.3/32 [0x0] <-- Seq 2 AS External Link States Link ID ADV Router Age Seq# CkSum Route 3.3.3.3 10.0.25.2 2 0x80000002 0xcd9a E2 3.3.3.3/32 [0x0] <-- Seq 2 Signed-off-by: ckishimo <carles.kishimoto@gmail.com> |
||
---|---|---|
.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