Un registro de dirección de DNS, conocido como registro A, se usa para asignar un nombre de DNS a una dirección IP. Cuando creas la regla de reenvío de un balanceador de cargas interno, tienes la opción de designar una etiqueta de servicio a fin de que Google Cloud cree un nombre de DNS interno de Compute Engine único para el balanceador de cargas. Este nombre de DNS interno se crea a partir del ID del proyecto, el nombre de la regla de reenvío y una etiqueta de servicio que especifiques.
Especificaciones
Esta función es compatible con las reglas de reenvío para estos balanceadores de cargas:
Consulta el formato de registro DNS a fin de obtener detalles sobre el formato del nombre de DNS que Google Cloud crea para el balanceador de cargas. Debido a que el nombre de DNS contiene el nombre de la regla de reenvío, cada nombre de DNS es único, incluso si usas la misma etiqueta de servicio para varias reglas de reenvío.
A menos que se configure un servidor de nombres alternativo, las VM de cliente en cualquier región del mismo proyecto y red de VPC pueden realizar búsquedas de DNS para el nombre de DNS interno del balanceador de cargas. Para acceder al balanceador de cargas, las VM de cliente se deben ubicar en la misma región, a menos que el acceso global esté disponible y habilitado. Si habilitas el acceso global, un cliente de cualquier región puede acceder al balanceador de cargas.
Solo puedes especificar una etiqueta de servicio cuando creas una regla de reenvío. No se puede agregar una etiqueta de servicio a una regla de reenvío existente. Sin embargo, puedes reemplazar una regla de reenvío existente por una regla de reenvío nueva que tenga una etiqueta de servicio. El reemplazo puede usar la misma dirección IP interna que el original si primero borras la regla de reenvío original.
Los nombres de DNS internos creados a partir de etiquetas de servicio tienen las restricciones siguientes:
- No se crean los registros (PTR) inversos correspondientes.
- Cada regla de reenvío solo puede tener una etiqueta de servicio.
- Además de la etiqueta de servicio y el nombre de la regla de reenvío, no puedes cambiar ningún otra parte del nombre de DNS interno. Esto incluye su formato y nombre de dominio (
.internal
).
Si necesitas nombres de DNS más flexibles para tu balanceador de cargas interno, puedes crear registros personalizados en una zona privada y administrada de Cloud DNS.
Formato del Registro DNS
Cuando agregas una etiqueta de servicio a una regla de reenvío, Google Cloud crea un registro A de DNS interno de Compute Engine mediante uno de estos formatos:
Para balanceadores de cargas de red de transferencia internos:
SERVICE_LABEL.FORWARDING_RULE_NAME.il4.REGION.lb.PROJECT_ID.internal
Para balanceadores de cargas de aplicaciones internos regionales:
SERVICE_LABEL.FORWARDING_RULE_NAME.il7.REGION.lb.PROJECT_ID.internal
SERVICE_LABEL es la etiqueta del servicio de la regla de reenvío que especificaste. Debe seguir este formato:
- Puedes usar hasta 63 letras minúsculas (
a
az
), números (0
a9
) o guiones (-
). - La etiqueta de servicio debe comenzar con una letra en minúscula.
- La etiqueta de servicio debe terminar con una letra en minúscula o un número.
FORWARDING_RULE_NAME es el nombre de la regla de reenvío que deseas crear.
REGION es la región del balanceador de cargas.
PROJECT_ID es el ID del proyecto.
Los ID del proyecto que tienen el formato organization:project-id
se convierten en project-id.organization
. Por ejemplo, si tu ID del proyecto es example.com:example-marketing-prod
, Google Cloud usará example-marketing-prod.example.com
.
Crea una regla de reenvío con una etiqueta de servicio
En este procedimiento, se muestra cómo crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas de red de transferencia interno o un balanceador de cargas de aplicaciones interno.
En este procedimiento, solo se explica cómo crear una regla de reenvío con una etiqueta de servicio. Se omiten las propiedades de la configuración de backend del balanceador de cargas y otras propiedades de la configuración de frontend. Si es la primera vez que usas los balanceadores de cargas de red o de aplicaciones internos, consulta estas páginas para ver ejemplos completos:
Consola
En la consola de Google Cloud, ve a la página Balanceo de cargas.
- Haz clic en Crear balanceador de cargas.
- Completa los pasos del asistente para crear un balanceador de cargas de red de transferencia interno o un balanceador de cargas de aplicaciones interno y haz clic en Configurar.
- Ingresa un Nombre para el balanceador de cargas.
- Haz clic en Continuar.
- Completa la Configuración del backend.
Haz clic en Configuración de frontend. Completa la configuración de frontend y especifica una Etiqueta de servicio en la parte inferior de esa sección.
- Haz clic en Listo y, luego, en Revisar y finalizar.
gcloud
Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas de red de transferencia interno, haz lo siguiente:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL \ --region=REGION \ --backend-service-region=REGION \ --backend-service=BACKEND_SERVICE_NAME \ --network=NETWORK \ --subnet=SUBNET \ --address=INTERNAL_IP \ --ip-protocol=PROTOCOL \ --ports=PORTS \ --service-label=SERVICE_LABEL
Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas HTTPS interno, haz lo siguiente:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --region=REGION \ --target-https-proxy-region=REGION \ --target-https-proxy=TARGET_PROXY_NAME \ --network=NETWORK \ --subnet=SUBNET \ --address=INTERNAL_IP \ --ip-protocol=TCP \ --ports=443 \ --service-label=SERVICE_LABEL
Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas HTTP interno, haz lo siguiente:
gcloud compute forwarding-rules create FORWARDING_RULE_NAME \ --load-balancing-scheme=INTERNAL_MANAGED \ --region=REGION \ --target-http-proxy-region=REGION \ --target-http-proxy=TARGET_PROXY_NAME \ --network=NETWORK \ --subnet=SUBNET \ --address=INTERNAL_IP \ --ip-protocol=TCP \ --ports=PORT \ --service-label=SERVICE_LABEL
Reemplaza los marcadores por valores adecuados:
- FORWARDING_RULE_NAME es el nombre de la regla de reenvío del balanceador de cargas.
- REGION es la región del balanceador de cargas.
- BACKEND_SERVICE_NAME es el nombre del servicio de backend del balanceador de cargas.
- TARGET_PROXY_NAME es el nombre del proxy HTTPS de destino (para un balanceador de cargas HTTPS interno) o del proxy HTTP de destino (para un balanceador de cargas HTTP interno).
- NETWORK es el nombre de la red de VPC en la que se crea el balanceador de cargas.
- SUBNET es el nombre de una subred en la red de VPC. La subred debe estar en la misma región que el servicio de backend o el proxy de destino del balanceador de cargas.
- INTERNAL_IP es una dirección IP interna en el rango de IP principal de la subred elegida. Puedes omitir la marca
--address
para que Google Cloud elija una dirección IP disponible para ti. - Para los balanceadores de cargas de red de transferencia interno, PROTOCOL es
TCP
oUDP
, lo cual coincide con el protocolo del servicio de backend del balanceador de cargas. Para los balanceadores de cargas de aplicaciones internos, el protocolo debe serTCP
. - Para los balanceadores de cargas de red de transferencia internos, PORTS es un arreglo de hasta cinco puertos por número o la palabra
ALL
. En el caso de los balanceadores de cargas HTTPS internos, debes usar443
para el puerto. En el caso de los balanceadores de cargas HTTP internos, puedes usar80
o8080
para PORT. Consulta las especificaciones de puertos en los conceptos de reglas de reenvío para obtener más información. - SERVICE_LABEL es la etiqueta de servicio que necesitas. Esta debe seguir las convenciones de nombres.
api
En los siguientes ejemplos, se crean reglas de reenvío mediante el método forwardingRules.insert
.
Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas de red de transferencia interno, haz lo siguiente:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules { "name": "FORWARDING_RULE_NAME", "loadBalancingScheme": "INTERNAL", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/backendServices/BACKEND_SERVICE_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET", "IPAddress": "INTERNAL_IP", "IPProtocol": "PROTOCOL", "ports": PORTS, "serviceLabel": "SERVICE_LABEL" }
Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas HTTPS interno, haz lo siguiente:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules { "name": "FORWARDING_RULE_NAME", "loadBalancingScheme": "INTERNAL_MANAGED", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/targetHttpsProxies/TARGET_PROXY_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET", "IPAddress": "INTERNAL_IP", "IPProtocol": "TCP", "ports": 443, "serviceLabel": "SERVICE_LABEL" }
Si deseas crear una regla de reenvío con una etiqueta de servicio para un balanceador de cargas HTTP interno, haz lo siguiente:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules { "name": "FORWARDING_RULE_NAME", "loadBalancingScheme": "INTERNAL_MANAGED", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/targetHttpProxies/TARGET_PROXY_NAME", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT/global/networks/NETWORK", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNET", "IPAddress": "INTERNAL_IP", "IPProtocol": "TCP", "ports": PORT, "serviceLabel": "SERVICE_LABEL" }
Reemplaza los marcadores por valores adecuados:
- FORWARDING_RULE_NAME es el nombre de la regla de reenvío del balanceador de cargas.
- REGION es la región del balanceador de cargas.
- BACKEND_SERVICE_NAME es el nombre del servicio de backend del balanceador de cargas de red de transferencia interno.
- TARGET_PROXY_NAME es el nombre del proxy HTTPS de destino (para un balanceador de cargas HTTPS interno) o del proxy HTTP de destino (para un balanceador de cargas HTTP interno).
- NETWORK es el nombre de la red de VPC en la que se crea el balanceador de cargas.
- SUBNET es el nombre de una subred en la red de VPC. La subred debe estar en la misma región que el servicio de backend o el proxy de destino del balanceador de cargas.
- INTERNAL_IP es una dirección IP interna en el rango de IP principal de la subred elegida. Puedes omitir la clave
IPAddress
a fin de que Google Cloud elija una dirección IP disponible para ti. - Para los balanceadores de cargas de red de transferencia interno, PROTOCOL es
TCP
oUDP
, lo cual coincide con el protocolo del servicio de backend del balanceador de cargas. Para los balanceadores de cargas de aplicaciones internos, el protocolo debe serTCP
. - Para los balanceadores de cargas de red de transferencia internos, PORTS es un arreglo de hasta cinco puertos por número o la palabra
ALL
. En el caso de los balanceadores de cargas HTTPS internos, debes usar443
para el puerto. En el caso de los balanceadores de cargas HTTP internos, puedes usar80
o8080
para PORT. Consulta las especificaciones de puertos en los conceptos de reglas de reenvío para obtener más información. - SERVICE_LABEL es la etiqueta de servicio que necesitas. Esta debe seguir las convenciones de nombres.
Visualiza las etiquetas de servicio
Consola
Puede ver el nombre de DNS interno de Compute Engine (creado a partir de la etiqueta de servicio) para cada regla de reenvío interna de un balanceador de cargas interno:
En la consola de Google Cloud, ve a la página Balanceo de cargas.
Haz clic en el nombre del balanceador de cargas interno para ver su página de detalles.s
Las reglas de reenvío internas asignadas al balanceador de cargas se enumeran en la sección Frontend. En la columna nombre de DNS, se muestra el nombre de DNS interno de Compute Engine que se asigna a cada regla de reenvío. La etiqueta de servicio es la primera parte de ese nombre (antes del primer punto). Si no se muestra ningún nombre, la regla de reenvío no tiene una etiqueta de servicio definida.
gcloud
Enumera las reglas de reenvío en tu proyecto que usan los balanceadores de cargas de red de transferencia internos o los balanceadores de cargas de aplicaciones internos. Ubica las que necesites y anota el nombre y la región para el siguiente paso.
gcloud compute forwarding-rules list \ --filter="loadBalancingScheme=SCHEME"
El valor de SCHEME depende de las reglas de reenvío que debes enumerar:
- Para los balanceadores de cargas de red de transferencia internos, usa
INTERNAL
. - Para balanceadores de cargas de aplicaciones internos, usa
INTERNAL_MANAGED
.
- Para los balanceadores de cargas de red de transferencia internos, usa
Describe la regla de reenvío y reemplaza FORWARDING_RULE_NAME por su nombre y REGION por su región:
gcloud compute forwarding-rules describe FORWARDING_RULE_NAME \ --region=REGION \ --format="get(serviceLabel)"
api
Visualiza la regla de reenvío y la etiqueta de servicio con el método forwardingRules.get
La respuesta a la solicitud a la API incluye la etiqueta de servicio (serviceLabel
) y el nombre de DNS interno de Compute Engine (serviceName
).
GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/forwardingRules/FORWARDING_RULE_NAME
Respuesta de TCP/UDP:
{ ... "serviceLabel": "SERVICE_LABEL", "serviceName": "SERVICE_LABEL.FORWARDING_RULE_NAME.il4.REGION.lb.PROJECT.internal", ... }
Respuesta HTTP(S):
{ ... "serviceLabel": "SERVICE_LABEL", "serviceName": "SERVICE_LABEL.FORWARDING_RULE_NAME.il7.REGION.lb.PROJECT.internal", ... }
Ejemplo
En el siguiente procedimiento, se muestra cómo reemplazar una regla de reenvío por una que tenga una etiqueta de servicio. Este procedimiento funciona para los balanceadores de cargas de red de transferencia y de aplicación internos.
Si aún no creaste una regla de reenvío para tu balanceador de cargas interno, omite este ejemplo y consulta Crea una regla de reenvío con una etiqueta de servicio.
Describe la regla de reenvío existente del balanceador de cargas y anota la dirección IP interna de la regla de reenvío:
gcloud compute forwarding-rules describe FORWARDING_RULE_NAME \ --region=REGION \ --format="get(IPAddress)"
Borra la regla de reenvío:
gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \ --region=REGION
Crea una regla de reenvío de reemplazo con el mismo nombre y la misma dirección IP interna con una etiqueta de servicio. Consulta Crea una regla de reenvío con una etiqueta de servicio para obtener instrucciones.
¿Qué sigue?
- Para ver ejemplos de configuración de un balanceador de cargas interno, consulta Configura un balanceador de cargas de red de transferencia interno y Configura un balanceador de cargas de aplicaciones interno.
- Para obtener información sobre cómo configurar Logging y Monitoring para los balanceadores de cargas de red de transferencia interna, consulta Registro y supervisión del balanceador de cargas de red de transferencia interno.
- Para obtener información sobre cómo solucionar problemas con el balanceador de cargas de red de transferencia interno, consulta Soluciona problemas de balanceadores de cargas de red de transferencia internos.