This video introduces Layer 2 announcement support with IPv6 in Cilium 1.19 and explains why it matters for modern Kubernetes networking environments. Introduction Today I’m covering a feature that is coming in Cilium 1.19, but that you can already test with one of the alpha pre-release builds: IPv6 support for L2 announcements. L2 announcements are a way to make a Kubernetes Service reachable from a local client. Cilium has supported them for a while, but only for IPv4. In the IPv4 case, a client sends an ARP request for the Service IP address, and the Kubernetes node replies with its own MAC address, effectively saying that the Service can be reached through that node. The alternative is often to use BGP, but L2 announcements are useful when there are no BGP devices in the environment or when you simply want a much simpler setup. With IPv6 support, the model stays the same but the protocol changes. Instead of ARP, Cilium uses NDP, the Neighbor Discovery Protocol. The Service receives an IPv6 address, the client sends a Neighbor Solicitation for that address, and the node responds with a Neighbor Advertisement that provides its MAC address. L2 announcement IPv6 support | Cilium 1.19 overview That is how a Service becomes reachable from a local client, now with IPv6 support included. In the demo, the first step is to deploy an IPv6-only Kind cluster. The cluster configuration explicitly sets the IP family to IPv6 and defines both pod and service subnets. Once the cluster is up, Nico installs Cilium. He adds the Helm repository, installs a Cilium 1.19 alpha release, disables IPv4 because the environment is IPv6-only, and enables the L2 announcement feature as part of the installation. Deployment Once Cilium is installed, Nico deploys a load balancer IP pool so the Service can receive an IPv6 address from the configured range. He then applies an L2 announcement policy. The policy is very similar to the IPv4 version, but it now announces the IPv6 Service address and answers the relevant NDP requests on interface eth0. From there, the cluster just needs an application and a Service. Nico deploys a simple sample application, the same one used in the Cilium book project, with a few replicas and a LoadBalancer Service. The HTTP Service picks up the first IPv6 address from the load balancer IP pool. The final validation is straightforward: test connectivity to the Service. The request succeeds, which confirms that L2 announcements are now working for IPv6. He also notes that if you capture traffic with tcpdump or inspect it in Wireshark, you can see the NDP exchange directly, including the Neighbor Solicitation and Neighbor Advertisement packets. That is the full walkthrough: IPv6 support for L2 announcements is landing in Cilium 1.19, and it already works in the alpha build shown in the demo.