Usa rutas basadas en políticas
Las rutas basadas en políticas te permiten elegir un próximo salto basado en más que la dirección IP de destino de un paquete. En esta página, se describe cómo crear, enumerar, describir y borrar rutas basadas en políticas.
Antes de comenzar
- Para usar los ejemplos de la línea de comandos de esta guía, instala o actualiza a la versión más reciente de Google Cloud CLI.
- Debes habilitar la API de Network Connectivity en tu proyecto.
- Necesitas un balanceador de cargas de red de transferencia interno. Recomendamos habilitar el acceso global para que el balanceador de cargas de red de transferencia interno no descarte paquetes de regiones distintas de la región en la que está definido.
Roles obligatorios
A fin de obtener los permisos que necesitas para usar rutas basadas en políticas, pídele a tu administrador que te otorgue el rol de IAM de administrador de Compute Network (roles/compute.networkAdmin
) en tu proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Crea rutas basadas en políticas
Cuando creas una ruta basada en políticas, debes especificar lo siguiente:
- Alcance de la ruta: Son los recursos a los que se puede aplicar la ruta.
- Criterios de clasificación: los rangos de direcciones IP de origen, los rangos de direcciones IP de destino y los protocolos que determinan a qué paquetes se aplica la ruta. La ruta basada en políticas se aplica a los paquetes que coinciden con todos los criterios de clasificación especificados.
- Próximo salto: Un balanceador de cargas de red de transferencia interno de próximo salto o un próximo salto que omite otras rutas basadas en políticas.
Console
En la consola de Google Cloud, ve a Rutas.
Haz clic en Administración de rutas.
Haz clic en Crear ruta.
Ingresa un Nombre para la ruta.
Ingresa una Descripción (opcional).
Haz clic en Red y, luego, selecciona la red en la que deseas agregar la ruta basada en políticas.
Haz clic en Tipo de ruta y, luego, selecciona Ruta basada en políticas.
En la sección Alcance de la ruta, realiza una de las siguientes acciones:
Para que la ruta se aplique a todas las instancias de máquina virtual (VM), adjuntos de VLAN para Cloud Interconnect y túneles de Cloud VPN en la red de nube privada virtual, selecciona lo siguiente:Esta ruta se aplica a todas las instancias de VM, los adjuntos de VLAN y los túneles VPN.
Google recomienda tener cuidado cuando se crean rutas de este tipo. La ruta se aplica a todos los paquetes de salida que coinciden con los criterios de clasificación, que pueden incluir el tráfico de salida del backend del balanceador de cargas de red de transferencia interno.
Para que la ruta se aplique solo a ciertas instancias de VM, selecciona Esta ruta solo se aplica a instancias de VM y, luego, ingresa las etiquetas de red de las VMs a las que debe aplicarse esta ruta. Puedes ingresar varias etiquetas de red en una lista separada por comas.
Para que la ruta se aplique a todos los adjuntos de VLAN para Cloud Interconnect en la red de VPC de la ruta, selecciona Esta ruta solo se aplica a los adjuntos de VLAN.
Para que la ruta se aplique a los adjuntos de VLAN en Cloud Interconnect de una región específica, selecciona Esta ruta solo se aplica a los adjuntos de VLAN y, luego, selecciona la región de los adjuntos de VLAN. No es posible crear una ruta basada en políticas que se aplique a un adjunto de VLAN específico.
En la sección Criterios de clasificación, haz lo siguiente:
- Ingresa un Rango de IP de origen.
- Ingresa un Rango de IP de destino.
- Haz clic en Protocolo y, luego, selecciona los protocolos a los que se aplica esta ruta.
Ingresa una Prioridad.
En la sección Próximo salto, haz clic en Próximo salto y, luego, haz lo siguiente:
Para especificar un balanceador de cargas de red de transferencia interno de próximo salto, selecciona Especifica una regla de reenvío del balanceador de cargas de red de transferencia interno y, luego, haz lo siguiente:
- Para seleccionar una regla de reenvío de una lista de reglas de reenvío existentes, sigue estos pasos:
- Selecciona En uso por la regla de reenvío de un balanceador de cargas interno en el proyecto actual.
- Haz clic en Dirección IP de la regla de reenvío y, luego, selecciona una dirección IP asociada con un balanceador de cargas interno en el proyecto seleccionado.
Para ingresar una dirección IP, sigue estos pasos:
- Selecciona Sin usar.
En el campo Dirección IP de la regla de reenvío, ingresa una dirección IP, sin una longitud de prefijo. La dirección IP debe provenir de una de las siguientes fuentes:
- Los rangos de direcciones IP de la red de VPC en la que creas esta ruta basada en políticas.
- Los rangos de direcciones IP de una red de VPC que está conectada a la red de VPC de la ruta a través del intercambio de tráfico entre redes de VPC (versión preliminar)
Puedes especificar una dirección IP que ya esté asociada con una regla de reenvío del balanceador de cargas de red interno, o puedes especificar una dirección IP sin usar y crear la regla de reenvío después de crear esta ruta basada en políticas.
- Para seleccionar una regla de reenvío de una lista de reglas de reenvío existentes, sigue estos pasos:
Para crear una ruta basada en políticas que omita otras rutas basadas en políticas, selecciona Omitir otras rutas basadas en políticas.
Haz clic en Crear.
gcloud
Usa el comando policy-based-routes create
.
Para aplicar la ruta a todas las instancias de VM, los adjuntos de VLAN de Cloud Interconnect y los túneles de Cloud VPN en la red de nube privada virtual, usa el siguiente comando.
Google recomienda tener cuidado cuando se crean rutas de este tipo. La ruta se aplica a todos los paquetes de salida que coinciden con los criterios de clasificación, que pueden incluir el tráfico de salida del backend del balanceador de cargas de red de transferencia interno.
gcloud network-connectivity policy-based-routes create ROUTE_NAME \ --source-range=SOURCE_RANGE \ --destination-range=DESTINATION_RANGE \ --ip-protocol=PROTOCOL \ --protocol-version=IP_VERSION \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --next-hop-ilb-ip=NEXT_HOP \ --description=DESCRIPTION \ --priority=PRIORITY
Reemplaza lo siguiente:
ROUTE_NAME
: el nombre de la ruta basada en políticas.SOURCE_RANGE
: el rango de CIDR de IP de origen.DESTINATION_RANGE
: el rango de CIDR de IP de destinoPROTOCOL
: El protocolo que se reenviará. Las opciones sonALL
,TCP
oUDP
. El valor predeterminado esALL
.IP_VERSION
: Es una sola versión del protocolo de Internet a la que se aplica esta ruta. EspecificaIPv4
, oIPv6
(vista previa). El valor predeterminado esIPv4
. Para especificarIPv6
, usa la versión beta de Google Cloud CLI.PROJECT_ID
: el ID del proyecto.NETWORK
: el nombre de la red a la que se aplicará la ruta basada en políticas.NEXT_HOP
: Es una sola dirección IP, sin una longitud de prefijo, para el balanceador de cargas de red de transferencia interna de próximo salto de la ruta. Especifica una dirección IPv4 como próximo salto para el tráfico IPv4 o una dirección IPv6 para el tráfico IPv6 (versión preliminar). El balanceador de cargas debe estar en la misma red de VPC que la ruta basada en políticas o en una red de VPC que esté conectada a la red de VPC de la ruta a través del intercambio de tráfico entre redes de VPC (versión preliminar).Si la ruta se aplica al tráfico IPv6 (versión preliminar), debes configurar el balanceador de cargas con subredes de pila doble.
Para especificar una dirección IPv6 o una dirección IP de una red de VPC de pares, usa la versión beta de Google Cloud CLI.
DESCRIPTION
: una descripción opcional de la rutaPRIORITY
: la prioridad de la ruta basada en políticas en comparación con otras rutas basadas en políticas.
Para aplicar la ruta solo a ciertas instancias de VM, usa el siguiente comando:
gcloud network-connectivity policy-based-routes create ROUTE_NAME \ --source-range=SOURCE_RANGE \ --destination-range=DESTINATION_RANGE \ --ip-protocol=PROTOCOL \ --protocol-version=IP_VERSION \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --next-hop-ilb-ip=NEXT_HOP \ --description=DESCRIPTION \ --priority=PRIORITY \ --tags=NETWORK_TAGS
Reemplaza
NETWORK_TAGS
por una o más etiquetas de red de las VMs a las que se aplicará la ruta. Puedes ingresar varias etiquetas de red en una lista separada por comas.Para aplicar la ruta solo a los adjuntos de VLAN para Cloud Interconnect, usa el siguiente comando. Puedes aplicar la ruta a los adjuntos de VLAN para Cloud Interconnect en una región específica o a todos los adjuntos de VLAN para Cloud Interconnect en una red de VPC.
gcloud network-connectivity policy-based-routes create ROUTE_NAME \ --source-range=SOURCE_RANGE \ --destination-range=DESTINATION_RANGE \ --ip-protocol=PROTOCOL \ --protocol-version=IP_VERSION \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --next-hop-ilb-ip=NEXT_HOP \ --description=DESCRIPTION \ --priority=PRIORITY \ --interconnect-attachment-region=INTERCONNECT_REGION
Reemplaza
INTERCONNECT_REGION
por la región de los adjuntos de VLAN para que Cloud Interconnect aplique esta ruta. A fin de aplicar la ruta basada en políticas a todos los adjuntos de VLAN para Cloud Interconnect en la red de VPC de la ruta, usaall
.Para especificar el próximo salto que omita otras rutas basadas en políticas para VMs específicas que se identifican con etiquetas de red, usa el siguiente comando:
gcloud network-connectivity policy-based-routes create ROUTE_NAME \ --source-range=SOURCE_RANGE \ --destination-range=DESTINATION_RANGE \ --ip-protocol=PROTOCOL \ --protocol-version=IP_VERSION \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --next-hop-other-routes=DEFAULT_ROUTING \ --description=DESCRIPTION \ --priority=PRIORITY \ --tags=NETWORK_TAGS
API
Envía una solicitud POST
al método policyBasedRoutes.create
.
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes?policyBasedRouteId=ROUTE_NAME
Para aplicar la ruta a todas las instancias de VM, los adjuntos de VLAN de Cloud Interconnect y los túneles de Cloud VPN en la red de nube privada virtual, incluye el siguiente cuerpo de solicitud.
Google recomienda tener cuidado cuando se crean rutas de este tipo. La ruta se aplica a todos los paquetes de salida que coinciden con los criterios de clasificación, que pueden incluir el tráfico de salida del backend del balanceador de cargas de red de transferencia interno.
{ "filter": { "srcRange": "SOURCE_RANGE", "destRange": "DESTINATION_RANGE", "ipProtocol": "PROTOCOL", "protocolVersion": "IP_VERSION" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopIlbIp": "NEXT_HOP", "description": "DESCRIPTION", "priority": "PRIORITY" }
Reemplaza lo siguiente:
PROJECT_ID
: el ID del proyecto.ROUTE_NAME
: el nombre de la ruta basada en políticas.SOURCE_RANGE
: el rango de CIDR de IP de origen.DESTINATION_RANGE
: el rango de CIDR de IP de destinoPROTOCOL
: El protocolo que se reenviará. Las opciones sonALL
,TCP
oUDP
. El valor predeterminado esALL
.IP_VERSION
: Es una sola versión del protocolo de Internet a la que se aplica la ruta. EspecificaIPv4
, oIPv6
(vista previa). El valor predeterminado esIPv4
. Para especificar una direcciónIPv6
, usa la API de v1beta.NETWORK
: el nombre de la red a la que se aplicará la ruta basada en políticas. La ruta se aplica al tráfico de salida de las instancias de esta red que cumplen con los otros criterios de clasificación.NEXT_HOP
: Es una sola dirección IP, sin una longitud de prefijo, para el balanceador de cargas de red de transferencia interna de próximo salto de la ruta. Especifica una dirección IPv4 como próximo salto para el tráfico IPv4 o una dirección IPv6 para el tráfico IPv6 (versión preliminar). El balanceador de cargas debe estar en la misma red de VPC que la ruta basada en políticas o en una red de VPC que esté conectada a la red de VPC de la ruta a través del intercambio de tráfico entre redes de VPC (versión preliminar).Si la ruta se aplica al tráfico IPv6 (versión preliminar), debes configurar el balanceador de cargas con subredes de pila doble.
Para especificar una dirección IPv6 o una dirección IP de una red de VPC de intercambio de tráfico, usa la API de v1beta.
DESCRIPTION
: una descripción opcional de la rutaPRIORITY
: la prioridad de la ruta basada en políticas en comparación con otras rutas basadas en políticas.
Para aplicar la ruta solo a ciertas instancias de VM, incluye el siguiente cuerpo de la solicitud:
{ "filter": { "srcRange": "SOURCE_RANGE", "destRange": "DESTINATION_RANGE", "ipProtocol": "PROTOCOL", "protocolVersion": "IP_VERSION" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopIlbIp": "NEXT_HOP", "description": "DESCRIPTION", "priority": "PRIORITY", "virtualMachine": { "tags": [ "NETWORK_TAGS" ] } }
Reemplaza
NETWORK_TAGS
por una o más etiquetas de red. La ruta basada en políticas se aplica al tráfico de salida de las instancias que tengan al menos una de estas etiquetas. Puedes incluir varias etiquetas con el siguiente formato:"tag1","tag2","tag3"
.Para aplicar la ruta solo a los adjuntos de VLAN para Cloud Interconnect, incluye el siguiente cuerpo de solicitud. No es posible crear una ruta basada en políticas que se aplique a un adjunto de VLAN específico.
{ "filter": { "srcRange": "SOURCE_RANGE", "destRange": "DESTINATION_RANGE", "ipProtocol": "PROTOCOL", "protocolVersion": "IP_VERSION" }, "interconnectAttachment": { "region": "INTERCONNECT_REGION" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopIlbIp": "NEXT_HOP", "description": "DESCRIPTION", "priority": "PRIORITY" }
Reemplaza
INTERCONNECT_REGION
por la región de los adjuntos de VLAN para que Cloud Interconnect aplique esta ruta. A fin de aplicar la ruta basada en políticas a todos los adjuntos de VLAN para Cloud Interconnect en la red de VPC de la ruta, usaall
.Para especificar el próximo salto que omita otras rutas basadas en políticas para VMs específicas que se identifican con etiquetas de red, usa el siguiente comando:
{ "filter": { "srcRange": "SOURCE_RANGE", "destRange": "DESTINATION_RANGE", "ipProtocol": "PROTOCOL", "protocolVersion": "IP_VERSION" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopOtherRoutes": "DEFAULT_ROUTING", "description": "DESCRIPTION", "priority": "PRIORITY", "virtualMachine": { "tags": [ "NETWORK_TAGS" ] } }
Verifica la conectividad de una ruta basada en políticas
Las pruebas de conectividad son una herramienta de diagnóstico que te permite verificar la conectividad entre extremos de tu red. Analiza la configuración y, en algunos casos, la verificación del entorno de ejecución. Las pruebas de conectividad admiten rutas basadas en políticas. Para ejecutar pruebas de conectividad con tus rutas basadas en políticas, consulta Crea y ejecuta pruebas de conectividad.
Enumera rutas basadas en políticas
Puedes enumerar las rutas basadas en políticas para ver todas las rutas basadas en políticas en un proyecto o red y región.
Console
En la consola de Google Cloud, ve a Rutas.
Para ver todas las rutas basadas en políticas en una red de VPC y una región, haz lo siguiente:
- Haz clic en Rutas efectivas.
- Haz clic en Red y, luego, selecciona una red.
- Haz clic en Región y, luego, selecciona una región.
- Haz clic en Ver.
Para ver todas las rutas basadas en políticas de un proyecto, haz lo siguiente:
- Haz clic en Administración de rutas.
gcloud
Usa el comando policy-based-routes list
gcloud network-connectivity policy-based-routes list
API
Envía una solicitud GET
al método policyBasedRoutes.list
.
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes
Reemplaza PROJECT_ID
por el ID del proyecto para enumerar las rutas basadas en políticas.
Describe las rutas basadas en políticas
Puedes describir una ruta basada en políticas para ver los detalles de la ruta.
Console
En la consola de Google Cloud, ve a Rutas.
Haz clic en Rutas efectivas.
Haz clic en Red y, luego, selecciona una red.
Haz clic en Región y, luego, selecciona una región.
Haz clic en Ver.
Haz clic en el Nombre de una ruta basada en políticas para ver sus detalles.
gcloud
Para describir una ruta basada en políticas, usa el comando policy-based-routes describe
.
gcloud network-connectivity policy-based-routes describe NAME
Reemplaza NAME
por el nombre de la ruta que deseas describir.
API
Envía una solicitud GET
al método policyBasedRoutes.get
.
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes/ROUTE_NAME
Reemplaza lo siguiente:
PROJECT_ID
: el ID del proyecto.ROUTE_NAME
: el nombre de la ruta basada en políticas que se describe
Borrar rutas basadas en políticas
Puedes borrar una ruta basada en políticas para quitarla de una red de VPC.
Console
En la consola de Google Cloud, ve a Rutas.
Haz clic en Rutas efectivas.
Haz clic en Red y, luego, selecciona una red.
Haz clic en Región y, luego, selecciona una región.
Haz clic en Ver.
Haz clic en el Nombre de una ruta basada en políticas.
Haz clic en Borrar y, luego, en Borrar de nuevo para confirmar.
gcloud
Para borrar una ruta basada en políticas, usa el comando policy-based-routes delete
.
gcloud network-connectivity policy-based-routes delete NAME
Reemplaza NAME
por el nombre de la ruta que deseas borrar.
API
Envía una solicitud DELETE
al método policyBasedRoutes.delete
.
DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes/ROUTE_NAME
Reemplaza lo siguiente:
PROJECT_ID
: el ID del proyecto.ROUTE_NAME
: el nombre de la ruta basada en políticas que se borrará.
Compatibilidad
La configuración especial es necesaria para usar rutas basadas en políticas de las siguientes maneras.
Usa rutas basadas en políticas con GKE
Si creas rutas basadas en políticas en redes de VPC que tienen clústeres de Google Kubernetes Engine (GKE), ten en cuenta lo siguiente:
- No crees rutas basadas en políticas cuyos destinos incluyan direcciones IP del nodo del clúster o del Pod.
- No crees rutas basadas en políticas cuyos destinos incluyan extremos privados del plano de control del clúster.
- Algunos clústeres públicos de Google Kubernetes Engine (GKE) tienen extremos privados del plano de control de Private Service Connect. Para estos clústeres, de forma predeterminada, GKE crea el extremo privado del plano de control de Private Service Connect en el rango de direcciones IPv4 principal de la subred del clúster. Para elegir un rango de subred personalizado (de una subred en la misma región) para el extremo privado del plano de control de Private Service Connect, consultaCrea un clúster y selecciona el rango de IP del plano de control. .
- Cuando creas un clúster privado de GKE, especificas un rango de direcciones IP para el extremo privado del plano de control
(
--master-ipv4-cidr
). Asegúrate de no crear una ruta basada en políticas cuyo destino incluya este rango. Para obtener más información, consulta Extremos en clústeres privados.
Rutas basadas en políticas y Private Service Connect para servicios publicados
Las rutas basadas en políticas no se pueden usar para enrutar el tráfico de las VMs a extremos de Private Service Connect para servicios publicados o a backends de Private Service Connect para servicios publicados. Cuando uses rutas basadas en políticas y Private Service Connect para servicios publicados, ten en cuenta lo siguiente:
- Usa etiquetas de red para que las rutas basadas en políticas se apliquen a VMs específicas.
- Evita crear rutas basadas en políticas con rangos de direcciones IP de origen o destino de
0.0.0.0/0
. - Si necesitas crear una ruta basada en políticas con un rango de destino que incluya la dirección IP de un extremo o un backend de Private Service Connect, crea una ruta de prioridad más alta basada en políticas que omita otras rutas basadas en políticas. Configura el destino de la ruta basada en políticas de mayor prioridad con un rango de direcciones IP más específico que incluya la dirección IP del extremo o el backend de Private Service Connect.
Rutas basadas en políticas y acceso a las APIs y los servicios de Google
Google Cloud no admite el enrutamiento del tráfico a las APIs y a los servicios de Google a través de otras instancias de VM o siguientes saltos personalizados, incluidos los backends de VM de balanceadores de cargas de red de salto interno de siguiente salto en rutas basadas en políticas.
Si usas alguna de las siguientes formas para acceder a las APIs y los servicios de Google, consulta las prácticas recomendadas que se enumeran en la siguiente sección:
- Usa el Acceso privado a Google para acceder a las APIs y los servicios de Google
- Acceder a las APIs y los servicios de Google desde VMs con direcciones IP externas
- Usa extremos de Private Service Connect para las APIs de Google
- Usa Backends de Private Service Connect para las APIs de Google
Prácticas recomendadas
Te recomendamos las siguientes prácticas recomendadas para las formas anteriores de acceder a las APIs y los servicios de Google:
- Usa etiquetas de red para que las rutas basadas en políticas se apliquen a VMs específicas.
- Evita crear rutas basadas en políticas con rangos de origen o destino de
0.0.0.0/0
. - Si creas rutas basadas en políticas que incluyen rangos de destino que usan las APIs y los servicios de Google, los extremos de Private Service Connect para las APIs de Google o los backends de Private Service Connect para las APIs, crea una política de mayor prioridad: rutas basadas en rutas que omitan otras rutas basadas en políticas
Configura los destinos de estas rutas basadas en políticas de mayor prioridad para que coincidan con las direcciones IP de los servicios y las APIs de Google, los extremos de Private Service Connect o los backends de Private Service Connect que usas. Los rangos de direcciones IP que usan las APIs y los servicios de Google incluyen los siguientes:
- Las direcciones IP para los dominios predeterminados que usan las APIs y los servicios de Google
- Las direcciones IP virtuales (VIP) de Acceso privado a Google:
private.googleapis.com
(199.36.153.8/30)restricted.googleapis.com
(199.36.153.4/30)