How to fix BGP peer down in Kubernetes
BGP peer down indicates that Calico node cannot establish BGP sessions with peers. Common causes include firewall blocking port 179, incorrect peer configuration, or network connectivity issues.
Quick fix
Fixes BGP peer down
kubectl get nodes
kubectl logs -n calico-system ds/calico-node- Check Calico node status and logs
- Review BGP peer configuration
- Test network connectivity on BGP port
- Verify firewall rules allow BGP traffic
kubectl get nodeskubectl logs -n calico-system ds/calico-nodeBGP peer down
What this error means
Calico uses BGP (Border Gateway Protocol) to route pod traffic between nodes. When a BGP peer is down, the Calico node cannot establish a BGP session with another node or route reflector, preventing proper network connectivity. This results in pods on different nodes being unable to communicate.
Typical symptoms
- calico/node pods show "BIRD is not ready: BGP not established"
- Pod-to-pod communication between nodes fails
- Calico node status shows as NotReady due to BIRD BGP issues
- Network topology shows broken BGP connections
- calicoctl reports BGP session as passive or down
- Firewall blocks connection to BGP port 179
- Pod CIDR routes not being propagated to other nodes
- Node isolation or network partitioning detected
Common causes
- Firewall rules blocking TCP port 179 (BGP) between nodes
- Incorrect BGP peer IP addresses or AS numbers configured
- BGP peer is unreachable or offline
- Network policies blocking BGP traffic
- Node clock skew causing BGP keepalive timeouts
- BGP peer configuration mismatch between nodes
- Route reflector not properly configured
- MTU size mismatch between BGP peers
How to fix "BGP peer down"
Verify node readiness and check BIRD BGP status:
kubectl get nodes
kubectl logs -n calico-system ds/calico-nodeLook for "BIRD" related errors indicating BGP connectivity issues.
List configured BGP peers to verify correct configuration:
calicoctl get bgppeers -o yaml
calicoctl get bgpconfig -o yamlVerify peer IPs, AS numbers, and node selectors are correct.
From the Calico node, test reachability to peer on port 179:
kubectl exec -it -n calico-system ds/calico-node -- \
nc -zv <peer-ip> 179If connection fails, check firewall rules.
Ensure network policies and host firewalls allow BGP:
# Check if port 179 is open
netstat -tlnp | grep 179
# Verify firewall rules (varies by OS)
iptables -L -n | grep 179
sudo ufw allow 179BGP keepalive requires synchronized clocks:
date
ntpstat
chronyc trackingIf clocks are out of sync, synchronize using NTP or chrony.
Ensure the BGP peer IP is reachable from the node:
ping -c 3 <peer-ip>
traceroute <peer-ip>If unreachable, verify network routes and connectivity.
Verify BGP configuration is not conflicting:
calicoctl get node <node-name> -o yaml | grep -A 5 asNumberEnsure each node has unique router ID and correct AS numbers.
If configuration is correct but BGP still down, restart node:
kubectl rollout restart daemonset/calico-node -n calico-systemMonitor logs during restart to confirm BGP comes up.
Advanced notes
For production, use route reflectors to reduce BGP mesh overhead for large clusters. Monitor BGP session status continuously using Prometheus. Verify MTU consistency across network path - MTU mismatches can cause BGP connection failures. For multi-datacenter deployments, ensure BGP speakers on each side are properly configured. Consider using calicoctl node status command for quick diagnostics.
Frequently asked questions
- What does "BGP peer down" mean?
- Calico uses BGP (Border Gateway Protocol) to route pod traffic between nodes. When a BGP peer is down, the Calico node cannot establish a BGP session with another node or route reflector, preventing proper network connectivity. This results in pods on different nodes being unable to communicate.
- How do I fix "BGP peer down"?
- BGP peer down indicates that Calico node cannot establish BGP sessions with peers. Common causes include firewall blocking port 179, incorrect peer configuration, or network connectivity issues.
- What causes "BGP peer down"?
- Firewall rules blocking TCP port 179 (BGP) between nodes Incorrect BGP peer IP addresses or AS numbers configured BGP peer is unreachable or offline
- Is the "BGP peer down" error serious?
- Yes. This is a high-severity error that usually blocks work until it is fixed, but the steps above resolve it.
Official resources & further reading
- ๐Kubernetes Official Documentation
- ๐Calico Troubleshooting(Official Docs)
- ๐BGP Peer Not Reachable(Official Docs)
- ๐BGP Not Established Troubleshooting(Official Docs)