Usar rutas basadas en políticas
Las rutas basadas en políticas te permiten seleccionar un siguiente salto en función de más de una dirección IP de destino de un paquete. En esta página se describe cómo crear, enumerar, describir y eliminar rutas basadas en políticas.
Antes de empezar
- Para usar los ejemplos de línea de comandos de esta guía, instala o actualiza a la versión más reciente de la CLI de Google Cloud.
- Debes habilitar la API Network Connectivity en tu proyecto.
- Necesitas un balanceador de carga de red de paso a través interno. Te recomendamos que habilites el acceso global para que el balanceador de carga de red con paso a través interno no descarte paquetes de regiones distintas a aquella en la que se ha definido.
Roles obligatorios
Para obtener los permisos que necesitas para usar rutas basadas en políticas, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de red de Compute (roles/compute.networkAdmin
) en tu proyecto.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Crear rutas basadas en políticas
Cuando creas una ruta basada en políticas, especificas lo siguiente:
- Ámbito de la ruta: los recursos a los que se puede aplicar la ruta.
- Criterios de clasificación: los intervalos de direcciones IP de origen, los intervalos 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.
Siguiente salto: un balanceador de carga de red de paso a través interno del siguiente salto o un siguiente salto que omite otras rutas basadas en políticas.
Consola
En la Google Cloud consola, ve a Rutas.
Haz clic en Gestión de rutas.
Haz clic en Crear ruta.
Introduce el nombre de la ruta.
Opcional: Escribe una descripción.
Haga clic en Red y, a continuación, seleccione la red en la que quiera añadir la ruta basada en políticas.
Haga clic en Tipo de ruta y, a continuación, seleccione Ruta basada en políticas.
Selecciona una versión de IP.
En la sección Ámbito de la ruta, haga una de las siguientes acciones:
Para que la ruta se aplique a todas las instancias de máquina virtual (VM), las vinculaciones de VLAN de Cloud Interconnect y los túneles de Cloud VPN de la red de nube privada virtual, selecciona Esta ruta se aplica a todas las instancias de VM, vinculaciones de VLAN y túneles de VPN.
Google recomienda tener cuidado al crear rutas de este tipo. La ruta se aplica a todos los paquetes de salida que coincidan con los criterios de clasificación, que pueden incluir el tráfico de salida del backend del balanceador de carga de red interno de tipo pasarela.
Para que la ruta se aplique solo a determinadas instancias de VM, selecciona Esta ruta solo se aplica a instancias de VM y, a continuación, introduce las etiquetas de red de las VMs a las que se debe aplicar esta ruta. Puede introducir varias etiquetas de red en una lista separada por comas.
Para que la ruta se aplique a todas las vinculaciones de VLAN de Interconexión de Cloud de la red de VPC de la ruta, selecciona Esta ruta solo se aplica a las vinculaciones de VLAN.
Para que la ruta se aplique a las vinculaciones de VLAN de Cloud Interconnect en una región específica, selecciona Esta ruta solo se aplica a las vinculaciones de VLAN y, a continuación, la región de las vinculaciones 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, haga lo siguiente:
- Introduce un intervalo de IPs de origen.
- Introduce un intervalo de IPs de destino.
- Haga clic en Protocolo y, a continuación, seleccione los protocolos a los que se aplica esta ruta.
Introduce una prioridad.
En la sección Siguiente salto, haga clic en Siguiente salto y, a continuación, haga lo siguiente:
Para especificar un balanceador de carga de red de paso a través interno del siguiente salto, selecciona Especificar una regla de reenvío del balanceador de carga de red de paso a través interno y, a continuación, haz lo siguiente:
- Para seleccionar una regla de reenvío de una lista de reglas de reenvío:
- Seleccione En uso por la regla de reenvío de un balanceador de carga interno del proyecto actual.
- Haz clic en Dirección IP de la regla de reenvío y, a continuación, selecciona una dirección IP asociada a un balanceador de carga interno en el proyecto seleccionado.
Para introducir una dirección IP, sigue estos pasos:
- Selecciona Sin usar.
En el campo Dirección IP de la regla de reenvío, introduzca una dirección IP sin longitud de prefijo. La dirección IP debe proceder de una de las siguientes fuentes:
- Los intervalos de direcciones IP de la red de VPC en la que vas a crear esta ruta basada en políticas.
- Los intervalos de direcciones IP de una red de VPC que está conectada a la red de VPC de la ruta mediante el emparejamiento entre redes de VPC.
Puede especificar una dirección IP que ya esté asociada a la regla de reenvío de un balanceador de carga de red interno de tipo pasarela o bien una dirección IP que no se haya usado 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:
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, las vinculaciones de VLAN de Cloud Interconnect y los túneles de Cloud VPN de la red de nube privada virtual, usa el siguiente comando.
Google recomienda tener cuidado al crear rutas de este tipo. La ruta se aplica a todos los paquetes de salida que coincidan con los criterios de clasificación, que pueden incluir el tráfico de salida del backend del balanceador de carga de red interno de tipo pasarela.
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
Haz los cambios siguientes:
ROUTE_NAME
: el nombre de la ruta basada en políticas.SOURCE_RANGE
: el intervalo CIDR de la IP de origen.DESTINATION_RANGE
: el intervalo CIDR de la IP de destino.PROTOCOL
: el protocolo del tráfico que se va a reenviar. Las opciones sonALL
,TCP
oUDP
. El valor predeterminado esALL
.IP_VERSION
: una única versión del protocolo de Internet a la que se aplica esta ruta. EspecificaIPv4
oIPv6
. El valor predeterminado esIPv4
.PROJECT_ID
: el ID del proyecto.NETWORK
: nombre de la red a la que se va a aplicar la ruta basada en políticas.NEXT_HOP
: una sola dirección IP, sin prefijo de longitud, para el balanceador de carga de red de paso a través interno del siguiente salto de la ruta. Especifica una dirección IPv4 como salto siguiente para el tráfico IPv4 o una dirección IPv6 para el tráfico IPv6. El balanceador de carga debe estar en la misma red de VPC que la ruta basada en políticas o en una red de VPC conectada a la red de VPC de la ruta mediante el emparejamiento de redes de VPC.Si la ruta se aplica al tráfico IPv6, debe configurar el balanceador de carga con subredes que tengan intervalos de direcciones IPv6.
DESCRIPTION
: descripción opcional de la ruta.PRIORITY
: 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 determinadas 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
Sustituye
NETWORK_TAGS
por una o varias etiquetas de red de las VMs a las que quieras aplicar la ruta. Puede incluir varias etiquetas de red en una lista separada por comas.Para aplicar la ruta solo a las vinculaciones de VLAN de Cloud Interconnect, usa el siguiente comando. Puedes aplicar la ruta a las vinculaciones de VLAN de Cloud Interconnect de una región específica o a todas las vinculaciones de VLAN de Cloud Interconnect de 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
Sustituye
INTERCONNECT_REGION
por la región de las vinculaciones de VLAN de Cloud Interconnect a las que quieras aplicar la ruta. Para aplicar la ruta basada en políticas a todas las vinculaciones de VLAN de Cloud Interconnect en la red de VPC de la ruta, usaall
.Para especificar un siguiente salto que omita otras rutas basadas en políticas para VMs específicas identificadas por 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, las vinculaciones de VLAN de Cloud Interconnect y los túneles de Cloud VPN de la red de nube privada virtual, incluye el siguiente cuerpo de solicitud.
Google recomienda tener cuidado al crear rutas de este tipo. La ruta se aplica a todos los paquetes de salida que coincidan con los criterios de clasificación, que pueden incluir el tráfico de salida del backend del balanceador de carga de red interno de tipo pasarela.
{ "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" }
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto.ROUTE_NAME
: el nombre de la ruta basada en políticas.SOURCE_RANGE
: el intervalo CIDR de la IP de origen.DESTINATION_RANGE
: el intervalo CIDR de la IP de destino.PROTOCOL
: el protocolo del tráfico que se va a reenviar. Las opciones sonALL
,TCP
oUDP
. El valor predeterminado esALL
.IP_VERSION
: una única versión del protocolo de Internet a la que se aplica la ruta. EspecificaIPv4
oIPv6
. El valor predeterminado esIPv4
.NETWORK
: nombre de la red a la que se va a aplicar la ruta basada en políticas. La ruta se aplica al tráfico de salida de las instancias de esta red que cumplan los demás criterios de clasificación.NEXT_HOP
: una sola dirección IP, sin prefijo de longitud, para el balanceador de carga de red de paso a través interno del siguiente salto de la ruta. Especifica una dirección IPv4 como salto siguiente para el tráfico IPv4 o una dirección IPv6 para el tráfico IPv6. El balanceador de carga debe estar en la misma red de VPC que la ruta basada en políticas o en una red de VPC conectada a la red de VPC de la ruta mediante el emparejamiento de redes de VPC.Si la ruta se aplica al tráfico IPv6, debe configurar el balanceador de carga con subredes que tengan intervalos de direcciones IPv6.
DESCRIPTION
: descripción opcional de la ruta.PRIORITY
: 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 determinadas instancias de máquina virtual, incluye el siguiente cuerpo de 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" ] } }
Sustituye
NETWORK_TAGS
por una o varias 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. Puede incluir varias etiquetas en el siguiente formulario:"tag1","tag2","tag3"
.Para aplicar la ruta solo a las vinculaciones de VLAN de Cloud Interconnect, incluye el siguiente cuerpo de solicitud. No es posible crear una ruta basada en políticas que se aplique a una vinculación de VLAN específica.
{ "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" }
Sustituye
INTERCONNECT_REGION
por la región de las vinculaciones de VLAN de Cloud Interconnect a las que quieras aplicar esta ruta. Para aplicar la ruta basada en políticas a todas las vinculaciones de VLAN de Cloud Interconnect en la red de VPC de la ruta, usaall
.Para especificar un siguiente salto que omita otras rutas basadas en políticas para VMs específicas identificadas por 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" ] } }
Verificar la conectividad de una ruta basada en políticas
Pruebas de conectividad es una herramienta de diagnóstico que te permite comprobar la conectividad entre los endpoints de tu red. Analiza tu configuración y, en algunos casos, realiza verificaciones en tiempo de ejecución. Connectivity Tests admite rutas basadas en políticas. Para ejecutar pruebas de conectividad con tus rutas basadas en políticas, consulta Crear y ejecutar pruebas de conectividad.
Mostrar rutas basadas en políticas
Puedes enumerar las rutas basadas en políticas para ver todas las rutas basadas en políticas de un proyecto, una red o una región.
Consola
En la Google Cloud consola, ve a Rutas.
Para ver todas las rutas basadas en políticas de una red de VPC y una región, haz lo siguiente:
- Haz clic en Rutas eficaces.
- Haz clic en Red y, a continuación, selecciona una red.
- Haz clic en Región y, a continuación, 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 Gestió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
Sustituye PROJECT_ID
por el ID del proyecto en el que quieres 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.
Consola
En la Google Cloud consola, ve a Rutas.
Haz clic en Rutas eficaces.
Haz clic en Red y, a continuación, selecciona una red.
Haz clic en Región y, a continuación, selecciona una región.
Haz clic en Ver.
Haga 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
Sustituye NAME
por el nombre de la ruta que quieras 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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto.ROUTE_NAME
: el nombre de la ruta basada en políticas que se va a describir.
Eliminar rutas basadas en políticas
Puedes eliminar una ruta basada en políticas para quitarla de una red de VPC.
Consola
En la Google Cloud consola, ve a Rutas.
Haz clic en Rutas eficaces.
Haz clic en Red y, a continuación, selecciona una red.
Haz clic en Región y, a continuación, selecciona una región.
Haz clic en Ver.
Haga clic en el nombre de una ruta basada en políticas.
Haz clic en Eliminar y, a continuación, vuelve a hacer clic en Eliminar para confirmar la acción.
gcloud
Para eliminar una ruta basada en políticas, usa el comando policy-based-routes delete
.
gcloud network-connectivity policy-based-routes delete NAME
Sustituye NAME
por el nombre de la ruta que quieras eliminar.
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
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto.ROUTE_NAME
: el nombre de la ruta basada en políticas que se va a eliminar.
Compatibilidad
Es necesario realizar una configuración especial para usar rutas basadas en políticas de las siguientes formas.
Usar 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 cree rutas basadas en políticas cuyos destinos incluyan direcciones IP de nodos de clúster o de pods.
- No cree rutas basadas en políticas cuyos destinos incluyan endpoints privados del plano de control del clúster.
- Algunos clústeres públicos de Google Kubernetes Engine (GKE) tienen puntos finales privados del plano de control de Private Service Connect. En estos clústeres, de forma predeterminada, GKE crea el endpoint privado del plano de control de Private Service Connect en el intervalo de direcciones IPv4 principal de la subred del clúster. Para elegir un intervalo de subred personalizado (de una subred de la misma región) para el endpoint privado del plano de control de Private Service Connect, consulta Crear un clúster y seleccionar el intervalo de IPs del plano de control.
- Cuando creas un clúster de GKE privado, especificas un intervalo de direcciones IP para el punto final privado del plano de control (
--master-ipv4-cidr
). Asegúrate de no crear una ruta basada en políticas cuyo destino incluya este intervalo. Para obtener más información, consulta Puntos finales en clústeres privados.
Rutas basadas en políticas y Private Service Connect para servicios publicados
Las rutas basadas en políticas no pueden enrutar el tráfico a puntos finales de Private Service Connect para servicios publicados ni a backends de Private Service Connect para servicios publicados. Cuando se usan rutas basadas en políticas y Private Service Connect para servicios publicados, se aplican las siguientes condiciones:
- Usa etiquetas de red para que las rutas basadas en políticas se apliquen a VMs específicas.
- No cree rutas basadas en políticas con intervalos de direcciones IP de origen o destino de
0.0.0.0/0
. - Si necesitas crear una ruta basada en políticas con un intervalo de destino que incluya la dirección IP de un punto final o un backend de Private Service Connect, crea una ruta basada en políticas con mayor prioridad que omita otras rutas basadas en políticas. Configura el destino de la ruta basada en políticas de mayor prioridad con un intervalo de direcciones IP más específico que incluya la dirección IP del endpoint o del 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 los servicios de Google a través de otras instancias de VM o de saltos siguientes personalizados, incluidos los back-ends de VM de los balanceadores de carga de red internos de transferencia directa del salto siguiente en las rutas basadas en políticas.
Si usas alguna de las siguientes formas de acceder a las APIs y los servicios de Google, consulta las prácticas recomendadas que se indican en la siguiente sección:
- Usar Acceso privado a Google para acceder a las APIs y los servicios de Google
- Acceder a las APIs y los servicios de Google desde máquinas virtuales con direcciones IP externas
- Usar puntos finales de Private Service Connect para las APIs de Google
- Usar backends de Private Service Connect para APIs de Google
Prácticas recomendadas
Te recomendamos que sigas estas prácticas recomendadas para 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.
- No crees rutas basadas en políticas con intervalos de origen o destino de
0.0.0.0/0
. - Si creas rutas basadas en políticas que incluyen intervalos de destino que usan las APIs y los servicios de Google, los endpoints de Private Service Connect para las APIs de Google o los backends de Private Service Connect para las APIs, crea rutas basadas en políticas con mayor prioridad que omitan otras rutas basadas en políticas.
Define los destinos de estas rutas basadas en políticas de mayor prioridad para que coincidan con las direcciones IP de las APIs y los servicios de Google, los puntos finales de Private Service Connect o los backends de Private Service Connect que utilices. Los intervalos de direcciones IP que usan las APIs y los servicios de Google incluyen los siguientes:
- Las direcciones IP de los dominios predeterminados que usan las APIs y los servicios de Google
- Las direcciones IP virtuales (VIPs) de Acceso privado a Google:
private.googleapis.com
(199.36.153.8/30)restricted.googleapis.com
(199.36.153.4/30)