diff --git a/metropolis/node/kubernetes/clusternet/clusternet.go b/metropolis/node/kubernetes/clusternet/clusternet.go
index f4974eb..7b51c30 100644
--- a/metropolis/node/kubernetes/clusternet/clusternet.go
+++ b/metropolis/node/kubernetes/clusternet/clusternet.go
@@ -33,7 +33,6 @@
 
 import (
 	"context"
-	"errors"
 	"net/netip"
 	"time"
 
@@ -64,25 +63,6 @@
 		return nil
 	}
 
-	var internalIP netip.Addr
-	for _, addr := range newNode.Status.Addresses {
-		if addr.Type == corev1.NodeInternalIP {
-			if internalIP.IsUnspecified() {
-				s.logger.Warningf("More than one NodeInternalIP specified, using the first one")
-				break
-			}
-			ip, err := netip.ParseAddr(addr.Address)
-			if err != nil {
-				s.logger.Warningf("Failed to parse Internal IP %s", addr.Address)
-				continue
-			}
-			internalIP = ip
-		}
-	}
-	if internalIP.IsUnspecified() {
-		return errors.New("node has no Internal IP")
-	}
-
 	var prefixes oclusternet.Prefixes
 	for _, podNetStr := range newNode.Spec.PodCIDRs {
 		prefix, err := netip.ParsePrefix(podNetStr)
@@ -92,7 +72,6 @@
 		}
 		prefixes = append(prefixes, prefix)
 	}
-	prefixes = append(prefixes, netip.PrefixFrom(internalIP, 32))
 
 	s.logger.V(1).Infof("Updating locally originated prefixes: %+v", prefixes)
 	s.Prefixes.Set(&prefixes)
diff --git a/metropolis/node/kubernetes/service_worker.go b/metropolis/node/kubernetes/service_worker.go
index 5ddc32d..2e6e190 100644
--- a/metropolis/node/kubernetes/service_worker.go
+++ b/metropolis/node/kubernetes/service_worker.go
@@ -7,8 +7,10 @@
 
 	"source.monogon.dev/go/net/tinylb"
 	"source.monogon.dev/metropolis/node"
+	oclusternet "source.monogon.dev/metropolis/node/core/clusternet"
 	"source.monogon.dev/metropolis/node/core/localstorage"
 	"source.monogon.dev/metropolis/node/core/network"
+	"source.monogon.dev/metropolis/pkg/event"
 	"source.monogon.dev/metropolis/pkg/event/memory"
 	"source.monogon.dev/metropolis/pkg/supervisor"
 
@@ -24,6 +26,7 @@
 	Network       *network.Service
 	NodeID        string
 	CuratorClient ipb.CuratorClient
+	PodNetwork    event.Value[*oclusternet.Prefixes]
 }
 
 type Worker struct {
@@ -67,6 +70,7 @@
 	if err != nil {
 		return err
 	}
+
 	supervisor.Signal(ctx, supervisor.SignalHealthy)
 	<-ctx.Done()
 	return nil
