BIRD: Calico's BGP Implementation

BIRD: Calico's BGP Implementation An architecture diagram generated by Archify. Calico API · BGP config / node state · Calico Node (calico-node DaemonSet pod) Calico API BGP config / node state confd · templates BIRD config · Calico Node (calico-node DaemonSet pod) confd templates BIRD config BIRD BGP · BGP speaker · Calico Node (calico-node DaemonSet pod) BIRD BGP BGP speaker Routing Table · kernel routes · Calico Node (calico-node DaemonSet pod) Routing Table kernel routes Felix · policy agent · Calico Node (calico-node DaemonSet pod) Felix policy agent Dataplane · iptables / eBPF · Calico Node (calico-node DaemonSet pod) Dataplane iptables / eBPF External Router · eBGP / iBGP peer · Architecture component External Router eBGP / iBGP peer Other Calico Nodes · BIRD on each node · Architecture component Other Calico Nodes BIRD on each node watch configure program routes BGP peering BGP peering program rules Calico Node (calico-node DaemonSet pod) Legend Backend Database Security External

BGP path

  • • Calico API holds BGPConfiguration and node state
  • • confd renders it into BIRD configuration
  • • BIRD programs pod routes into the routing table

Peering

  • • BIRD peers with external routers
  • • BIRD peers with BIRD on other Calico nodes (mesh or RR)

Dataplane

  • • Felix programs iptables/eBPF independently of BGP