Skip to content

BGP and External Networking: CCA practice questions

This topic is about making a Cilium cluster reachable from the network around it. Border Gateway Protocol is how routers exchange reachability, and Cilium's BGP Control Plane lets nodes peer with routers in the data center and advertise prefixes such as pod CIDRs or Service addresses.

By Ibrahim Yesilay · Published · Updated

Independent community practice, not affiliated with or endorsed by CNCF or The Linux Foundation.

What BGP and External Networking covers in CCA

This topic is about making a Cilium cluster reachable from the network around it. Border Gateway Protocol is how routers exchange reachability, and Cilium's BGP Control Plane lets nodes peer with routers in the data center and advertise prefixes such as pod CIDRs or Service addresses. One limit is stated plainly in the documentation: the BGP Control Plane does not program the datapath, so it must not be used to establish reachability inside the cluster. It announces routes to the outside; it does not replace the routing mode Cilium uses between its own nodes.

The feature is switched on with the Helm value bgpControlPlane.enabled=true followed by a restart of the cilium DaemonSet, or at install time with cilium install and the same value. Configuration then lives in custom resources that each have one job.

CiliumBGPClusterConfig selects nodes with a nodeSelector and defines bgpInstances. Each instance has a name and a localASN and lists peers, each with a peerASN, a peerAddress and a peerConfigRef. That reference points at a CiliumBGPPeerConfig, which holds settings several peers can share: the address families, timers (connect retry 120 seconds, hold time 90 and keepalive 30 by default), an authSecretRef for a TCP MD5 password, graceful restart and eBGP multihop. Only ipv4/unicast and ipv6/unicast are supported families; when families are omitted, both IPv4 and IPv6 unicast capabilities are announced to the peer.

Each family carries a label selector for advertisements. A CiliumBGPAdvertisement says what to announce, and its advertisementType is PodCIDR, CiliumPodIPPool, Service or Interface. A Service advertisement chooses which addresses to announce, LoadBalancerIP, ClusterIP or ExternalIP, and selects Services by labels; it can also attach BGP communities and a local preference, the latter applying only to iBGP peers. A point that explains many empty routing tables: without a matching advertisement, no prefix is advertised to the peer, even when the session is established.

The operator turns the cluster-level configuration into one CiliumBGPNodeConfig per selected node, and that resource's status holds the live state of each instance and peer: session state, established time, route counts per address family and the negotiated timers. A CiliumBGPNodeConfigOverride, named after a node, can set that node's router ID, local port, local ASN or per-peer local address when the generated values are not right.

For day-to-day checks the cilium CLI has cilium bgp peers, which lists sessions with their state, uptime and received and advertised route counts, and cilium bgp routes, which shows the available local routes and what was advertised to each peer.

BGP also relates to the datapath choice. In native routing mode the network must know how to reach every pod CIDR; when nodes are not on one shared layer 2 segment, a routing daemon such as BGP is how those routes get distributed.

Key points

  • Enable with the Helm value bgpControlPlane.enabled=true, then restart the cilium DaemonSet.
  • Advertisement types are PodCIDR, CiliumPodIPPool, Service and Interface.
  • A peer with no matching CiliumBGPAdvertisement receives no prefixes at all.
  • CiliumBGPNodeConfig is generated by the operator per node and its status shows the live BGP state.

Three sample questions

8 CCA questions on BGP and External Networking, 8 with explanations. How practice works

Question 1

Which Cilium resource is used to configure BGP peering?
  1. A.CiliumBGPConfig
  2. B.CiliumBGPPeeringPolicy
  3. C.CiliumBGPRouter
  4. D.CiliumBGPAdvertisement

Correct answer: B

CiliumBGPPeeringPolicy is the Cilium resource used to configure BGP peering. It defines BGP neighbors, ASNs, and which resources should be advertised via BGP.

Question 2

What does Cilium's BGP implementation enable?
  1. A.Replacing internal Kubernetes CNI functionality
  2. B.Exposing Kubernetes services to external networks without cloud load balancers
  3. C.Direct connection between pods across multiple clusters
  4. D.Automatic service mesh capability

Correct answer: B

Cilium's BGP implementation enables exposing Kubernetes services to external networks without cloud load balancers by advertising service IPs via BGP to external routers.

Question 3

Which command would you use to check the status of BGP peers in Cilium?
  1. A.cilium bgp peers
  2. B.cilium status bgp
  3. C.kubectl get ciliumbgppeers
  4. D.kubectl describe bgp

Correct answer: A

The "cilium bgp peers" command is used to check the status of BGP peers in Cilium, showing information about peering sessions and their state.

Practice this topic

Focus mode keeps every question on BGP and External Networking until you leave it. 10 free guest answers, then a free account; no credit card.

Or open CCA practice across all topics.

Sources

The explanation above was checked against these official documents.

Frequently asked questions

Can the BGP Control Plane replace tunnelling between Cilium nodes?

Not by itself. The documentation says the BGP Control Plane does not program the datapath and should not be used for in-cluster reachability. It advertises prefixes to external routers; pod-to-pod connectivity still depends on the configured routing mode.