Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pimd: eBGP integration for SA loop detection #17699

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

rzalamena
Copy link
Member

This PR implements the optional knob to enable eBGP integration to detect loops in SAs. The detection of MSDP SA loops works as follow:

  1. eBGP AS number is configured in the MSDP peer
  2. When SA is received the RP value is used in RPF check
    2.a. If the RPF route AS Path number matches the neighbor AS then the SA is accepted
    2.b. if the RPF route AS Path number doesn't match the neighbor (or doesn't exist) the SA is rejected (means that the SA is not coming from the shortest path)

Implement a new zebra API to request route lookup results. This is
similar to what `ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB` does, but it gets route
information and all next hop information (uses dynamically allocated
memory instead of expecting static array).

Signed-off-by: Rafael Zalamena <[email protected]>
Implement the 'RFC 4611 Section 2.1. Peering between PIM Border Routers'
knob to configure the expected eBGP remote AS number for detecting
loops.

Signed-off-by: Rafael Zalamena <[email protected]>
Implement the 'RFC 4611 Section 2.1. Peering between PIM Border Routers'
recommendation of using the peer AS number to check for loops in the
topology when using direct inter-domains connections.

Signed-off-by: Rafael Zalamena <[email protected]>
Let users know that they can utilize the BGP AS integration to detect
loops in SAs using the network topology.

Signed-off-by: Rafael Zalamena <[email protected]>
Allow MSDP peers to hold the following new information:
- Amount of RPF look up failures
- Amount of incoming SAs filtered
- Amount of outgoing SAs filtered

Signed-off-by: Rafael Zalamena <[email protected]>
Add new version of `show msdp peer` command with extra details and
a new command to clear MSDP peer counters.

Signed-off-by: Rafael Zalamena <[email protected]>
@rzalamena rzalamena force-pushed the msdp-ebgp branch 2 times, most recently from 91049f6 to 2db17c5 Compare January 2, 2025 13:37
eqvinox and others added 2 commits January 2, 2025 14:56
The previous logic was backwards.

Signed-off-by: David Lamparter <[email protected]>
Add topology for testing MSDP eBGP integration.

Signed-off-by: Rafael Zalamena <[email protected]>
@donaldsharp
Copy link
Member

Is there any particular reason we've added a second slightly different address lookup for pim instead of just modifying the first one?

@donaldsharp donaldsharp self-requested a review January 7, 2025 21:01
Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants