Usa rutas basadas en políticas
Las rutas basadas en políticas te permiten seleccionar un siguiente salto en función de más de 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 TCP/UDP interno. Recomendamos habilitar el acceso global para que el balanceador de cargas TCP/UDP interno no descarte los paquetes de regiones distintas de 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.
Crea rutas basadas en políticas
Cuando creas una ruta basada en políticas, puedes especificar uno o más criterios coincidentes. El tráfico se redirecciona al balanceador de cargas TCP/UDP interno especificado si coincide con todos los criterios que elegiste. Si no especificas ningún criterio coincidente, la ruta se aplica a todo el tráfico IPv4 dentro de la red de VPC.
Crea una ruta basada en políticas para el tráfico dentro de una red de VPC
gcloud
Si deseas crear una ruta basada en políticas para el tráfico dentro de una red de VPC, usa el comando policy-based-routes create
.
gcloud network-connectivity policy-based-routes create ROUTE_NAME \ --source-range=IP_RANGE_A \ --destination-range=IP_RANGE_B \ --ip-protocol=IP_PROTOCOL \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --tags=NETWORK_TAGS \ --next-hop-ilb-ip=LOAD_BALANCER_IP \ --description=DESCRIPTION \ --priority=PRIORITY
Reemplaza lo siguiente:
ROUTE_NAME
: El nombre de la ruta basada en políticasIP_RANGE_A
: El rango de CIDR de IP de origenIP_RANGE_B
: El rango de CIDR de IP de destinoIP_PROTOCOL
: El protocolo de IP que se reenviará. Las opciones sonALL
,TCP
oUDP
. El valor predeterminado esALL
.PROJECT_ID
: El ID del proyectoNETWORK
: El nombre de la red a la que se reenviará el tráfico.NETWORK_TAGS
: Una o más etiquetas de red opcionales. La ruta basada en políticas se aplica a las instancias que tengan al menos una de estas etiquetas. Puedes incluir varias etiquetas en una lista separada por comas.LOAD_BALANCER_IP
: La dirección IP del balanceador de cargas TCP/UDP internoDESCRIPTION
: 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 enrutar el tráfico de respuesta de la misma manera que una ruta basada en políticas, crea una segunda ruta basada en políticas con el mismo salto y protocolos con igual, pero cambia los rangos de direcciones IP de origen y destino.
gcloud network-connectivity policy-based-routes create RETURN_ROUTE_NAME \ --source-range=IP_RANGE_B \ --destination-range=IP_RANGE_A \ --ip-protocol=IP_PROTOCOL \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --tags=NETWORK_TAGS \ --next-hop-ilb-ip=LOAD_BALANCER_IP \ --description=DESCRIPTION \ --priority=PRIORITY
Reemplaza RETURN_ROUTE_NAME
por el nombre de la ruta de retorno.
API
Si deseas crear una ruta basada en políticas para el tráfico dentro de una red de VPC, realiza una solicitud POST
al método policyBasedRoutes.create
.
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes?policyBasedRouteId=ROUTE_NAME { "filter": { "srcRange": "IP_RANGE_A", "destRange": "IP_RANGE_B", "ipProtocol": "IP_PROTOCOL", "protocolVersion": "IPv4" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopIlbIp": "LOAD_BALANCER_IP", "description": "DESCRIPTION", "priority": "PRIORITY", "virtualMachine": { "tags": [ "NETWORK_TAGS" ] } }
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyectoROUTE_NAME
: El nombre de la ruta basada en políticasIP_RANGE_A
: El rango de CIDR de IP de origenIP_RANGE_B
: El rango de CIDR de IP de destinoIP_PROTOCOL
: El protocolo de IP que se reenviará. Las opciones sonALL
,TCP
oUDP
. El valor predeterminado esALL
.NETWORK
: El nombre de la redLOAD_BALANCER_IP
: La dirección IP del balanceador de cargas TCP/UDP internoDESCRIPTION
: 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íticasNETWORK_TAGS
: Una o más etiquetas de red opcionales. La ruta basada en políticas se aplica a las instancias que tengan al menos una de estas etiquetas. Puedes incluir varias etiquetas con el siguiente formato:"tag1","tag2","tag3"
.
Para enrutar el tráfico de respuesta de la misma manera que una ruta basada en políticas, crea una segunda ruta basada en políticas con el mismo salto y protocolos con igual, pero cambia los rangos de direcciones IP de origen y destino.
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes?policyBasedRouteId=RETURN_ROUTE_NAME { "filter": { "srcRange": "IP_RANGE_B", "destRange": "IP_RANGE_A", "ipProtocol": "IP_PROTOCOL", "protocolVersion": "IPv4" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopIlbIp": "LOAD_BALANCER_IP", "description": "DESCRIPTION", "priority": "PRIORITY", "virtualMachine": { "tags": [ "NETWORK_TAGS" ] } }
Reemplaza RETURN_ROUTE_NAME
por el nombre de la ruta de retorno.
Crea una ruta basada en políticas para usar con una conexión de Cloud Interconnect
Puedes crear rutas basadas en políticas para dirigir el tráfico que se traslada de una red local a una red de VPC a través de una conexión de Cloud Interconnect. Cuando creas una ruta basada en políticas para el tráfico de Cloud Interconnect, debes especificar una región y la ruta se habilita para todas las conexiones de Cloud Interconnect en esa región. No es posible crear una ruta basada en políticas para una conexión específica de Cloud Interconnect.
gcloud
Si deseas crear una ruta basada en políticas para el tráfico que se origina en una red local, usa el comando policy-based-routes create
.
gcloud network-connectivity policy-based-routes create ROUTE_NAME \ --interconnect-attachment-region=INTERCONNECT_REGION \ --tags=NETWORK_TAGS \ --source-range=IP_RANGE_A \ --destination-range=IP_RANGE_B \ --ip-protocol=IP_PROTOCOL \ --network="projects/PROJECT_ID/global/networks/NETWORK" \ --next-hop-ilb-ip=LOAD_BALANCER_IP \ --description=DESCRIPTION \ --priority=PRIORITY
Reemplaza lo siguiente:
ROUTE_NAME
: El nombre de la ruta basada en políticasINTERCONNECT_REGION
: La región de las conexiones de Cloud Interconnect a las que se aplicarán las rutas basadas en políticasNETWORK_TAGS
: Una o más etiquetas de red opcionales. La ruta basada en políticas se aplica a las instancias que tengan al menos una de estas etiquetas. Puedes incluir varias etiquetas en una lista separada por comas.IP_RANGE_A
: El rango de CIDR de IP de origenIP_RANGE_B
: El rango de CIDR de IP de destinoIP_PROTOCOL
: El protocolo de IP que se reenviará. Las opciones sonALL
,TCP
oUDP
. El valor predeterminado esALL
.PROJECT_ID
: El ID del proyectoNETWORK
: El nombre de la red a la que se reenviará el tráfico.LOAD_BALANCER_IP
: La dirección IP del balanceador de cargas TCP/UDP internoDESCRIPTION
: 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
API
Si deseas crear una ruta basada en políticas para el tráfico que se origina en una red local, realiza una solicitud POST
al método policyBasedRoutes.create
.
POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/policyBasedRoutes?policyBasedRouteId=ROUTE_NAME { "filter": { "srcRange": "IP_RANGE_A", "destRange": "IP_RANGE_B", "ipProtocol": "IP_PROTOCOL", "protocolVersion": "IPv4" }, "interconnectAttachment": { "region": "INTERCONNECT_REGION" }, "network": "projects/PROJECT_ID/global/networks/NETWORK", "nextHopIlbIp": "LOAD_BALANCER_IP", "description": "DESCRIPTION", "priority": "PRIORITY", "virtualMachine": { "tags": [ "NETWORK_TAGS" ] } }
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyectoROUTE_NAME
: El nombre de la ruta basada en políticasIP_RANGE_A
: El rango de CIDR de IP de origenIP_RANGE_B
: El rango de CIDR de IP de destinoIP_PROTOCOL
: El protocolo de IP que se reenviará. Las opciones sonALL
,TCP
oUDP
. El valor predeterminado esALL
.INTERCONNECT_REGION
: La región de las conexiones de Cloud Interconnect a las que se aplicarán las rutas basadas en políticasNETWORK
: El nombre de la redLOAD_BALANCER_IP
: La dirección IP del balanceador de cargas TCP/UDP internoDESCRIPTION
: 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íticasNETWORK_TAGS
: Una o más etiquetas de red opcionales. La ruta basada en políticas se aplica a las instancias que tengan al menos una de estas etiquetas. Puedes incluir varias etiquetas con el siguiente formato:"tag1","tag2","tag3"
.
Verifica la conectividad para 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 de un proyecto.
gcloud
Para enumerar las rutas basadas en políticas, usa el comando policy-based-routes list
.
gcloud network-connectivity policy-based-routes list
API
Para enumerar las rutas basadas en políticas, realiza 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.
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
Para describir una ruta basada en políticas, realiza 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 proyectoROUTE_NAME
: El nombre de la ruta basada en políticas que se describe
Borra rutas basadas en políticas
Puedes borrar una ruta basada en políticas para quitarla de una red de VPC.
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
Para borrar una ruta basada en políticas, realiza 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 proyectoROUTE_NAME
: La ruta basada en políticas que se borrará