Ignore our own prefixes from our own routers, and say why a route for a network of this machine is held

Two routers of an AS that both originate a prefix (anycast) each
announce it to the other over their internal session. Each took the
other's route, could not install it in the kernel, since the prefix is
on one of its own interfaces, and so held it, counted as rejected with
"next hop unreachable": a permanent rejection on a healthy session, for
a next hop that was in fact fine.

A route from a peer in our own AS for a prefix this router originates
is now ignored: not taken, not held, not counted. Only that prefix
itself; what is inside it is judged as usual. From other networks such
routes are refused as our own prefixes, as before.

A route that is held because its prefix is a network of this machine,
or inside one (an exchange's LAN prefix, say), is now counted as "prefix
is a network of this router", apart from routes whose next hop cannot
be reached.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Rayhaan JaufeerallyandClaude Opus 5.5 committed 2026-10-05 16:11:53 +02:00
1 parent 52593bb2c2
commit 3609451bdc
8 files changed
+131 -16

No files matched your search

@@ -48,6 +48,12 @@ For IBGP neighbors (where `remote_asn` equals `local_asn`), Ferrix applies
only the checks on the prefix. The AS path checks do not apply, and the
next hop can be any usable address.
An IBGP neighbor can advertise a prefix that the local router also
originates, for example an anycast prefix that both routers originate.
Ferrix ignores such a route: it does not accept the route, and does not
count it as rejected. This applies only to the originated prefix itself,
not to more specific prefixes within it.
Ferrix always rejects the routes in Table 2. These checks cannot be
disabled.
+3 -1
View File
@@ -78,7 +78,9 @@ kernel reaches these destinations directly. Without this rule, a neighbor
on a shared LAN that advertises part of the LAN could attract the traffic
for other hosts on the LAN, including the BGP sessions with them.
The status page counts such routes as "inside a network of this machine".
Ferrix holds such a route, and counts it as rejected with the reason
`prefix is a network of this router`. If the subnet is removed from the
interface, Ferrix accepts the route.
## Route Ownership