Hi all,
I’m testing multi-region failover for private endpoints (Apigee X instances behind PSC NEGs) and I can’t get Cloud DNS health checking to fail over when the targets are internal Application Load Balancers. With internal passthrough Network Load Balancers as targets, the same setup works correctly and DNS routes traffic to healthy target.
Setup
- Private zone, A record with GEO routing policy + --enable-health-checking.
- Targets: forwarding rules of internal Application Load Balancers in europe-west1 and us-central1, global access enabled. describe shows healthCheckedTargets with loadBalancerType regionalL7ilb (and globalL7ilb for a cross-region ALB).
- ALB backends: Private Service Connect NEGs pointing to a service attachment in front of an internal passthrough NLB.
- Client VM in europe-west1, querying every 5 s, TTL 30 s.
Diagram 1 - request path with internal ALB + PSC; red boxes = what I broke and what DNS did:
Diagram 2 - control test with internal passthrough NLB ( Internal passthrough Network Load Balancer overview | Cloud Load Balancing | Google Cloud Documentation ) as DNS target; green = failover worked:
What I tried - in every case DNS kept returning the europe-west1 VIP (10+ min, once 1+ hour):
- Backend behind PSC stopped (clients get 504).
- Forwarding rule deleted.
- Backend removed from the backend service.
- Whole ALB deleted (FR, target proxy, URL map, backend service) incl. proxy-only subnet.
- ALB with a VM instance group backend, health check blocked by firewall - get-health shows 100% UNHEALTHY.
- Cross-region internal ALB as target, forwarding rule in europe-west1 deleted.
Control test: the same record pointing to internal passthrough NLB forwarding rules fails over within seconds once the NLB backends are UNHEALTHY. So the mechanism works! But unfortunately, I cannot use it because of PSC.
The docs only say that for internal ALBs “Cloud DNS considers the health of the load balancer itself” and that backends are handled by the LB.
Questions
- Which signal does Cloud DNS use for internal ALB targets - only the health of the Google-managed proxy layer in the region?
- Is it expected that DNS keeps returning the IP of a deleted forwarding rule (no signal = healthy)?
- Is there any supported way to simulate an unhealthy internal ALB to test DNS failover?
- What is the expected failover time for internal ALB targets?
Thanks!

