Intermittent Inter-POD Ipv6 Communication Failure Due To Link-Local Address Missing In Antrea
search cancel

Intermittent Inter-POD Ipv6 Communication Failure Due To Link-Local Address Missing In Antrea

book

Article ID: 445133

calendar_today

Updated On:

Products

VMware Container Networking with Antrea

Issue/Introduction

Symptoms:

  • Customers use container networking with Antrea and have intermittent ipv6 inter-POD communication failure, the source and destination POD are in different worker nodes.
  • In destination worker node side, the Antrea Gateway interface antrea-gw0 has an incomplete neighbor table entry about destination POD when checking with command below:

ip -6 neigh show dev antrea-gw0 | grep <destination POD ipv6 address>

  • From captured packet it shows antrea-gw0 never send out Neighbor Solicitation, and the ipv6 packets arrive at antrea-gw0 but failed to send towards destination POD.
  • Interface antrea-gw0 misses the link local fe80::/64 address when checking with command below

ip -6 addr show dev antrea-gw0

 

Environment

VMware Container Networking with Antrea

Cause

Link-Local address (fe80::/64) is missing for Antrea Gateway interface antrea-gw0 in destination worker node.

As per RFC 4861 section 2.3, all interfaces on routers must have a link-local address. Here the absence of the link local address of Antrea Gateway interface antrea-gw0 may affect the ipv6 neighbor discovery function.

When user check the setting for address generation for antrea-gw0 in destination worker node, its value is 1 which blocks the link local address generation.

Command "sysctl net.ipv6.conf.antrea-gw0.addr_gen_mode" has output 1:

net.ipv6.conf.antrea-gw0.addr_gen_mode=1

 

Resolution

Permit auto generation of link local address for Antrea Gateway interface antrea-gw0:

  • Execute commands in destination worker node to permit auto generation(While this bounces the IPv6 stack on the interface to trigger address generation, it might temporarily drop existing IPv6 traffic):

sysctl -w net.ipv6.conf.antrea-gw0.addr_gen_mode=0
sysctl -w net.ipv6.conf.antrea-gw0.disable_ipv6=1
sysctl -w net.ipv6.conf.antrea-gw0.disable_ipv6=0

ip -6 addr show dev antrea-gw0

sysctl net.ipv6.conf.antrea-gw0.addr_gen_mode

  • Execute commands below in destination worker node to make configuration persistent:

cat <<EOF | sudo tee /etc/sysctl.d/99-antrea-ipv6.conf
# Ensure dynamically created interfaces generate IPv6 Link-Local addresses
net.ipv6.conf.all.addr_gen_mode=0
net.ipv6.conf.default.addr_gen_mode=0
EOF

sudo sysctl --system

Additional Information

RFC 4861

https://datatracker.ietf.org/doc/html/rfc4861