docs/proposal/002-internal-ipv6-handling-rollback.md
---
title: "Proposal: Rollback IPv6 internal Node IP exposure"
version: if applicable
authors: @ivankatliarchuk, @szuecs, @mloiseleur
creation-date: 2025-01-01
status: implemented
---
This proposal aims to introduce a feature flag in 'external-dns' to control the handling of IPv6 internal node IPs.
In the current version, the feature flag will default to the existing behavior. In the next minor or minor+N version, the default behavior will be reversed, encouraging users to adopt the new behavior while providing a transition period.
The discussion in issue#4566 and the subsequent pr#4574 and pr#4808 highlighted concerns regarding the treatment of IPv6 internal node IPs. To address these concerns without causing immediate disruption, a feature flag will allow users to opt-out the current behavior, providing flexibility during the transition.
external-dns.alpha.kubernetes.io/expose-internal-ipv6 in follow-up releases.Introduce Feature Flag
--expose-internal-ipv6=true, to control the handling of IPv6 internal node IPs.true, maintaining the existing behavior.Flip Default Behavior in Next Minor Version
--expose-internal-ipv6 to false, adopting the new behavior by default.Proposed Changes in source/node.go file.
// IPv6 addresses are labeled as NodeInternalIP despite being usable externally as well.
if addr.Type == v1.NodeInternalIP && ns.exposeInternalIP && ... {
ipv6Addresses = append(ipv6Addresses, addr.Address)
}
As a cluster Operator or Administrator, I want to control the handling of IPv6 internal node IPs to align with defined network topology and configuration.
As a SecDevOps, I want to ensure that external-dns does not expose internal IPv6 node addresses via public DNS records, so that I can prevent unintended data leaks and reduce the attack surface of my Kubernetes cluster.
As a SecDevOps, I want to use a feature flag to selectively enable or disable the new IPv6 behavior in external-dns, so that I can evaluate its security impact before it becomes the default setting in future releases.
As a SecDevOps, I want to use a feature flag to selectively enable or disable the new IPv6 behavior in external-dns, so that I can detect misconfigurations, act on potential security incidents, and ensure compliance with security policies.
Code Changes:
Documentation:
external-dns version due to security, compliance or any other concerns.