Usa rutas

En esta página, se describe cómo crear y administrar rutas para las redes de VPC de Google Cloud (Google Cloud). 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.

Cómo inspeccionar rutas

Cómo ver una lista de 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:

  1. Ve a la página Rutas en Google Cloud Console.
    Ir a la página Rutas
  2. 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.
  3. 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 en 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 a continuación:

Console

  1. Ve a la página Rutas en Google Cloud Console.
    Ir a la página Rutas
  2. 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 Cloud Console a fin de ver las rutas aplicables para la interfaz de red de una VM. En esta vista, se 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, realiza los siguientes pasos:

  1. Ve a la página Instancias de VM en Google Cloud Console.
    Ir a la página Instancias de VM
  2. Ubica la instancia de VM en la lista. En el menú más acciones (), selecciona Ver detalles de red.
  3. Si una instancia tiene varias interfaces de red, selecciona la interfaz de red que quieres ver en la sección Detalles de la interfaz de red.
  4. Haz clic en la pestaña Rutas para ver todas las rutas que aplican a la interfaz de red, ordenadas por nombre de ruta.

Análisis de ruta y rutas efectivas

El análisis de ruta te ayuda a determinar las rutas efectivas, teniendo en cuenta las rutas aplicables y el orden del enrutamiento. Las rutas se muestran en una lista según el rango de IP, de modo que puedas diferenciar qué ruta aplicable se usará para enviar tráfico a un rango de destino determinado.

Por ejemplo, una interfaz de red puede usar más de una ruta aplicable. Para obtener más información, consulta orden de enrutamiento en la Descripción general de la ruta.

Para ver las rutas según la aplicabilidad y el orden de enrutamiento, usa el análisis de ruta:

  1. Ve a la página Instancias de VM en Google Cloud Console y busca la instancia que deseas ver.
    Ir a la página Instancias de VM
  2. En el menú más acciones de la instancia (), selecciona Ver detalles de la red.
  3. Si una instancia tiene varias interfaces de red, selecciona la interfaz de red que quieres ver en la sección Detalles de la interfaz de red.
  4. En la sección Análisis de red, selecciona la pestaña Análisis de ruta.
  5. Mira la tabla, que está ordenada del rango de direcciones IP más específico al menos específico, para determinar cuál es la ruta que aplica a un rango de destino determinado.

Este es un resultado de ejemplo de la pestaña de análisis de ruta:

Rutas efectivas para una instancia de VM (haz clic si deseas agrandar)
Rutas efectivas para una instancia de VM (haz clic si deseas agrandar)

Agrega y quita rutas

Cómo agregar 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 de red de VPC para conectar dos redes de VPC, las rutas estáticas personalizadas en una red no pueden tener destinos que coincidan o que sean más específicos que las rutas de subred en ambas redes. Google Cloud rechaza las rutas estáticas personalizadas que entrarían en conflicto con las rutas de subred 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

  1. Ve a la página Rutas en Google Cloud Console.
    Ir a la página Rutas
  2. Haz clic en Crear ruta.
  3. Especifica un Nombre y una Descripción para la ruta.
  4. Selecciona una Red existente en la que se aplicará la ruta.
  5. Especifica un Rango de IP de destino para definir el destino de la ruta.
  6. 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.
  7. 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.
  8. 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 la ruta estática 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 enrutamiento basado en política o debe ser una VPN basada en ruta.
    • Especificar una regla de reenvío del 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 la ruta estática en la descripción general de rutas.

  9. 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 siguiente salto. Para obtener más información sobre los diferentes tipos de siguientes saltos, consulta Siguientes saltos de la ruta estática en la descripción general de rutas.
    • --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 balanceo de cargas de TCP interno para distribuir el tráfico hacia el balanceador de cargas, especificado por la región y el nombre 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 la ruta estática 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, excepto las que tengan una especificación de siguiente salto de --next-hop-ilb.

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 o nextHopVpnTunnel. Para obtener más información sobre los diferentes tipos de siguientes saltos, consulta Siguientes saltos de la ruta estática en la descripción general de rutas.

Para obtener más información, consulta el método routes.insert.

Borra rutas

Puedes borrar una ruta predeterminada generada por el sistema o cualquier ruta estática. En el caso de otros tipos de rutas, ten en cuenta lo siguiente:

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

Console

  1. Ve a la página Rutas en Google Cloud Console.
    Ir a la página Rutas
  2. Selecciona la casilla de verificación junto a la regla que deseas borrar.
  3. Haz clic en Borrar.
  4. 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.

Console

  1. Ve a la página Instancias de VM
    Ir a la página Instancias de VM
  2. Haz clic en Crear instancia.
  3. Haz clic en Administración, discos, redes, llaves SSH.
  4. Haz clic en Herramientas de redes.
  5. Haz clic en el botón de edición para seleccionar una interfaz de red.
  6. Para más interfaces de red, selecciona Activado en el menú desplegable Reenvío de IP.
  7. Especifica el resto de los parámetros de la instancia.
  8. Haz clic en Crear.

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.

Próximos pasos