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

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

  1. En la Google Cloud consola, ve a Rutas.

    Ir a Rutas

  2. Haz clic en Gestión de rutas.

  3. Haz clic en Crear ruta.

  4. Introduce el nombre de la ruta.

  5. Opcional: Escribe una descripción.

  6. Haga clic en Red y, a continuación, seleccione la red en la que quiera añadir la ruta basada en políticas.

  7. Haga clic en Tipo de ruta y, a continuación, seleccione Ruta basada en políticas.

  8. Selecciona una versión de IP.

  9. 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.

  10. En la sección Criterios de clasificación, haga lo siguiente:

    1. Introduce un intervalo de IPs de origen.
    2. Introduce un intervalo de IPs de destino.
    3. Haga clic en Protocolo y, a continuación, seleccione los protocolos a los que se aplica esta ruta.
  11. Introduce una prioridad.

  12. 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:
        1. Seleccione En uso por la regla de reenvío de un balanceador de carga interno del proyecto actual.
        2. 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:

        1. Selecciona Sin usar.
        2. 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 crear una ruta basada en políticas que omita otras rutas basadas en políticas, selecciona Omitir otras rutas basadas en políticas.

  13. 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 son ALL, TCP o UDP. El valor predeterminado es ALL.
    • IP_VERSION: una única versión del protocolo de Internet a la que se aplica esta ruta. Especifica IPv4 o IPv6. El valor predeterminado es IPv4.
    • 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, usa all.

  • 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 son ALL, TCP o UDP. El valor predeterminado es ALL.
    • IP_VERSION: una única versión del protocolo de Internet a la que se aplica la ruta. Especifica IPv4 o IPv6. El valor predeterminado es IPv4.
    • 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, usa all.

  • 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

  1. En la Google Cloud consola, ve a Rutas.

    Ir a Rutas

    • Para ver todas las rutas basadas en políticas de una red de VPC y una región, haz lo siguiente:

      1. Haz clic en Rutas eficaces.
      2. Haz clic en Red y, a continuación, selecciona una red.
      3. Haz clic en Región y, a continuación, selecciona una región.
      4. Haz clic en Ver.
    • Para ver todas las rutas basadas en políticas de un proyecto, haz lo siguiente:

      1. 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

  1. En la Google Cloud consola, ve a Rutas.

    Ir a Rutas

  2. Haz clic en Rutas eficaces.

  3. Haz clic en Red y, a continuación, selecciona una red.

  4. Haz clic en Región y, a continuación, selecciona una región.

  5. Haz clic en Ver.

  6. 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

  1. En la Google Cloud consola, ve a Rutas.

    Ir a Rutas

  2. Haz clic en Rutas eficaces.

  3. Haz clic en Red y, a continuación, selecciona una red.

  4. Haz clic en Región y, a continuación, selecciona una región.

  5. Haz clic en Ver.

  6. Haga clic en el nombre de una ruta basada en políticas.

  7. 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:

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:

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)