oxidecomputer / oxidecomputer/maghemite
Want support for indirect / non-connected next-hops
Nobody has claimed this yet.
- 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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