Brains4Cloud
ESEN
Practicar

Tema 7 de 10

D3 · Garantizar el funcionamiento de una solución en la nube

Operar la red

El apartado 3.3 del temario trata de los cambios del día a día en la red: añadir o ampliar subredes, reservar direcciones IP, configurar rutas, Cloud DNS y Cloud NAT. Las redes VPC, las reglas de firewall y los balanceadores se explican en el dominio D2.

# Añadir una subred a una red existente
gcloud compute networks subnets create subnet-eu --network=prod-vpc \
  --range=10.20.0.0/24 --region=europe-west1

# Añadir o quitar un rango secundario
gcloud compute networks subnets update subnet-eu --region=europe-west1 \
  --add-secondary-ranges=pods=10.30.0.0/20
gcloud compute networks subnets update subnet-eu --region=europe-west1 \
  --remove-secondary-ranges=pods

# Convertir una red de modo automático a personalizado
gcloud compute networks update prod-vpc --switch-to-custom-subnet-mode
  • Un rango secundario se puede quitar solo si ningún recurso usa sus IP.
  • Para borrar una subred hay que borrar antes todo lo que la usa: VMs, IP internas reservadas, reglas de reenvío internas y gateways de Cloud NAT.
  • En una red de modo automático no se pueden borrar las subredes creadas automáticamente. Hay que convertirla a modo personalizado; la conversión mantiene las subredes con sus nombres y rangos y no tiene vuelta atrás. Después, los comandos de gcloud deben indicar la subred de forma explícita con --subnet.

Ampliar el rango de una subred

El rango IPv4 principal de una subred existente se amplía reduciendo la longitud del prefijo (por ejemplo, de /24 a /20). Tarda unos minutos y no interrumpe el tráfico de la subred.

gcloud compute networks subnets expand-ip-range subnet-eu \
  --region=europe-west1 --prefix-length=20

No se puede deshacer

Un rango principal no se puede reducir después. Google recomienda ampliar con prudencia (siempre se puede volver a ampliar) y tener en cuenta las redes conectadas por peering o VPN para no solapar rangos.

  • En las subredes creadas automáticamente, el prefijo más amplio permitido es /16; uno mayor chocaría con las otras subredes automáticas.
  • Las subredes de solo proxy de los balanceadores no se pueden ampliar.
  • Después hay que revisar lo que dependa del rango antiguo: añadir reglas de firewall que cubran el rango ampliado y, en GKE, añadirlo a las redes autorizadas del plano de control.

Por defecto, una VM sin IP externa solo puede enviar paquetes a destinos internos. Al activar Private Google Access en la subred, esas VMs pueden llegar a las IP externas de las APIs y servicios de Google (y de App Engine). Solo se aplica a interfaces sin IP externa.

gcloud compute networks subnets update subnet-eu --region=europe-west1 \
  --enable-private-ip-google-access

IP externas estáticas

Las IP externas son efímeras o estáticas. En general, una IP efímera se libera al parar o borrar el recurso. Una IP estática es un recurso reservado que sigue siendo tuyo hasta que la liberas.

TipoPara qué recursos
Regional IPv4 (/32)VMs y balanceadores regionales
Global IPv4 (/32) o IPv6 (/64)Balanceadores globales
Regional IPv6 (/96)VMs y balanceadores regionales compatibles; sale del rango IPv6 externo de la subred
# Reservar una IP regional nueva
gcloud compute addresses create web-ip --region=europe-west1

# Reservar una IP global para un balanceador global
gcloud compute addresses create lb-ip --global --ip-version=IPV4

# Promover una IP efímera en uso a estática
gcloud compute addresses create web-ip --addresses=34.0.0.10 --region=europe-west1

# Liberar una IP
gcloud compute addresses delete web-ip --region=europe-west1
  • Rol necesario: roles/compute.networkAdmin.
  • Solo un recurso a la vez puede usar una IP estática, y su nombre no se puede cambiar.
  • Una IP estática reservada y sin asignar se cobra a una tarifa mayor que las que están en uso.
  • Desde la consola solo se libera si no está en uso; con gcloud se puede liberar aunque esté asignada, y sigue en el recurso hasta que este se borra. Una vez liberada, puede que no se pueda recuperar.

IP internas estáticas

Reservar una IP interna la saca del grupo de asignación dinámica de la subred, para usar siempre la misma IP aunque borres y vuelvas a crear el recurso. Son regionales.

gcloud compute addresses create db-ip --region=europe-west1 \
  --subnet=subnet-eu --addresses=10.20.0.50
  • Si no indicas --addresses, se asigna una IP libre de la subred.
  • No se puede cambiar la IP interna de una VM existente, ni parada ni en ejecución. Sí se puede promover su IP efímera a estática.
  • Borrar el recurso no libera la IP estática interna: hay que liberarla a mano.

Rutas

Una ruta tiene un único prefijo de destino y un único siguiente salto. La tabla de rutas se define a nivel de red VPC y no hay ningún router físico: es un mecanismo virtual distribuido.

TipoDetalle
Rutas de subredSe crean y borran solas con cada rango de subred (también las de redes con peering). No se puede crear una ruta estática igual o contenida en una ruta de subred
Ruta predeterminada del sistema0.0.0.0/0 hacia default-internet-gateway, creada con la red. Da salida a internet a VMs con IP externa y a Cloud NAT público. Se puede borrar o reemplazar
Rutas estáticasPersonalizadas. Siguiente salto: gateway, instancia, IP, balanceador de red de paso interno o túnel de VPN clásica. Pueden aplicarse solo a VMs con ciertos tags de red
Rutas dinámicasAprendidas por BGP desde Cloud Router; se aplican según el modo de enrutamiento dinámico de la red
Rutas basadas en políticasSe evalúan antes que las demás; filtran por origen, destino o protocolo
gcloud compute routes create to-onprem --network=prod-vpc \
  --destination-range=192.168.0.0/16 \
  --next-hop-instance=appliance-vm --next-hop-instance-zone=europe-west1-b \
  --priority=800 --tags=needs-appliance
  • Orden: rutas especiales, rutas basadas en políticas, rutas de subred y, entre las estáticas y dinámicas, primero gana el destino más específico (10.240.1.0/24 antes que 10.240.0.0/16) y después la prioridad.
  • Prioridad de 0 (máxima) a 65 535 (mínima); por defecto 1000. Varias rutas con mismo destino y prioridad reparten el tráfico (ECMP).
  • La ruta predeterminada solo se usa si no hay una más específica. Quitarla no aísla del todo la red, porque algunos caminos especiales no dependen de ella.
  • Las rutas estáticas con tags nunca se intercambian por VPC Network Peering.

Servicio DNS global gestionado que publica tus zonas y registros sin mantener servidores DNS propios. Admite permisos IAM a nivel de proyecto y de zona.

ZonaPara qué
PúblicaVisible en internet. Para usarla, el registrador del dominio debe apuntar a los servidores de nombres de Cloud DNS
PrivadaVisible solo desde las redes VPC que autorices. Con VPC compartida se crea en el proyecto host (o en un proyecto de servicio con cross-project binding)
De reenvíoZona privada que envía las consultas a servidores de destino, por ejemplo DNS on-premises por VPN o Interconnect (reenvío saliente)
De peeringZona privada que resuelve los nombres con el orden de resolución de otra red VPC
gcloud dns managed-zones create internal-zone --description="Internal" \
  --dns-name=corp.internal. --visibility=private --networks=prod-vpc

gcloud dns record-sets create db.corp.internal. --zone=internal-zone \
  --type=A --ttl=300 --rrdatas=10.20.0.50
  • Para que los equipos on-premises resuelvan zonas privadas se crea una política de servidor entrante. El reenvío no se admite en zonas públicas.
  • Combinar una zona pública y una privada con el mismo nombre permite split horizon: respuestas distintas según la consulta venga de la VPC o de internet.

Traducción de direcciones para el tráfico saliente de VMs, clústeres de GKE, Cloud Run, Cloud Run functions, App Engine estándar y NEG de internet regionales. Solo permite las respuestas a conexiones ya establecidas: no admite conexiones entrantes no solicitadas. Es un servicio distribuido definido por software, sin VMs proxy.

Public NAT

Recursos sin IP externa salen a internet con un conjunto compartido de IP externas. Depende de una ruta estática con siguiente salto default-internet-gateway.

Private NAT

Traducción entre redes privadas: otras VPC de un hub de NCC, redes on-premises u otras nubes, incluso con subredes solapadas.

gcloud compute routers create nat-router --network=prod-vpc --region=europe-west1

gcloud compute routers nats create nat-config --router=nat-router \
  --region=europe-west1 --nat-all-subnet-ip-ranges --auto-allocate-nat-external-ips
  • Cada gateway pertenece a una red VPC, una región y un Cloud Router. Cloud Router solo agrupa la configuración: el tráfico no pasa por él y no usa BGP para esto.
  • Con --nat-custom-subnet-ip-ranges se limita a ciertas subredes. Asignar IP manualmente permite dar a un tercero una lista fija de IP de origen.
  • El tráfico hacia las APIs de Google usa Private Google Access aunque la VM use Public NAT.
  • El registro de Cloud NAT está desactivado por defecto.

Connectivity Tests

Herramienta de diagnóstico que comprueba la conectividad entre dos extremos (VM, clúster de GKE, regla de reenvío, IP de internet…). Analiza la configuración y simula el camino que seguiría un paquete por la VPC, túneles VPN o adjuntos de VLAN; en algunos casos también envía paquetes reales para medir latencia y pérdida. Ayuda a encontrar configuraciones incoherentes u obsoletas, como una regla de firewall o una ruta que bloquea el tráfico. Usa la Network Management API.

Escenarios de examen

SituaciónRespuestaPor qué
Una subred /24 se ha quedado sin IP y no se puede recreargcloud compute networks subnets expand-ip-range --prefix-lengthAmplía sin cortar el tráfico; no se puede deshacer.
Una VM con IP externa efímera debe conservarla aunque se borre la VMPromover la IP efímera a estáticagcloud compute addresses create --addresses=IP.
VMs sin IP externa necesitan descargar parches de internetCloud NAT (Public NAT) en la región de la subredSalida sin IP externa; no admite conexiones entrantes no solicitadas.
VMs sin IP externa deben llamar a la API de Cloud StorageActivar Private Google Access en la subredAcceso a APIs de Google sin IP externa.
Resolver nombres internos solo desde la VPCZona privada de Cloud DNS autorizada para esa VPCSolo visible desde las redes que indiques.
Enviar el tráfico a 192.168.0.0/16 a través de una VM applianceRuta estática con --next-hop-instanceGana la ruta con el destino más específico.
Comprobar por qué una VM no llega a otra sin enviar tráfico realConnectivity TestsAnaliza la configuración y simula el camino del paquete.
Una IP externa reservada está sin usarLiberarla con gcloud compute addresses deleteUna IP estática sin asignar se cobra a una tarifa mayor.

Trampas frecuentes del examen

❓ ¿Se puede reducir el rango de una subred después de ampliarlo?

No. La ampliación no se puede deshacer; hay que ampliar con prudencia.

❓ ¿Ampliar una subred corta el tráfico de sus VMs?

No. Tarda unos minutos, pero el tráfico de la subred no se interrumpe.

❓ ¿Cloud NAT permite que alguien de internet se conecte a una VM sin IP externa?

No. Solo traduce el tráfico saliente y sus respuestas; las conexiones entrantes no solicitadas no se admiten.

❓ ¿Se puede convertir una red de modo personalizado a modo automático?

No. Solo de automático a personalizado, y es irreversible.

❓ ¿Borrar una VM libera su IP interna estática?

No. Hay que liberarla a mano; mientras tanto sigue reservada.

❓ ¿Cloud NAT necesita un Cloud Router?

Sí, cada gateway se asocia a un Cloud Router, aunque el tráfico no pasa por él.

¿Entendiste este tema?

Pon a prueba lo que acabas de aprender

La subred app-subnet (10.10.0.0/24) de una red de modo personalizado se ha quedado sin IP libres. Hay que añadir más VMs en la misma subred sin interrumpir las que ya están en marcha. ¿Qué haces?

¿Listo para poner a prueba "Operar la red"?

Preguntas originales, cada una con su explicación.

Empezar un simulacro