-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Description
Is your proposed feature related to a problem?
Yes. Cilium-advertised service endpoints ends up as an individual /32 route. With a large number of routes this can exhaust a remote router’s capacity. We need a way to aggregate these advertised routes to reduce the total route count.
https://docs.cilium.io/en/stable/network/bgp-control-plane/bgp-control-plane-v2/#load-balancer-ip
Describe the feature you'd like
A feature to automatically aggregate advertised routes (e.g., combining multiple /32 routes into a /24) when Cilium announces addresses via BGP. This would mimic the behavior of MetalLB’s advanced BGP configuration, which supports route aggregation.
https://metallb.universe.tf/configuration/_advanced_bgp_configuration/
The lack of support for route aggregation prevented us from using Cilium when we would have greatly preferred to use it. We must use metalLB singularly because of the route aggregation support.
(Optional) Describe your proposed solution
- Extend Cilium’s BGP advertisement logic to group and merge prefixes when possible.
- Consider using an existing library for this aggregation https://github.com/projectdiscovery/mapcidr/blob/80579024db5600af6695a3ac552434093a10b596/ip.go#L489
- Optionally toggle advertising only the aggregated prefix(es) rather than numerous /32 routes.
- This approach would significantly reduce the number of routes on upstream routers, allowing Cilium to function in deployments where router route limits are a concern.