Prerequisites
Complete the following prerequisites before configuring the BGP peers:- Install Cilium by following Deploy Cilium CNI.
-
Enable Cilium BGP Control Plane in the Cilium Helm values:
- Configure the Talos workload-speaker topology on each node that runs a Cilium BGP instance.
- Label the selected Kubernetes node and the Services that Cilium should advertise.
Plan the peer values
The examples use these values:
Replace these values with addresses, ASNs, labels, and node names from your network design.
The two peer addresses must be assigned to the corresponding veth endpoints described in the native BGP overview.
Configure Cilium advertisements
Create aCiliumLoadBalancerIPPool for advertised Service VIPs and select only Services with the expected label:
CiliumBGPAdvertisement that advertises selected LoadBalancer IPs and the node Pod CIDR:
203.0.113.0/24 for this pool and the cluster Pod subnet that contains each node’s Pod CIDR.
Configure the Cilium peer
Create aCiliumBGPPeerConfig that selects the advertisement and sources the session from the workload-facing veth endpoint:
sourceInterface ensures that Cilium initiates the session from the veth endpoint outside the Talos workload VRF.
Create a CiliumBGPClusterConfig for the selected node:
localASN must match the Talos neighbor peerASN.
The Cilium peerASN must match the Talos workload instance localASN.
The peerAddress is the Talos-side veth address inside the workload VRF.
The tested Talos workload neighbor is passive, so Cilium initiates this session.
If you change the session direction, update both configurations consistently.
Advertise a service
Label a LoadBalancer Service so that both the address pool and advertisement select it:externalTrafficPolicy: Local keeps traffic on a node with a local backend.
Ensure that Cilium advertises the VIP only from nodes where your traffic policy can deliver it.
Apply and verify the configuration
Apply the Cilium resources:workload peer and then the imported fabric route:
installRoutes: false, the Cilium routes should not appear in the workload VRF or host main table on that node.
Imported paths also remain out of the Linux FIB on the importing node; the fabric peer’s advertised count should increase when matching routes are imported.
Use the native BGP troubleshooting workflow when the peer or route does not appear.
Also inspect the Cilium agent on the selected node: