Networking

The Calico network plugins provide a range of networking options to fit your implementation and maximize performance.

Getting started

Determine best networking optionLearn about the different networking options Calico supports so you can choose the best option for your needs.About NetworkingLearn about networking!About Kubernetes NetworkingLearn about Kubernetes networking!

Configuring networking

Configure BGP peeringConfigure BGP peering with full mesh, node-specific peering, ToR, and/or Calico route reflectors.Overlay networkingConfigure Calico to use IP in IP or VXLAN overlay networking so the underlying network doesn’t need to understand pod addresses.Advertise Kubernetes service IP addressesConfigure Calico to advertise Kubernetes service cluster IPs and external IPs outside the cluster using BGP.Configure MTU to maximize network performanceOptimize network performance for workloads by configuring the MTU in Calico to best suit your underlying network.Configure outgoing NATConfigure networking to perform outbound NAT for connections from pods to outside of the cluster.Use IPVS kube-proxyUse IPVS kube-proxy for performance improvements.Accelerate Istio network performanceUse Calico to accelerate network performance of traffic through the Istio Envoy sidecar using eBPF.Use a specific MAC address for a podSpecify the MAC address for a pod instead of allowing the operating system to assign one

IP address management

Get started with IP address managementConfigure Calico to use Calico IPAM or host-local IPAM, and when to use one or the other.Configure IP autodetectionCalico IP autodetection ensures the correct IP address is used for routing. Learn how to customize it.Configure dual stack or IPv6 onlyConfigure dual stack or IPv6 only for workloads.Configure Kubernetes control plane to operate over IPv6Configure the Kubernetes control plane to operate over IPv6 for dual stack or IPv6 only.Add a floating IP to a podConfigure one or more floating IPs to use as additional IP addresses for reaching a Kubernetes pod.Use a specific IP address with a podSpecify the IP address for a pod instead of allowing Calico to automatically choose one.Assign IP addresses based on topologyConfigure Calico to use specific IP pools for different topologies including zone, rack, or region.Migrate from one IP pool to anotherMigrate pods from one IP pool to another on a running cluster without network disruption.Change IP pool block sizeExpand or shrink the IP pool block size to efficiently manage IP pool addresses.Restrict a pod to use an IP address in a specific rangeRestrict the IP address chosen for a pod to a specific range of IP addresses.

Networking for OpenStack

Set up a development machineConfigure Calico networking for OpenStack VMs.Prepare a VM guest OS for IPv6Prepare a VM guest OS for IPv6.IP addressing and connectivityConfigure OpenStack networking for Calico.Endpoint labels and operator policyUse Calico labels to define policy for OpenStack VMs.Configure systems for use with CalicoConfigure OpenStack components for Calico.Detailed semanticsCalico provides connectivity that is different from traditional Neutron API semantics.Floating IPsConfigure floating IPs in Calico for OpenStack.Service IPsUse a floating or fixed IP for a Calico-networked VM.Host routesOptions for host routing with Calico.Multiple regionsInstall a multi-region OpenStack deployment with Calico.KuryrUse Kuryr with Calico networking.Calico’s interpretation of Neutron API callsEffects of the Neutron API calls on the network.

Networking options with Calico Cloud

Egress gatewaysConfigure specific application traffic to exit the cluster through an egress gateway.Cloud

Deploy a dual ToR cluster Configure a dual plane cluster for redundant connectivity between workloads.Cloud