Skip to main content

Configure dual stack

Big picture​

Configure Calico Cloud IP address allocation to use dual stack for workload communications.

Value​

In addition to IPv4, IPv6 is increasingly desirable for Workload communication. Calico Cloud supports:

  • IPv4 only (default)

    Each workload gets an IPv4 address, and can communicate over IPv4.

  • Dual stack

    Each workload gets an IPv4 and an IPv6 address, and can communicate over IPv4 or IPv6.

Before you begin​

Unsupported

  • IPv6 only
  • AKS
  • AWS/kOps
  • EKS
  • GKE
  • RKE
  • RKE2

Calico Cloud requirements

  • Calico Cloud IPAM
  • OpenShift
    • Requires 4.8 for IPv6/IPv4 dual-stack and IPv6 single stack support
    • Requires 3.11 and later using Calico Cloud 3.4 and later for IPv6 support

Kubernetes version requirements

  • For dual stack, 1.20 and later
  • For one IP stack at a time (IPv4 or IPv6), any Kubernetes version

Kubernetes IPv6 host requirements

  • An IPv6 address that is reachable from the other hosts
  • The sysctl setting, net.ipv6.conf.all.forwarding, is set to 1. This ensures both Kubernetes service traffic and Calico Cloud traffic is forwarded appropriately.
  • A default IPv6 route

Kubernetes IPv4 host requirements

  • An IPv4 address that is reachable from the other hosts
  • The sysctl setting, net.ipv4.conf.all.forwarding, is set to 1. This ensures both Kubernetes service traffic and Calico Cloud traffic is forwarded appropriately.
  • A default IPv4 route

How to​

note

The following task is only for new clusters.

Enable dual stack​

  1. Set up a new cluster following the Kubernetes prerequisites and enablement steps.

To configure dual-stack cluster using the operator, edit your default Installation at install time to include both an IPv4 and IPv6 pool. For example:

apiVersion: operator.tigera.io/v1
kind: Installation
metadata:
name: default
spec:
# Configures Calico networking.
calicoNetwork:
# Note: The ipPools section cannot be modified post-install.
ipPools:
- blockSize: 26
cidr: 10.48.0.0/21
encapsulation: IPIP
natOutgoing: Enabled
nodeSelector: all()
- blockSize: 122
cidr: 2001::00/64
encapsulation: None
natOutgoing: Enabled
nodeSelector: all()