oxidecomputer / oxidecomputer/maghemite

Want support for indirect / non-connected next-hops

Open
#561 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bgp mgd static want
Dominant language
Rust
Stars
94
Forks
6
Avg merge
1d 8h
Merged PRs (30d)
12

Description

There is no existing logic in maghemite to perform next-hop validity checks (beyond ensuring it is unicast and isn't a local address) or recursive resolution.

This means that if a BGP peer sends us a route with a non-connected next-hop (e.g. an eBGP peer is using a third-party next-hop or has modified it via policy, or an iBGP peer is re-advertising an external route w/o next-hop self), or if a static route is configured with a non-connected next-hop, we will just accept and install the route with the next-hop as-is.

This is problematic for indirect next-hops because there will (usually) be no way for ARP/NDP to complete.
Note: There may be some exceptions to this, e.g. if we are targeting an address assigned to the directly connected peer and their ARP/NDP stack replies to queries targeting a local address not assigned to the interface queries arrive on (on Linux, this is controlled by the arp_accept sysctl parameter).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No file or test is named. Start by locating next-hop validation and route-installation paths, then trace how BGP and static routes handle non-connected next-hops. Done should include defined validity checks and recursive resolution for indirect next-hops, with coverage for the described BGP and static-route cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.