This page gives you a comparative overview of the load balancing features
offered by Cloud Load Balancing. If you haven't already done so, begin by
reading the following:

- To get an overview of the different load balancing solutions that are available in Google Cloud, see [Cloud Load Balancing
  overview](https://docs.cloud.google.com/load-balancing/docs/load-balancing-overview).
- To determine which Google Cloud load balancer best meets your application's needs, see [Choose a load
  balancer](https://docs.cloud.google.com/load-balancing/docs/choosing-load-balancer).

In the following tables, a Yescheckmark
indicates that a feature is supported. For more information about a feature,
click the *info* link.

## Type of load balancer

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| Proxy | Load balancer modes: [regional](https://docs.cloud.google.com/load-balancing/docs/l7-internal.md.txt) [cross-region](https://docs.cloud.google.com/load-balancing/docs/l7-internal.md.txt) | Load balancer modes: [global](https://docs.cloud.google.com/load-balancing/docs/https.md.txt) [classic](https://docs.cloud.google.com/load-balancing/docs/https.md.txt) [regional](https://docs.cloud.google.com/load-balancing/docs/https.md.txt) | Load balancer modes: [regional](https://docs.cloud.google.com/load-balancing/docs/tcp/internal-proxy.md.txt) [cross-region](https://docs.cloud.google.com/load-balancing/docs/tcp/internal-proxy.md.txt) | Load balancer modes: [global](https://docs.cloud.google.com/load-balancing/docs/tcp.md.txt) [classic](https://docs.cloud.google.com/load-balancing/docs/tcp.md.txt) [regional](https://docs.cloud.google.com/load-balancing/docs/tcp.md.txt) |   |   |
| Passthrough |   |   |   |   | Load balancer modes: [regional](https://docs.cloud.google.com/load-balancing/docs/internal.md.txt) | Load balancer modes: [global](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt) ([Preview](https://cloud.google.com/products#product-launch-stages)) [regional](https://docs.cloud.google.com/load-balancing/docs/network) |

## Protocols from the clients to the load balancer

This table lists the protocols supported for communication between clients and
the different load balancers.

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| One of: HTTP (HTTP/1.0) HTTPS (HTTP/1.0) |   | Yes (Only global and classic modes) |   |   |   |   |
| One of: HTTP (HTTP/1.1) HTTPS (HTTP/1.1) | Yes No QUIC support | Yes No QUIC support for regional mode. |   |   |   |   |
| HTTP/2 over TLS HTTP/2 over TCP, also known as H2C gRPC ^1^ | Yes | Yes (H2C support for global and regional modes only) |   |   |   |   |
| HTTP/3 (based on IETF QUIC) |   | Yes (Only global and classic modes) |   |   |   |   |
| SSL or TCP |   |   | Yes TCP only | Yes Regional mode: TCP only <br /> Global and classic mode: SSL or TCP |   |   |
| TCP, UDP, or L3_DEFAULT^2^ |   |   |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal.md.txt#forwarding-rule-protocols) | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt#forwarding-rule-protocols) regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/networklb-backend-service.md.txt#forwarding-rule-protocols) |
| WebSockets | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal.md.txt#websocket_support) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/https.md.txt#websocket_support) |   |   |   |   |
| TLS early data |   | Yes^3^ |   |   |   |   |

^1^ To support gRPC clients, create an Application Load Balancer
that [supports HTTP/2
end-to-end (with or without TLS)](https://docs.cloud.google.com/load-balancing/docs/https#grpc-support).

^2^ The `L3_DEFAULT` setting enables support for the
following additional IP protocols:

- For internal passthrough Network Load Balancers, `L3_DEFAULT` enables support for TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH, and GRE .
- For global external passthrough Network Load Balancers and regional external passthrough Network Load Balancers, `L3_DEFAULT` enables support for TCP, UDP, ESP, GRE, ICMP, and ICMPv6 .

^3^ TLS early data is supported for
HTTPS over TCP (HTTP/1.1, HTTP/2) and HTTP/3 over QUIC.

## Protocols from the load balancer to the backends

This table lists the IP protocol settings supported with backend services for
different load balancers. For more reference information, see [Backend
services](https://docs.cloud.google.com/load-balancing/docs/apis#backend_services).

This table does not apply to Application Load Balancers with
serverless NEG backends. The backend service protocol setting is ignored for
these load balancers.

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| One of: HTTP (HTTP/1.1) HTTPS (HTTP/1.1) | Yes | Yes |   |   |   |   |
| HTTP/2 over TLS, including gRPC HTTP/2 over TCP, also known as H2C | Yes | Yes (H2C support for global and regional modes only) |   |   |   |   |
| One of: SSL (TLS) or TCP |   |   | Yes TCP only | Yes Regional mode: TCP only <br /> Global and classic mode: SSL or TCP |   |   |
| One of: TCP, UDP, or UNSPECIFIED^1^ |   |   |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal.md.txt#backend-service) | Yes regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/networklb-backend-service.md.txt#backend-service) |
| UNSPECIFIED^1^ |   |   |   |   |   | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt#backend-services) |
| WebSockets | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal.md.txt#websocket_support) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/https.md.txt#websocket_support) |   |   |   |   |

^1^ The `UNSPECIFIED` setting enables support for the
following IP protocols:

- For internal passthrough Network Load Balancers, `UNSPECIFIED` enables support for TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH, and GRE .
- For global external passthrough Network Load Balancers and regional external passthrough Network Load Balancers, `UNSPECIFIED` enables support for TCP, UDP, ESP, GRE, ICMP, and ICMPv6 .

## Backends

Filter this table:

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| Backends can be in multiple regions | Yes [(Only cross-region mode)](https://docs.cloud.google.com/load-balancing/docs/l7-internal/setting-up-l7-cross-reg-internal.md.txt) | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/https/setup-global-ext-https-compute.md.txt) and [classic](https://docs.cloud.google.com/load-balancing/docs/https/ext-https-lb-simple.md.txt) mode) | Yes (Only cross-region mode) | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/tcp/set-up-global-ext-proxy-tcp.md.txt) and [classic](https://docs.cloud.google.com/load-balancing/docs/tcp/setting-up-tcp.md.txt) mode) |   | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt#backend-service) mode) |
| Backends must be in one region | Yes [(Only regional mode)](https://docs.cloud.google.com/load-balancing/docs/l7-internal/setting-up-l7-internal.md.txt) | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-reg-ext-https-lb.md.txt) and [classic](https://docs.cloud.google.com/load-balancing/docs/https/ext-https-lb-simple.md.txt) mode) | Yes [(Only regional mode)](https://docs.cloud.google.com/load-balancing/docs/tcp/set-up-int-tcp-proxy-migs.md.txt) | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-migs.md.txt) and [classic](https://docs.cloud.google.com/load-balancing/docs/tcp/set-up-int-tcp-proxy-migs.md.txt) mode) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal.md.txt#backend-service) | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/network/networklb-backend-service.md.txt#backend-service) mode) |
| Cloud Storage in backend buckets | Yes | Yes |   |   |   |   |
| External endpoints in internet NEGs | Yes [(Only regional mode)](https://docs.cloud.google.com/load-balancing/docs/l7-internal/setup-regional-int-https-external-backend.md.txt) | Yes ([Global](https://docs.cloud.google.com/load-balancing/docs/https/setup-global-ext-https-external-backend.md.txt), [regional](https://docs.cloud.google.com/load-balancing/docs/https/setup-regional-ext-https-external-backend.md.txt), and [classic](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-https-external-backend-internet-neg.md.txt) modes) | Yes [(Only regional mode)](https://docs.cloud.google.com/load-balancing/docs/tcp/set-up-int-tcp-proxy-internet.md.txt) | Yes [(Only regional mode)](https://docs.cloud.google.com/load-balancing/docs/tcp/set-up-ext-reg-tcp-proxy-internet.md.txt) |   |   |
| Multiple backend services and a URL map | Yes | Yes |   |   |   |   |
| Virtual machine backends on Compute Engine | Yes | Yes | Yes | Yes | Yes | Yes |
| Self-managed Kubernetes and GKE | Yes | Yes |   |   | Yes | Yes (Only regional mode) |
| [Zonal NEGs](https://docs.cloud.google.com/load-balancing/docs/negs/zonal-neg-concepts.md.txt) | Yes [`GCE_VM_IP_PORT` endpoints](https://docs.cloud.google.com/load-balancing/docs/l7-internal.md.txt#backend_service) | Yes [`GCE_VM_IP_PORT` endpoints](https://docs.cloud.google.com/load-balancing/docs/https.md.txt#backend-service) | Yes [`GCE_VM_IP_PORT` endpoints](https://docs.cloud.google.com/load-balancing/docs/tcp/internal-proxy.md.txt#supported_backends) | Yes [`GCE_VM_IP_PORT` endpoints](https://docs.cloud.google.com/load-balancing/docs/tcp.md.txt#backend_services) | Yes [`GCE_VM_IP` endpoints](https://docs.cloud.google.com/load-balancing/docs/internal.md.txt#neg-nic-net) | Yes [`GCE_VM_IP` endpoints](https://docs.cloud.google.com/load-balancing/docs/negs/zonal-neg-concepts.md.txt#zonal-neg-load-balancing) |
| [Private Service Connect NEGs](https://docs.cloud.google.com/vpc/docs/private-service-connect-backends.md.txt) | Yes | Yes (Only global and regional mode) | Yes | Yes (Only global and regional mode) |   |   |
| Private external endpoints in hybrid NEG backends | Yes [info](https://docs.cloud.google.com/load-balancing/docs/negs/hybrid-neg-concepts.md.txt) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/negs/hybrid-neg-concepts.md.txt) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/negs/hybrid-neg-concepts.md.txt) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/negs/hybrid-neg-concepts.md.txt) |   |   |
| Serverless backends | Yes [info](https://docs.cloud.google.com/load-balancing/docs/negs/serverless-neg-concepts.md.txt#endpoint_types) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/negs/serverless-neg-concepts.md.txt) |   |   |   |   |
| [Dual-stack (IPV4 and IPv6) backends](https://docs.cloud.google.com/compute/docs/ip-addresses/configure-ipv6-address.md.txt) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/ipv6.md.txt) | Yes [(Only global and regional modes)](https://docs.cloud.google.com/load-balancing/docs/ipv6.md.txt) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/ipv6.md.txt) | Yes [(Only global and regional modes)](https://docs.cloud.google.com/load-balancing/docs/ipv6.md.txt) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal.md.txt#dual-stack-backends) | Yes (Both [global](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt#backend-service) and [regional](https://docs.cloud.google.com/load-balancing/docs/network/networklb-backend-service.md.txt#dual-stack-backends) modes) |
| [IPv6-only backends](https://docs.cloud.google.com/compute/docs/ip-addresses/configure-ipv6-address.md.txt) |   |   |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal.md.txt#ipv6-only-backends) | Yes (Both [global](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt#backend-service) and [regional](https://docs.cloud.google.com/load-balancing/docs/network/networklb-backend-service.md.txt#ipv6-only-backends) modes) |

## Health checks

For links to reference information, see [Health
checks](https://docs.cloud.google.com/load-balancing/docs/apis#health_checks).

Health checks are not supported for internal and external
Application Load Balancers that use serverless NEG backends.
Filter this table:

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| gRPC health checks (without TLS) | Yes^2^ | Yes^2^ | Yes^2^ | Yes^2^ | Yes | Yes^1^ |
| gRPC health checks (with TLS) | Yes^2^ | Yes^2^ | Yes^2^ | Yes^2^ | Yes | Yes^1^ |
| HTTP health checks | Yes | Yes^3^ | Yes | Yes (Only classic and regional mode) | Yes | Yes^1^ |
| HTTPS health checks | Yes | Yes^3^ | Yes | Yes (Only classic and regional mode) | Yes | Yes^1^ |
| HTTP/2 health checks | Yes | Yes | Yes | Yes (Only classic and regional mode) | Yes | Yes^1^ |
| SSL health checks | Yes | Yes | Yes | Yes | Yes | Yes^1^ |
| TCP health checks | Yes | Yes | Yes | Yes | Yes | Yes^1^ |
| [Configurable health checks](https://docs.cloud.google.com/load-balancing/docs/health-checks.md.txt#create-hc) | Yes | Yes | Yes | Yes | Yes | Yes |
| Configurable request path (HTTP, HTTPS, HTTP/2) | Yes | Yes |   |   |   |   |
| Configurable request string or path (TCP or SSL) |   |   | Yes | Yes |   |   |
| Configurable expected response string | Yes | Yes | Yes | Yes | Yes | Yes^1^ |
| [Distributed Envoy health checks](https://docs.cloud.google.com/load-balancing/docs/negs/hybrid-neg-concepts.md.txt#envoy-health-checks) | Yes | Yes (Only regional mode) | Yes | Yes (Only regional mode) |   |   |

^1^ This table documents health checks used by
global external passthrough Network Load Balancers and backend service-based regional external passthrough Network Load Balancers.
Target pool-based load balancers support only
[legacy
HTTP health checks](https://docs.cloud.google.com/load-balancing/docs/network/networklb-target-pools#health_checks).

^2^ Envoy-based regional load balancers
(regional internal and external Application Load Balancers and
regional internal and external proxy Network Load Balancers) that use hybrid NEG backends don't
support gRPC health checks. For more information, see the [Hybrid
NEGs overview](https://docs.cloud.google.com/load-balancing/docs/negs/hybrid-neg-concepts#envoy-health-checks).

^3^ Regional external Application Load Balancer does not support legacy health checks.
The global external Application Load Balancer and the classic Application Load Balancer support
legacy health checks only if both of the following are true:

- The backends are instance groups.
- The backend virtual machine (VM) instances serve traffic that uses the HTTP or HTTPS protocol.

## IP addresses

For links to reference information, see
[Addresses](https://docs.cloud.google.com/load-balancing/docs/apis.md.txt#addresses).
Filter this table:

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| Regional internal IPv4 address, accessible in your VPC network | Yes |   | Yes |   | Yes |   |
| Regional internal IPv6 address, accessible in your VPC network | Yes |   | Yes |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal.md.txt) |   |
| Global external IPv4 address (Includes BYOIP addresses) |   | Yes (Only global and classic^1^ mode) |   | Yes (Only global and classic^1^ mode) |   | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt#ip-addresses)^1,^^6^ mode) |
| Global external IPv6 address |   | Yes [IPv6 termination](https://docs.cloud.google.com/load-balancing/docs/ipv6.md.txt) (Only global and classic^1^ mode) |   | Yes [IPv6 termination](https://docs.cloud.google.com/load-balancing/docs/ipv6.md.txt) (Only global and classic^1^ mode) |   | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt#ip-addresses)^1,^^6^ mode) |
| Regional external IPv4 address (Includes BYOIP addresses) |   | Yes (Only regional and classic^2^ mode) |   | Yes (Only regional and classic^2^ mode) |   | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/network/networklb-backend-service.md.txt#ip-address) mode) |
| Regional external IPv6 address (Includes BYOIP addresses) |   | Yes |   | Yes |   | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/network/networklb-backend-service.md.txt#ip-address)^1,^^3^ mode) - [Configure BYOIP](https://docs.cloud.google.com/load-balancing/docs/network/setting-up-network-backend-service.md.txt#byoip-ipv6) |
| Multiple forwarding rules with the same IP address, each having a unique protocol and port combination | Yes | Yes | Yes | Yes | Yes | Yes |
| Internet accessible^4^ |   | Yes |   | Yes |   | Yes |
| Privately accessible | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/internal-https-lb-and-other-networks.md.txt)^5^ |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp/internal-proxy-lb-and-other-networks.md.txt)^5^ |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/internal-tcp-udp-lb-and-other-networks.md.txt)^5^ |   |
| Client source IP address preservation | X‑Forwarded‑For header | X‑Forwarded‑For header | [PROXY](https://docs.cloud.google.com/load-balancing/docs/tcp/setting-up-tcp.md.txt#proxy-protocol) protocol | [PROXY](https://docs.cloud.google.com/load-balancing/docs/tcp/setting-up-tcp.md.txt#proxy-protocol) protocol | Yes | Yes |

^1^ Supported for Premium Tier only.

^2^ Supported for Standard Tier only.

^3^ Target pool-based regional external passthrough Network Load Balancers don't support
IPv6 traffic.

^4^ Internet access is also available for clients that are in
Google Cloud.

^5^ Private access is available in the same VPC
network and from any region with global access. In cross-region mode, global
access is enabled by default.

^6^ Global external passthrough Network Load Balancers provide
two global external IP addresses for high availability.

## Network topologies

Filter this table:

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| Network Service Tiers support | Premium Tier | Global mode: Premium Tier Classic and regional mode: Premium or Standard Tier | Premium Tier | Global mode: Premium Tier Classic and regional mode: Premium or Standard Tier | Premium Tier | Global mode: Premium Tier Regional mode: Premium or Standard Tier |
| **Relationships between VPC networks, load balancers, and their backends** |||||||
| Load balancer and backends in different VPC networks | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal.md.txt#backend-networks) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/https.md.txt#backend-networks) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp/internal-proxy.md.txt#backend-networks) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp.md.txt#backend-networks) |   | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt#backend-service-networks) regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/networklb-backend-service.md.txt#backend-service-networks) |
| Backends can use a Shared VPC network | Yes | Yes | Yes | Yes | Yes | Yes |
| Cross-project service referencing | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal.md.txt#shared_vpc) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/https.md.txt#cross-project) (Only global and regional mode) |   |   |   |   |
| **Client access to load balancers** |||||||
| Google Cloud or on-premises clients must access the load balancer privately^1^ | Yes |   | Yes |   | Yes |   |
| Google Cloud client VMs require external IP addresses or a NAT solution like Cloud NAT to access the load balancer |   | Yes |   | Yes |   | Yes |
| On-premises client VMs require internet access to access the load balancer |   | Yes |   | Yes |   | Yes |
| Google Cloud client VMs can be located in any region | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal.md.txt#client-access) | Yes (Only global and classic^2^ modes) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp/internal-proxy.md.txt#client-access) | Yes | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal.md.txt#client-access) | Yes |
| Google Cloud client VMs can be located in any project | Yes | Yes | Yes | Yes | Yes | Yes |
| **More topologies** |||||||
| Load balancer as next hop |   |   |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/ilb-next-hop-overview.md.txt) |   |
| Specify network interface of a backend VM | Yes^3^ | Yes^4^ | Yes^3^ | Yes^4^ | Yes[info](https://docs.cloud.google.com/load-balancing/docs/internal.md.txt#ig-nic-net) | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt#neg-nic-net)^5^ regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/networklb-backend-service.md.txt#neg-nic-net)^5^ |
| [Multi-NIC](https://docs.cloud.google.com/vpc/docs/multiple-interfaces-concepts.md.txt) load balancing | Yes[info](https://docs.cloud.google.com/load-balancing/docs/l7-internal.md.txt#backends-interfaces) | Yes[info](https://docs.cloud.google.com/load-balancing/docs/https.md.txt#backends-interfaces) | Yes[info](https://docs.cloud.google.com/load-balancing/docs/tcp/internal-proxy.md.txt#backends-interfaces) | Yes[info](https://docs.cloud.google.com/load-balancing/docs/tcp.md.txt#backends-interfaces) | Yes[info](https://docs.cloud.google.com/load-balancing/docs/internal.md.txt#ig-nic-net) | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt#neg-nic-net)^5^ regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/networklb-backend-service.md.txt#neg-nic-net)^5^ |

^1^ Google Cloud or on-premises clients must access the
load balancer privately by being either in the same VPC
network, in a peered VPC network, or in another network
connected using Cloud VPN tunnels or Cloud Interconnect
attachments (VLANs).

^2^ Supported for Premium Tier only.

^3^ For regional load balancers, the backend VM's `nic0`
must be in the same network and region used by the forwarding rule. For
cross-region load balancers, the backend VM's `nic0` must be in the
same network used by the forwarding rule.

^4^ The load balancer only sends traffic to the first network
interface (`nic0`), whichever VPC network that `nic0`
is in.

^5^ The backend VMs of an instance group always receive traffic on
the first network interface (`nic0`), and multi-NIC load balancing is
only supported for zonal NEGs with `GCE_VM_IP` endpoints.

## Failover and availability

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| Load balancer is resilient to zonal outages Automatic failover to healthy backends within same region | Yes | Yes | Yes | Yes | Yes | Yes |
| Load balancer is resilient to regional outages Automatic failover to healthy backends in other regions | Yes (Only cross-region mode) | Yes (Only global and classic^1^ modes) | Yes (Only cross-region mode) | Yes (Only global and classic^1^ modes) |   | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt#high_availability_by_design) mode) |
| Support for active-active high availability configuration across load balancers | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal.md.txt#cross-region-failover) | Yes ([Global](https://docs.cloud.google.com/load-balancing/docs/https/global-applb-failover-overview.md.txt) and [regional](https://docs.cloud.google.com/load-balancing/docs/https/reg-applb-ha-overview.md.txt) modes) |   |   |   |   |
| Support for active-passive failover configuration across load balancers |   | Yes ([Global](https://docs.cloud.google.com/load-balancing/docs/https/global-applb-failover-overview.md.txt) and [regional](https://docs.cloud.google.com/load-balancing/docs/https/reg-applb-ha-overview.md.txt) modes) |   |   |   |   |
| Support for dual IP address based high availability |   |   |   |   |   | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt#high_availability_by_design) mode) |
| Configurable behavior when all backends are unhealthy |   |   |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/int-netlb-traffic-distribution.md.txt#failover-policy) | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/network/ext-netlb-traffic-distribution.md.txt#failover-policy)^2^ mode) |
| Configurable failover backends |   |   |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/int-netlb-traffic-distribution.md.txt#failover) | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/network/ext-netlb-traffic-distribution.md.txt#failover-policy)^3^ mode) |
| Configurable connection draining on failover |   |   |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/int-netlb-traffic-distribution.md.txt#connection-draining-failover) | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/network/ext-netlb-traffic-distribution.md.txt#connection-draining-failover)^4^ mode) |

^1^ Supported for Premium Tier.

^2^ When all the backends of a target pool-based regional external passthrough Network Load Balancers
are unhealthy, traffic is distributed among all backends.

^3^ Target pool-based regional external passthrough Network Load Balancers use backup pools to
support failover.

^4^ Target pool-based regional external passthrough Network Load Balancers don't support
configuration of connection draining on failover.

## Monitoring

Filter this table:

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| Byte count metrics | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/monitoring.md.txt#monitoring_metrics_for_internal_https_load_balancers) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/https/https-logging-monitoring.md.txt#monitoring_metrics) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring.md.txt#metrics-for-tcp-ssl-proxy) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring.md.txt#metrics-for-tcp-ssl-proxy) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/internal-logging-monitoring.md.txt#metrics_for_internal_tcpudp_load_balancers) | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-ext-netlb-logging-monitoring.md.txt#metrics-resources) regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/reg-ext-netlb-logging-monitoring.md.txt#metrics-resources) |
| Packet count metrics |   |   |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/internal-logging-monitoring.md.txt#metrics_for_internal_tcpudp_load_balancers) | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-ext-netlb-logging-monitoring.md.txt#metrics-resources) regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/reg-ext-netlb-logging-monitoring.md.txt#metrics-resources) |
| Round trip time (RTT) metrics |   |   |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/internal-logging-monitoring.md.txt#metrics_for_internal_tcpudp_load_balancers) | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-ext-netlb-logging-monitoring.md.txt#metrics-resources) regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/reg-ext-netlb-logging-monitoring.md.txt#metrics-resources) |
| Request latency metrics | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/monitoring.md.txt#monitoring_metrics_for_internal_https_load_balancers) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/https/https-logging-monitoring.md.txt#monitoring_metrics) |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/internal-logging-monitoring.md.txt#metrics_for_internal_tcpudp_load_balancers) |   |
| Connection count metrics |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring.md.txt#metrics-for-tcp-ssl-proxy) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring.md.txt#metrics-for-tcp-ssl-proxy) |   |   |
| HTTP request count metrics | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/monitoring.md.txt#monitoring_metrics_for_internal_https_load_balancers) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/https/https-reg-logging-monitoring.md.txt#monitoring_metrics) |   |   |   |   |

## Logging

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| **Log type** |||||||
| HTTP request and response attribute logs | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/monitoring.md.txt#log_fields) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/https/https-reg-logging-monitoring.md.txt#log-fields) |   |   |   |   |
| Connection attribute logs |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring.md.txt#intproxylb-logging) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring.md.txt) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/internal-logging-monitoring.md.txt#logs-format) | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-ext-netlb-logging-monitoring.md.txt#logs-format) regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/reg-ext-netlb-logging-monitoring.md.txt#logs-format) |
| **Log fields** |||||||
| [](https://docs.cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry.md.txt#HttpRequest)HTTP request | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/monitoring.md.txt#what_is_logged) | Yes [global, classic](https://docs.cloud.google.com/load-balancing/docs/https/https-logging-monitoring.md.txt#log-fields) [regional](https://docs.cloud.google.com/load-balancing/docs/https/https-reg-logging-monitoring.md.txt#log-fields) |   |   |   |   |
| String that explains the proxy response | [proxyStatus](https://docs.cloud.google.com/load-balancing/docs/l7-internal/monitoring.md.txt#proxy-status) | [statusDetails](https://docs.cloud.google.com/load-balancing/docs/https/https-logging-monitoring.md.txt#failure-messages) [proxyStatus](https://docs.cloud.google.com/load-balancing/docs/https/https-reg-logging-monitoring.md.txt#proxy-status) |   |   |   |   |
| TLS metadata between client and load balancer | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/monitoring.md.txt#tls-details) |   | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/https/https-reg-logging-monitoring.md.txt#tls-details) mode) |   |   |   |
| Connection attributes: 5-tuple, bytes/packets sent and received |   |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring.md.txt#logs-format) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/internal-logging-monitoring.md.txt#logs-format) | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-ext-netlb-logging-monitoring.md.txt#logs-format) regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/reg-ext-netlb-logging-monitoring.md.txt#logs-format) |
| VM instance details and GKE details |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring.md.txt#intproxylb-logging) | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring.md.txt) mode) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/internal-logging-monitoring.md.txt#logs-format) | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-ext-netlb-logging-monitoring.md.txt#logs-format) regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/reg-ext-netlb-logging-monitoring.md.txt#logs-format) |
| Client VPC or location details |   |   |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/internal-logging-monitoring.md.txt#ilb-vpcdetails) | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-ext-netlb-logging-monitoring.md.txt#netlb-geographicdetails) regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/reg-ext-netlb-logging-monitoring.md.txt#netlb-geographicdetails) |
| Network tier details |   |   |   |   |   | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-ext-netlb-logging-monitoring.md.txt#netlb-networkdetails) regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/reg-ext-netlb-logging-monitoring.md.txt#netlb-networkdetails) |
| Labels describing the load balancer resource | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/monitoring.md.txt#resource-labels) | Yes [global, classic](https://docs.cloud.google.com/load-balancing/docs/https/https-logging-monitoring.md.txt#resource-labels) [regional](https://docs.cloud.google.com/load-balancing/docs/https/https-reg-logging-monitoring.md.txt#resource-labels) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring.md.txt#intproxylb-logging) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/tcp/tcp-ssl-proxy-logging-monitoring.md.txt#resource-labels) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/internal-logging-monitoring.md.txt#view_logs) | Yes global: [info](https://docs.cloud.google.com/load-balancing/docs/network/global-ext-netlb-logging-monitoring.md.txt#view-logs) regional: [info](https://docs.cloud.google.com/load-balancing/docs/network/reg-ext-netlb-logging-monitoring.md.txt#view-logs) |

## Session affinity

For detailed information, see [Session
affinity](https://docs.cloud.google.com/load-balancing/docs/backend-service#session_affinity).

For links to reference information, see [Backend
services](https://docs.cloud.google.com/load-balancing/docs/apis#backend_services).

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| Headers | Yes | Yes (Only global and regional mode) |   |   |   |   |
| HTTP cookie | Yes | Yes (Only global and regional) |   |   |   |   |
| Generated cookie | Yes | Yes |   |   |   |   |
| Stateful cookie | Yes | Yes (Only global and regional) |   |   |   |   |
| Client IP, no destination (1-tuple) `CLIENT_IP_NO_DESTINATION` |   |   |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/backend-service.md.txt#client-ip-no-destination-affinity) |   |
| Client IP, Destination IP (2-tuple) `CLIENT_IP` | Yes | Yes | Yes | Yes | Yes^1^ | Yes^1^ |
| Client IP, Destination IP, Protocol (3-tuple) `CLIENT_IP_PROTO` |   |   |   |   | Yes^1^ | Yes^1^ |
| Client IP, Client Port, Destination IP, Destination Port, Protocol (5-tuple) `CLIENT_IP_PORT_PROTO` |   |   |   |   | Yes^1,2^ | Yes^1,2^ |
| None (5-tuple) `NONE` | Yes | Yes | Yes | Yes | Yes^3^ | Yes^3^ |

^1^ Setting session affinity is only meaningful if the protocol uses
sessions---for example, TCP.

^2^ If the protocol does not have a concept of ports or if the packet
does not carry port information (subsequent UDP fragments, for example), then a
3-tuple hash of the Client IP, Destination IP, and protocol is used instead.

^3^ If the protocol has a concept of ports and the packet carries port
information, then `None` is a 5-tuple hash. If the protocol does not have a
concept of ports or if the packet does not carry port information (for example,
subsequent UDP fragments), then `None` is a 3-tuple hash of the Client IP,
Destination IP, and protocol.

## Load balancing methods

For detailed information, see the [Backend
services overview](https://docs.cloud.google.com/load-balancing/docs/backend-service).

For links to reference information, see [Backend
services](https://docs.cloud.google.com/load-balancing/docs/apis#backend_services).
Filter this table:

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| Balancing mode: connection |   |   | Yes | Yes | Yes | Yes (Only regional mode) |
| Balancing mode: custom metrics | Yes^1^ | Yes^1^ |   |   |   |   |
| Balancing mode: in-flight | Yes^1^ | Yes^1^ (Only global and regional modes) |   |   |   |   |
| Balancing mode: rate (requests per second) | Yes^1^ | Yes^1^ |   |   |   |   |
| Balancing mode: rate (packets per second) |   |   |   |   |   | Yes (Only global mode) |
| Balancing mode: backend utilization (instance group backends only) | Yes^1^ | Yes^1^ | Yes | Yes |   | Yes (Only global mode) |
| Load balancing locality policy | Yes [info](https://docs.cloud.google.com/load-balancing/docs/backend-service.md.txt#lb-locality-policy) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/backend-service.md.txt#lb-locality-policy) (Only global and regional modes) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/backend-service.md.txt#lb-locality-policy) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/backend-service.md.txt#lb-locality-policy) (Only global and regional modes) |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/backend-service.md.txt#lb-locality-policy) |
| Configurable maximum capacity per backend instance group or NEG | Yes^1^ | Yes^1^ | Yes | Yes |   | Yes (Only global mode) |
| Circuit breaking | Yes^1^ | Yes (Only regional mode) | Yes | Yes (Only regional mode) |   |   |
| Prefers region closest to client on the internet^2^ |   | Yes (Only global and classic^3^ modes) |   | Yes (Only global and classic^3^ modes) |   | Yes (Only global mode) |
| Prefers region closest to the load balancer^2^ |   | Yes (Only global and classic^3^ modes) |   | Yes (Only classic^3^ modes) |   | Yes (Only global mode) |
| Weight-based load balancing | Yes | Yes (Only global and regional modes) |   |   |   | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/network/ext-netlb-traffic-distribution.md.txt#weighted-lb)^4^ mode) |
| Within zone/region load balancing policy | Yes [info](https://docs.cloud.google.com/load-balancing/docs/backend-service.md.txt#balancing-mode-lb) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/backend-service.md.txt#balancing-mode-lb) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/backend-service.md.txt#balancing-mode-lb) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/backend-service.md.txt#balancing-mode-lb) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal.md.txt#traffic_distribution) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/backend-service.md.txt#lb-locality-policy) |

^1^ This feature is not supported with load balancers that use
serverless NEG backends.

^2^ When the closest region is at capacity or isn't healthy, the
load balancer prefers next closest region.

^3^ Supported for classic load balancers in Premium Tier only.

^4^ This feature is not supported with target pool-based
regional external passthrough Network Load Balancers.

## Routing and traffic management

Filter this table:

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| HTTP or Layer 7 request routing | Yes [info](https://docs.cloud.google.com/load-balancing/docs/url-map.md.txt#traffic-management-guides) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/url-map.md.txt#traffic-management-guides) |   |   |   |   |
| Fault injection | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/setting-up-traffic-management.md.txt#multiple_allowed_in_a_url_map) | Yes (Only global and regional modes) |   |   |   |   |
| Configurable timeouts | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal.md.txt#timeouts_and_retries) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/https/request-distribution.md.txt#timeouts_and_retries) | Yes [info](https://docs.cloud.google.com/sdk/gcloud/reference/compute/backend-services/create.md.txt#--timeout) | Yes [info](https://docs.cloud.google.com/sdk/gcloud/reference/compute/backend-services/create.md.txt#--timeout) |   |   |
| Retries | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal.md.txt#timeouts_and_retries) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/https/request-distribution.md.txt#timeouts_and_retries) |   |   |   |   |
| Redirects | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/setting-up-http-to-https-redirect.md.txt) | Yes [global](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-global-http-https-redirect.md.txt) [classic](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-http-https-redirect.md.txt) [regional](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-reg-http-https-redirect.md.txt) |   |   |   |   |
| URL rewrites | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/setting-up-traffic-management.md.txt#rewrite_the_requested_url) | Yes [global](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-global-traffic-mgmt.md.txt#rewrite_the_requested_url) [classic](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-url-rewrite.md.txt) [regional](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-reg-traffic-mgmt.md.txt#rewrite_the_requested_url) |   |   |   |   |
| Request and response header transformations (configured on the URL map) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/setting-up-traffic-management.md.txt#add-remove-headers) | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-global-traffic-mgmt.md.txt#add-remove-headers) and [regional](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-reg-traffic-mgmt.md.txt#add-remove-headers) modes) |   |   |   |   |
| Traffic splitting | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/setting-up-traffic-management.md.txt#set_up_traffic_splitting_detailed_steps) | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-global-traffic-mgmt.md.txt#set_up_traffic_splitting_detailed_steps) and [regional](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-reg-traffic-mgmt.md.txt#set_up_traffic_splitting_detailed_steps) modes) |   |   |   |   |
| Traffic mirroring | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/setting-up-traffic-management.md.txt#mirror_traffic)^1^ | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-global-traffic-mgmt.md.txt#mirror_traffic) and [regional](https://docs.cloud.google.com/load-balancing/docs/l7-internal/setting-up-traffic-management.md.txt#mirror_traffic) modes) | Yes | Yes (Only regional mode) |   |   |
| Outlier detection | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/setting-up-traffic-management.md.txt#configure_outlier_detection) | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-global-traffic-mgmt.md.txt#configure_outlier_detection) and [regional](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-reg-traffic-mgmt.md.txt#configure_outlier_detection) modes) |   |   |   |   |
| Retry failed requests | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/setting-up-traffic-management.md.txt#retry_a_request) | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-global-traffic-mgmt.md.txt#retry_a_request) and [regional](https://docs.cloud.google.com/load-balancing/docs/https/setting-up-reg-traffic-mgmt.md.txt#retry_a_request) modes) |   |   |   |   |
| Custom request and response headers (configured on the backend service) |   | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/https/custom-headers-global.md.txt) and [regional](https://docs.cloud.google.com/load-balancing/docs/https/custom-headers.md.txt) modes) |   |   |   |   |
| Custom error responses |   | Yes [(Only global mode)](https://docs.cloud.google.com/load-balancing/docs/https/custom-error-response.md.txt) |   |   |   |   |
| Service load balancing policy | Yes [info](https://docs.cloud.google.com/load-balancing/docs/service-lb-policy.md.txt) | Yes [(Only global and regional modes)](https://docs.cloud.google.com/load-balancing/docs/service-lb-policy.md.txt) | Yes [(Only cross-region mode)](https://docs.cloud.google.com/load-balancing/docs/service-lb-policy.md.txt) | Yes [(Only global mode)](https://docs.cloud.google.com/load-balancing/docs/service-lb-policy.md.txt) |   |   |
| Connection tracking policy |   |   |   |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/internal/int-netlb-traffic-distribution.md.txt#tracking-policy) | Yes (Both global^3^ and [regional](https://docs.cloud.google.com/load-balancing/docs/network/ext-netlb-traffic-distribution.md.txt#tracking-policy) modes) |
| Source IP-based traffic steering |   |   |   |   |   | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/network/networklb-backend-service.md.txt#traffic-steering)^2^ mode) |

^1^ This feature is not supported with load balancers that use
serverless NEG backends.

^2^ This feature is supported by
[backend
service-based regional external passthrough Network Load Balancers](https://docs.cloud.google.com/load-balancing/docs/network/networklb-backend-service). Global external passthrough Network Load Balancers and
target pool-based regional external passthrough Network Load Balancer don't support this feature.

^3^ The global external passthrough Network Load Balancer doesn't support the
`PER_SESSION` connection tracking mode.

For traffic management features available with Cloud Service Mesh, see
[Cloud Service Mesh features: Routing and traffic
management](https://docs.cloud.google.com/service-mesh/docs/features#routing_and_traffic_management).

## Autoscaling and autohealing

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| Managed instance group autoscaling based on load balancer serving capacity | Yes | Yes (Only global and classic modes) |   |   |   |   |
| Autohealing (native to managed instance groups and GKE) | Yes | Yes | Yes | Yes | Yes | Yes |
| Connection draining | Yes | Yes | Yes | Yes | Yes | Yes^1^ |

^1^ This table documents the autoscaling and autohealing features supported by global external passthrough Network Load Balancers and backend service-based regional external passthrough Network Load Balancers. Target pool-based regional external passthrough Network Load Balancers don't support connection draining.

## Security

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| Google-managed SSL certificates | Yes [info](https://docs.cloud.google.com/load-balancing/docs/ssl-certificates.md.txt#certificate-summary) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/ssl-certificates.md.txt#certificate-summary)^1^ |   | Yes (Only [global](https://docs.cloud.google.com/load-balancing/docs/ssl-certificates.md.txt#certificate-summary) and [classic](https://docs.cloud.google.com/load-balancing/docs/ssl-certificates.md.txt#certificate-summary) mode)^2^ |   |   |
| CORS | Yes [info](https://docs.cloud.google.com/load-balancing/docs/l7-internal/setting-up-traffic-management.md.txt#multiple_allowed_in_a_url_map) | Yes (Only global and regional modes) |   |   |   |   |
| [Identity-Aware Proxy (IAP)](https://docs.cloud.google.com/iap/docs/concepts-overview.md.txt) | Yes | Yes^3^ |   |   |   |   |
| Google Cloud Armor | Yes [info](https://docs.cloud.google.com/armor/docs/security-policy-overview.md.txt#expandable-2) | Yes [info](https://docs.cloud.google.com/armor/docs/security-policy-overview.md.txt) |   | Yes (Only [global](https://docs.cloud.google.com/armor/docs/security-policy-overview.md.txt) and [classic](https://docs.cloud.google.com/armor/docs/security-policy-overview.md.txt) mode) |   | Yes (Only regional mode) |
| SSL offload | Yes | Yes |   | Yes (Only global and classic modes)^2^ |   |   |
| SSL policies (TLS version and cipher suites) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/ssl-policies-concepts.md.txt) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/ssl-policies-concepts.md.txt) |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/ssl-policies-concepts.md.txt) (Only global and classic modes)^2^ |   |   |
| Frontend mTLS | Yes [info](https://docs.cloud.google.com/load-balancing/docs/mtls.md.txt) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/mtls.md.txt) |   |   |   |   |
| Backend mTLS | Yes [info](https://docs.cloud.google.com/load-balancing/docs/backend-authenticated-tls-backend-mtls.md.txt) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/backend-authenticated-tls-backend-mtls.md.txt) (Only global and regional modes) |   |   |   |   |
| Authorization policies | Yes [info](https://docs.cloud.google.com/load-balancing/docs/auth-policy/auth-policy-overview.md.txt) | Yes [info](https://docs.cloud.google.com/load-balancing/docs/auth-policy/auth-policy-overview.md.txt) (Only global and regional modes) |   |   |   |   |
| Service rate limiting policies | Yes [info](https://docs.cloud.google.com/load-balancing/docs/srl-policy/service-rate-limiting-overview.md.txt)(only regional mode) |   |   |   |   |   |

^1^ Global external Application Load Balancers and classic Application Load Balancers support
both Compute Engine and Certificate Manager
Google-managed SSL certificates, whereas regional external Application Load Balancers support only
Certificate Manager Google-managed certificates.

^2^ Supported only if the load balancer is configured with a target
SSL proxy.

^3^ IAP is incompatible with Cloud CDN.

### Google Cloud Armor protection for external load balancers

Cloud Armor provides both always-on and user-configurable DDoS
protections for the following external load balancers, and user-configurable security
policy rules depending on the type of load balancer.

| Load balancer type or mode | Cloud Armor [security policies](https://docs.cloud.google.com/armor/docs/security-policy-overview.md.txt#policy-types) | Supported security policy types |
|---|---|---|
| Global external Application Load Balancer | Yes | - Backend security policy - Edge security policy |
| Classic Application Load Balancer | Yes | - Backend security policy - Edge security policy |
| Regional external Application Load Balancer | Yes | - Regional backend security policy |
| Global external proxy Network Load Balancer | Yes | - Backend security policy |
| Classic proxy Network Load Balancer | Yes | - Backend security policy |
| Regional external passthrough Network Load Balancer | Yes | - Network edge security policy |

You can also configure advanced network DDoS protection for
[regional external passthrough Network Load Balancers](https://docs.cloud.google.com/load-balancing/docs/network),
[protocol forwarding](https://docs.cloud.google.com/load-balancing/docs/protocol-forwarding.md.txt), or VMs with
public IP addresses. For more information about advanced network DDoS
protection, see
[Configure advanced network DDoS protection](https://docs.cloud.google.com/armor/docs/advanced-network-ddos.md.txt).

## Cross-product integrations

| Feature | Application Load Balancer || Proxy Network Load Balancer || Passthrough Network Load Balancer ||
| Feature | Internal | External | Internal | External | Internal | External |
|---|---|---|---|---|---|---|
| Cloud CDN |   | Yes (Only [global](https://docs.cloud.google.com/cdn/docs/overview.md.txt) and [classic](https://docs.cloud.google.com/cdn/docs/overview.md.txt)^1^ modes) |   |   |   |   |
| Service Extensions plugins and callouts | Yes [info](https://docs.cloud.google.com/service-extensions/docs/lb-extensions-overview.md.txt#supported-lbs) | Yes [info](https://docs.cloud.google.com/service-extensions/docs/lb-extensions-overview.md.txt#supported-lbs) |   |   |   |   |
| Internal Compute Engine DNS names | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/dns-names.md.txt) mode) |   | Yes (Only [regional](https://docs.cloud.google.com/load-balancing/docs/dns-names.md.txt) mode) |   | Yes [info](https://docs.cloud.google.com/load-balancing/docs/dns-names.md.txt) |   |
| Automatic Service Directory registration (Preview) | Yes [info](https://docs.cloud.google.com/service-directory/docs/configuring-ilb-in-sd.md.txt) |   |   |   | Yes [info](https://docs.cloud.google.com/service-directory/docs/configuring-ilb-in-sd.md.txt) |   |
| [App Hub](https://docs.cloud.google.com/app-hub/docs.md.txt) integration | Yes [info](https://docs.cloud.google.com/app-hub/docs/supported-resources.md.txt) | Yes [info](https://docs.cloud.google.com/app-hub/docs/supported-resources.md.txt) | Yes [info](https://docs.cloud.google.com/app-hub/docs/supported-resources.md.txt) | Yes [info](https://docs.cloud.google.com/app-hub/docs/supported-resources.md.txt) | Yes [info](https://docs.cloud.google.com/app-hub/docs/supported-resources.md.txt) | Yes [info](https://docs.cloud.google.com/app-hub/docs/supported-resources.md.txt) |

^1^ Supported for Premium Tier

## What's next

For detailed information about each load balancer, see the following:

- [External Application Load Balancer overview (global, classic, and regional)](https://docs.cloud.google.com/load-balancing/docs/https.md.txt)
- [Internal Application Load Balancer overview (regional and cross-region)](https://docs.cloud.google.com/load-balancing/docs/l7-internal.md.txt)
- [External proxy Network Load Balancer overview (global, classic, and regional)](https://docs.cloud.google.com/load-balancing/docs/tcp.md.txt)
- [Internal proxy Network Load Balancer overview (regional and cross-region)](https://docs.cloud.google.com/load-balancing/docs/tcp/internal-proxy.md.txt)
- [Global external passthrough Network Load Balancer overview](https://docs.cloud.google.com/load-balancing/docs/network/global-networklb-architecture.md.txt)
- [Regional external passthrough Network Load Balancer overview](https://docs.cloud.google.com/load-balancing/docs/network/networklb-backend-service.md.txt)
- [Internal passthrough Network Load Balancer overview](https://docs.cloud.google.com/load-balancing/docs/internal.md.txt)