summaryrefslogtreecommitdiffstats
path: root/node-admin/src
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@yahooinc.com>2023-06-12 16:56:31 +0200
committerHåkon Hallingstad <hakon@yahooinc.com>2023-06-12 16:56:31 +0200
commitb3675c7d8f71809f726375034d651b8bf4810d68 (patch)
tree342729685a9038de2a00c0073202f16080aacf2c /node-admin/src
parentc0b9a0e1ccc8b17af394a89ac551c84a8175567e (diff)
Ignore GCP internal IPv6 addresses
Diffstat (limited to 'node-admin/src')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/network/IPAddresses.java3
1 files changed, 3 insertions, 0 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/network/IPAddresses.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/network/IPAddresses.java
index 4b59e40cc82..533941bbd13 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/network/IPAddresses.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/network/IPAddresses.java
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.task.util.network;
+import ai.vespa.net.CidrBlock;
import com.google.common.net.InetAddresses;
import com.yahoo.vespa.hosted.node.admin.nodeadmin.ConvergenceException;
@@ -56,12 +57,14 @@ public interface IPAddresses {
* @throws ConvergenceException if multiple addresses are found
*/
default Optional<Inet6Address> getIPv6Address(String hostname) {
+ CidrBlock gcpInternalBlock = CidrBlock.fromString("2600:2d00::/32");
List<Inet6Address> ipv6addresses = Stream.of(getAddresses(hostname))
.filter(Inet6Address.class::isInstance)
.filter(inetAddress -> !inetAddress.isLoopbackAddress())
.map(Inet6Address.class::cast)
.filter(inetAddress -> !inetAddress.isLinkLocalAddress())
.filter(inetAddress -> !inetAddress.isSiteLocalAddress())
+ .filter(inet6Address -> !gcpInternalBlock.contains(inet6Address))
.toList();
if (ipv6addresses.size() <= 1) return ipv6addresses.stream().findFirst();