Usa rutas
En esta página, se describe cómo crear y administrar rutas para redes de nube privada virtual (VPC) en Google Cloud. También, se da por hecho que estás familiarizado con los diferentes tipos de rutas de Google Cloud y sus características, como se describe en la Descripción general de rutas.
En cada red nueva hay dos tipos de rutas que genera el sistema: una ruta predeterminada, la cual se puede quitar o reemplazar, y una ruta de subred para cada una de las subredes. No puedes quitar una ruta de subred, a menos que borres la subred correspondiente.
Además de las rutas generadas por el sistema, puedes crear otras rutas estáticas personalizadas.
Inspecciona rutas
Enumera las rutas para las redes de VPC
Puedes ver las rutas mediante alguno de estos métodos:
Console
Para ver una lista de las rutas de todas las redes, realiza los siguientes pasos:
- Ve a la página Rutas en la consola de Google Cloud.
Ir a la página Rutas - Puedes usar el cuadro de texto Filtrar rutas para limitar las rutas que se muestran. Por ejemplo, puedes escribir el nombre de una red de VPC y presionar Intro para mostrar las rutas de una red específica.
- La pestaña Todos muestra todos los tipos de rutas. Para ver solo las rutas dinámicas personalizadas, haz clic en la pestaña Dinámica.
gcloud
Para enumerar rutas predeterminadas, rutas de subredes y rutas estáticas personalizadas, usa el siguiente comando de gcloud
y reemplaza NETWORK_NAME por el nombre de tu red:
gcloud compute routes list --filter="network=NETWORK_NAME"
Las rutas dinámicas personalizadas no se muestran con gcloud
compute routes list
. Para ver las rutas dinámicas, debes consultar el estado del Cloud Router que aprendió la ruta. Usa el siguiente comando como plantilla, y reemplaza CLOUD_ROUTER_NAME por el nombre de un Cloud Router y REGION por su región:
gcloud compute routers get-status CLOUD_ROUTER_NAME \ --region=REGION \ --format="flattened(result.bestRoutes)"
API
Enumera rutas predeterminadas, rutas de subred y rutas estáticas personalizadas en la red de VPC.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes?filter=network="NETWORK_URL
Reemplaza los marcadores de posición por valores válidos:
- PROJECT_ID es el ID del proyecto en el que se encuentra tu red de VPC.
- NETWORK_URL es la URL de la red de VPC que contiene las rutas que se enumerarán.
Para obtener más información, consulta el método routes.list
.
Las rutas dinámicas personalizadas no se muestran en la API de lista de rutas. Para ver las rutas dinámicas, debes consultar el estado del Cloud Router que aprendió la ruta. Para obtener más información, consulta la documentación de Cloud Router.
Describe rutas
Para ver lo detalles de las rutas generadas por el sistema y las rutas estáticas personalizadas, incluidos los destinos y siguientes saltos, realiza los pasos que se indican a continuación:
Console
- Ve a la página Rutas en la consola de Google Cloud.
Ir a la página Rutas - Haz clic en el nombre de una ruta.
gcloud
Para ver los detalles de las rutas generadas por el sistema y las rutas estáticas personalizadas, usa el siguiente comando de gcloud
y reemplaza ROUTE_NAME por el nombre de la ruta que se inspeccionará:
gcloud compute routes describe ROUTE_NAME --format="flattened()"
API
Describe una ruta generada por el sistema o una ruta personalizada estática para ver los detalles.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes/ROUTE_NAME
Reemplaza los marcadores de posición por valores válidos:
- PROJECT_ID es el ID del proyecto en el que se encuentra tu ruta.
- ROUTE_NAME es el nombre de la ruta que se describirá.
Para obtener más información, consulta el método routes.get
.
Rutas para VM
Si sigues las instrucciones de esta sección, puedes ver las rutas aplicables y las rutas efectivas desde la perspectiva de una determinada interfaz de red para una instancia de VM. Las rutas efectivas son un subconjunto de rutas aplicables que contemplan el orden de enrutamiento.
Rutas aplicables para una interfaz de red
Puedes usar la consola de Google Cloud a fin de ver las rutas aplicables para la interfaz de red de una VM. Esta vista acota la lista de rutas que se pueden usar para tráfico de salida.
Para ver las rutas aplicables de una interfaz de red específica de una VM, sigue estos pasos:
En la consola de Google Cloud, ve a la página Instancias de VM.
Ubica la instancia de VM en la lista. En el menú
Más acciones al final de la fila, selecciona Ver detalles de la red.Si una instancia tiene varias interfaces de red, en la sección Detalles de la interfaz de red, selecciona la interfaz de red que deseas ver.
En la sección Detalles de firewall y rutas, haz clic en la pestaña Rutas para ver todas las rutas que aplican a la interfaz de red, ordenadas por nombre de ruta.
Agrega y quita rutas
Agrega una ruta estática
Realiza los siguientes pasos para crear una ruta estática nueva. Antes de comenzar, asegúrate de estar familiarizado con la siguiente información:
Las rutas estáticas personalizadas no pueden tener rangos de destino que coincidan con los que usa cualquier ruta de subred en tu red de VPC o que sean más específicos que estos.
- Cuando uses el intercambio de tráfico entre redes de VPC para conectar dos redes de VPC, las rutas estáticas personalizadas en una red no pueden tener destinos que coincidan con los de las rutas de subred en ambas redes o que sean más específicos que estos. Google Cloud rechaza las rutas estáticas personalizadas que entrarían en conflicto con las rutas de las subredes por este motivo.
Para evitar conflictos cuando usas una red de modo automático, no crees rutas estáticas cuyos destinos se ajusten a
10.128.0.0/9
. A fin de obtener más detalles, revisa los rangos de IP reservados para las redes de modo automático.Los destinos de las rutas estáticas personalizadas no se pueden superponer con ningún rango asignado interno.
Asegúrate de estar familiarizado con las instancias como siguientes saltos antes de crear una ruta estática personalizada que use una VM como su siguiente salto. Google Cloud solo valida que exista una VM en el momento en que creas la ruta si eliges una instancia de siguiente salto.
Si creas una ruta con una etiqueta de red, solo las VM con esa etiqueta reciben esa ruta. Sin embargo, las VM etiquetadas aún recibirán todas las rutas que no tengan una etiqueta de red.
Console
- Ve a la página Rutas en la consola de Google Cloud.
Ir a la página Rutas - Haz clic en Crear ruta.
- Especifica un Nombre y una Descripción para la ruta.
- Selecciona una Red existente en la que se aplicará la ruta.
- Especifica un Rango de IP de destino para definir el destino de la ruta.
- Especifica una Prioridad para la ruta. La prioridad solo se usa para determinar el orden de enrutamiento si hay rutas con el mismo destino. Para obtener más detalles, consulta los parámetros de rutas estáticas.
- Para que la ruta sea aplicable solo a instancias seleccionadas con etiquetas de red que coincidan, especifícalas en el campo Etiquetas de instancia. Deja el campo en blanco para que la ruta sea aplicable a todas las instancias de la red o si seleccionas un balanceador de cargas de TCP/UDP interno como el siguiente salto de la ruta. Las etiquetas de red no se aplican a las rutas que tienen un balanceador de cargas de TCP/UDP interno como un siguiente salto.
Selecciona un siguiente salto para la ruta:
- Puerta de enlace de Internet predeterminada: crea una ruta a Internet.
- Especificar una instancia: te permite seleccionar una instancia por nombre. El tráfico se enrutará a esa instancia (o cualquier instancia de reemplazo con el mismo nombre en la misma zona) aunque cambie la dirección IP.
- Especificar dirección IP: te permite ingresar la dirección IP de una instancia existente en la red de VPC. Consulta Siguientes saltos de rutas estáticas para ver las restricciones importantes de direcciones IP de siguiente salto válidas.
- Especificar túnel VPN: te permite seleccionar un túnel de Cloud VPN existente como siguiente salto. El túnel debe usar el enrutamiento basado en políticas o debe ser una VPN basada en rutas.
- Especificar un nombre de regla de reenvío o una dirección IP de un balanceador de cargas de TCP/UDP interno revela un cuadro de texto que te permite especificar un balanceador de cargas de TCP/UDP interno existente como siguiente salto.
Para obtener más información sobre los diferentes tipos de siguientes saltos, consulta Siguientes saltos de rutas estáticas en la descripción general de rutas.
Haz clic en Crear.
gcloud
Crea una nueva ruta estática personalizada con el siguiente comando gcloud
:
gcloud compute routes create ROUTE_NAME \ --destination-range=DEST_RANGE \ --network=NETWORK \ NEXT_HOP_SPECIFICATION
Reemplaza los marcadores de posición por valores válidos:
- ROUTE_NAME es el nombre de la ruta.
- DESTINATION_RANGE representa las direcciones IP de destino a las que se aplicará esta ruta. El destino más amplio posible es
0.0.0.0/0
. - NETWORK es el nombre de la red de VPC que contendrá la ruta.
- NEXT_HOP_SPECIFICATION representa el siguiente salto de la ruta estática personalizada. Solo debes especificar uno de estos como próximo salto. Para obtener más información sobre los diferentes tipos de siguientes saltos, consulta Siguientes saltos de rutas estáticas.
--next-hop-gateway=default-internet-gateway
: Usa este siguiente salto para enviar tráfico fuera de la red de VPC, incluido a Internet o a las direcciones IP de Acceso privado a Google.--next-hop-instance=
INSTANCE_NAME y--next-hop-instance-zone=
ZONE: Usa este siguiente salto para dirigir el tráfico a una instancia de VM existente por nombre y zona. El tráfico se envía a la dirección IP interna principal de la interfaz de red de la VM que se encuentra en la misma red que la ruta.--next-hop-address=
ADDRESS: Usa este siguiente salto para dirigir el tráfico a la dirección IP de una instancia de VM existente.--next-hop-ilb=
FORWARDING_RULE_NAME y--next-hop-ilb-region=
REGION: Usa este siguiente salto con el balanceador de cargas de TCP/UDP interno para distribuir tráfico al balanceador de cargas, especificado por el nombre (o la dirección IP) y la región de la regla de reenvío interno. El balanceador de cargas distribuye el tráfico entre backends en buen estado en los que el balanceador de cargas es transparente para los clientes, como con el modo bump-in-the-wire.--next-hop-vpn-tunnel=
VPN_TUNNEL_NAME y--next-hop-vpn-tunnel-region=
REGION: Usa este siguiente salto para dirigir el tráfico a un túnel de Cloud VPN que use enrutamiento estático.
Para obtener más información sobre los diferentes tipos de siguientes saltos, consulta Siguientes saltos de rutas estáticas en la descripción general de rutas.
Para que la ruta estática personalizada solo se aplique a ciertas VM por etiqueta de red, agrega la marca --tags
y especifica una o más etiquetas de red. Para obtener más información sobre cómo trabajan las etiquetas de red en conjunto con las rutas estáticas personalizadas, consulta Rutas aplicables en la descripción general de rutas. Puedes usar etiquetas con cualquier ruta estática personalizada.
Consulta la documentación del SDK para obtener más información sobre la sintaxis de gcloud
.
API
Crea una nueva ruta estática personalizada.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes { "destRange": "DESTINATION_RANGE", "name": "ROUTE_NAME", "network": "NETWORK_NAME", "priority": PRIORITY, "NEXT_HOP_SPECIFICATION": "VALUE" }
Reemplaza los marcadores de posición por valores válidos:
- PROJECT_ID es el ID del proyecto en el que se crea tu ruta.
- DESTINATION_RANGE representa las direcciones IP de destino a las que se aplicará esta ruta. El destino más amplio posible es
0.0.0.0/0
. - ROUTE_NAME es un nombre para la ruta.
- NETWORK_NAME es el nombre de la red de VPC que contendrá la ruta.
- El VALUE de NEXT_HOP_SPECIFICATION representa el siguiente salto para la ruta estática personalizada. Para NEXT_HOP_SPECIFICATION, debes especificar solo uno de estos campos de siguiente salto:
nextHopIp
,nextHopGateway
,nextHopInstance
,nextHopIlb
onextHopVpnTunnel
. Para obtener más información sobre los diferentes tipos de siguientes saltos, consulta Siguientes saltos de rutas estáticas en la descripción general de rutas.
Para obtener más información, consulta el método routes.insert
.
Terraform
Puedes crear una ruta estática mediante un módulo de Terraform.
Esta ruta estática crea una ruta predeterminada a Internet.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
Agrega una ruta predeterminada IPv6
La única ruta IPv6 compatible es la ruta predeterminada (::/0
), con next-hop-gateway
configurado como default-internet-gateway
.
Esta ruta se configura automáticamente para la red de VPC cuando creas una subred de doble pila. Puedes borrar la ruta para bloquear todo el tráfico de IPv6 desde las VM hacia Internet. Puedes volver a crear la ruta si es necesario.
Console
- Ve a la página Rutas en la consola de Google Cloud.
Ir a la página Rutas - Haz clic en Crear ruta.
- Especifica un Nombre y una Descripción para la ruta.
- Selecciona una Red existente en la que se aplicará la ruta.
- En Rango de IP de destino, ingresa
::/0
. - Especifica una Prioridad para la ruta. La prioridad solo se usa para determinar el orden de enrutamiento si hay rutas con el mismo destino. Para obtener más detalles, consulta los parámetros de rutas estáticas.
- En Siguiente salto, selecciona Puerta de enlace de Internet predeterminada.
- Haz clic en Crear.
gcloud
Vuelve a crear la ruta IPv6 predeterminada de una red.
gcloud compute routes create ROUTE_NAME \ --destination-range=::/0 \ --network=NETWORK \ --next-hop-gateway=default-internet-gateway
Reemplaza los marcadores de posición por valores válidos:
- ROUTE_NAME es un nombre para la ruta.
- NETWORK es el nombre de la red de VPC que contendrá la ruta.
API
Vuelve a crear la ruta IPv6 predeterminada de una red.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes { "destRange": "::/0", "name": "ROUTE_NAME", "network": "NETWORK_NAME", "nextHopGateway": "projects/PROJECT_ID/global/gateways/default-internet-gateway" }
Reemplaza los marcadores de posición por valores válidos:
- PROJECT_ID es el ID del proyecto en el que se crea tu ruta.
- ROUTE_NAME es un nombre para la ruta.
- NETWORK_NAME es el nombre de la red de VPC que contendrá la ruta.
Borrar rutas
Puedes borrar una ruta predeterminada generada por el sistema o cualquier ruta estática. En el caso de otros tipos de rutas:
No puedes borrar una ruta de subred, a menos que borres la subred correspondiente.
Para borrar una ruta dinámica que aprendió un Cloud Router, debes configurar el router del par de BGP para detener la publicidad de la ruta.
Para borrar una ruta predeterminada IPv6, usa las instrucciones de la API o Google Cloud CLI. Si borras la ruta predeterminada para IPv6, las VM no se pueden conectar a VM en otras regiones con sus direcciones IPv6.
Console
- Ve a la página Rutas en la consola de Google Cloud.
Ir a la página Rutas - Selecciona la casilla de verificación junto a la regla que deseas borrar.
- Haz clic en Borrar.
- Haz clic en Borrar nuevamente para confirmar.
gcloud
Borra una ruta estática personalizada mediante el siguiente comando de gcloud
y reemplaza ROUTE_NAME por el nombre de la ruta que deseas quitar:
gcloud compute routes delete ROUTE_NAME
API
Borra una ruta estática personalizada para quitarla de tu red de VPC.
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes/ROUTE_NAME
Reemplaza los marcadores de posición por valores válidos:
- PROJECT_ID es el ID del proyecto en el que se encuentra tu ruta.
- ROUTE_NAME es el nombre de la ruta que se borrará.
Para obtener más información, consulta el método routes.delete
.
Orden de las operaciones
Cuando realizas una solicitud para agregar o borrar una ruta, los cambios se ordenan por etapas y luego se propagan a instancias en tu red con un diseño de coherencia eventual. Las solicitudes de cambio con estado PENDING
o RUNNING
indican que la solicitud aún no se procesó. Luego del procesamiento, el estado de la solicitud de cambio es DONE
.
Si realizas una secuencia de solicitudes de cambio, los cambios se pueden aplicar en cualquier orden. No se garantiza que el orden en el que envías las solicitudes de cambio sea el orden en el que se procesan. Más aún, instancias diferentes pueden detectar los cambios en momentos diferentes.
Habilita el reenvío de IP para las instancias
De forma predeterminada, Google Cloud realiza una comprobación de fuente y destino estricta para los paquetes de modo que ocurra lo siguiente:
- Las instancias de VM solo puedan enviar paquetes cuyos orígenes estén configurados para coincidir con una dirección IP interna de su interfaz en la red.
- Los paquetes solo se entreguen a una instancia si sus destinos coinciden con la dirección IP de la interfaz de la instancia en la red.
Entonces, de forma predeterminada, una VM no puede reenviar un paquete que originó otra VM.
A fin de usar una VM como un siguiente salto para una ruta, es necesario que la VM reciba paquetes con destinos diferentes a los de sí misma. Debido a que reenvía esos paquetes, las fuentes serán diferentes a su propia IP interna. Con el fin de lograr esto, debes habilitar el reenvío de IP para la VM. Cuando se habilita el reenvío de IP, Google Cloud no aplica la verificación de origen y destino del paquete.
Puedes habilitar el reenvío de IP cuando creas una VM o actualizas las propiedades de la instancia canIpForward
en una VM existente. El reenvío de IP está habilitado a nivel de la VM y se aplica a todas las interfaces conectadas a la VM.
Habilita el reenvío de IP cuando se crea una VM
En estas instrucciones, se describe cómo habilitar el reenvío de IP cuando creas una VM. Si necesitas habilitar el reenvío de IP en una VM existente, actualiza las propiedades de la instancia canIpForward
.
Console
- Ve a la página Instancias de VM.
Ir a la página Instancias de VM - Haga clic en Crear instancia.
- Expande la sección Herramientas de redes, discos, seguridad, administración, usuario único.
- Expande la sección Herramientas de redes.
- En la sección Reenvío de IP, selecciona Habilitar.
Después de habilitar el reenvío de IP, continúa con el proceso de creación de VM.
gcloud
Cuando crees una instancia mediante gcloud
, agrega la marca --can-ip-forward
al siguiente comando:
gcloud compute instances create ... --can-ip-forward
API
Cuando crees una instancia, usa el campo canIpForward
para habilitar el reenvío de IP.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "canIpForward": true, ...other fields }
Reemplaza los marcadores de posición por valores válidos:
- PROJECT_ID es el ID del proyecto en el que se creará tu instancia.
- ZONE es la zona de Google Cloud en la que se creará la instancia.
Para obtener más información, consulta el método instances.insert
.
Terraform
Puedes usar el recurso de Terraform para crear una instancia de VM con el reenvío de IP habilitado.
En este ejemplo, los argumentos de Terraform tienen valores asignados que puedes cambiar.
Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.
¿Qué sigue?
- Para obtener información sobre las rutas, consulta Rutas.
- Para obtener información sobre las redes VPC de Google Cloud, consulta la descripción general de las nubes privadas virtuales (VPC).
- Si deseas obtener instrucciones para crear y modificar redes de VPC, consulta Crea y administra redes de VPC.