Conceptos de VPC avanzada

Esta página contiene detalles adicionales sobre las redes de nube privada virtual (VPC). Revisa la Descripción general de las redes de VPC, si todavía no lo hiciste

Detalles de las Herramientas de redes de VPC avanzadas

En esta sección, se proporcionan algunos detalles de las Herramientas de redes de VPC de bajo nivel. No es necesario que leas esto para el uso típico, pero proporciona más información valiosa sobre cómo funcionan las Herramientas de redes de VPC. En el siguiente diagrama, se describen estos detalles de bajo nivel, con más información en las secciones correspondientes.

Un diagrama más detallado de la red de VPC

Quién controla qué

De forma interna, distintas piezas del sistema manejan diferentes características de las Herramientas de redes de VPC. Algunas de ellas son características de las Herramientas de redes estándares que están bien documentadas, y otras son específicas de las redes de VPC. Algunas características se pueden configurar y otras no. Las redes de VPC utilizan el módulo de red VIRTIO de Linux con el fin de modelar la tarjeta de Ethernet y la funcionalidad del router, pero los niveles más altos de la pila de Herramientas de redes, como las búsquedas ARP, se controlan con el uso de software de Herramientas de redes estándar.

Búsqueda ARP
El kernel de la instancia emite solicitudes ARP y la red de VPC emite respuestas ARP. El kernel de la instancia controla la asignación entre las direcciones MAC y las direcciones IP.
Tabla de consulta de MAC, tabla de consulta de IP, tabla de conexión activa
Estas tablas están alojadas en la red de VPC subyacente y no pueden inspeccionarse ni configurarse.
Servidor DNS

El servidor de metadatos de cada instancia actúa como un servidor DNS. Almacena las entradas de DNS para todas las direcciones IP de la red de VPC en la red de VPC local y llama al servidor DNS público de Google para obtener las entradas fuera de la red de VPC. No puedes configurar este servidor DNS. El cliente DHCP en cada instancia está configurado para administrar el archivo /etc/resolv.conf de la instancia.

Puedes agregar tu propio dominio de búsqueda o nombre del servidor al archivo /etc/resolv.conf de la instancia; para ello, modifica la política de DHCP. Muchas distribuciones de Linux permiten que estas modificaciones persistan a través de /etc/dhcp/dhclient.conf. Consulta la documentación DNS interno para obtener más información.

Control de paquetes entre la red de VPC y el exterior

El código de red que examina el paquete según las reglas de firewall, la tabla de consulta de IP externa y la tabla de conexiones activas controla los paquetes que entran o salen de la red de VPC. La red de VPC también realiza una NAT en los paquetes que entran y salen de la red de VPC.

Paquetes que recibe una instancia

El kernel de la instancia recibe y convierte en transmisión estos paquetes de manera estándar.

Paquetes que envía una instancia

El kernel de la instancia envía estos paquetes de forma estándar. La funcionalidad de la interfaz y la red se moldea con el uso del módulo de red VIRTIO.

Explicaciones detalladas sobre las conexiones

A continuación, se brindan más detalles sobre lo que sucede cuando una instancia realiza una llamada a la red de VPC.

Una instancia realiza una llamada:

  1. Si la dirección de destino es un nombre de instancia o una URL, como www.google.com, la instancia llama al servicio de DNS en su servidor de metadatos y recupera la dirección IP correspondiente. Puedes configurar la instancia para consultar otro servicio de DNS, aunque no podrás decidir los nombres de instancia.
  2. La dirección IP de destino se examina según el rango de direcciones IP de la subred, que cada instancia conoce.

    1. Si la dirección IP está fuera de la red de VPC:

      1. La instancia envía el paquete a la dirección MAC de la puerta de enlace de la subred con el destino establecido en el destino final del paquete. Es posible que la instancia deba realizar una solicitud ARP para decidir la dirección MAC de la puerta de enlace.

      2. La red de VPC reescribe el encabezado IP para indicar la dirección IP externa de la instancia como la fuente. Si la instancia no tiene dirección IP externa, no se permite la llamada, y la red de VPC descarta el paquete sin informar al remitente.

      3. La red de VPC registra el paquete saliente y agrega el origen y el destino a la tabla de conexiones activas.

      4. La red de VPC envía el paquete a su destino.

      5. El destino obtiene el paquete y responde si así lo desea.

      6. La red de VPC recibe la respuesta, consulta la tabla de conexiones activas, comprueba que se trata de una conexión activa y la permite. La red de VPC revisa su tabla de consulta de IP externa/red y reemplaza la dirección IP externa de la instancia por la dirección de red correspondiente, y envía el paquete a la instancia de origen.

      7. La instancia recibe el paquete.

    2. Si la dirección IP de destino se encuentra dentro de la red de VPC:

      1. La instancia se configura con una IP que tiene la máscara 255.255.255.255, por lo que la instancia envía el paquete a la dirección MAC de la puerta de enlace de la subred. Es posible que la instancia primero deba realizar una solicitud ARP para decidir la dirección MAC de la puerta de enlace.

      2. La red de VPC, con el uso del ARP de proxy, responde con la dirección MAC de la instancia de destino.

      3. GCP reenvía el paquete a la IP de destino dentro de la red de VPC.

      4. La instancia de destino recibe el paquete. La instancia de destino comprueba el firewall de entrada para determinar si se permite el paquete. De no ser así, el paquete se descarta de manera silenciosa. De lo contrario, la instancia procesa el paquete.

Una instancia externa o una computadora llama a una instancia:

  1. El emisor externo envía un paquete a la dirección IP externa de una instancia, que es propiedad de la red de VPC.

  2. La red de VPC compara el paquete con la tabla de conexiones activas para ver si se trata de una conexión existente:

    1. Si no se trata de una conexión existente, la red de VPC busca una regla de firewall para permitir la conexión.
    2. Si no hay una regla de firewall, la red de VPC descarta el paquete sin informar al remitente.
  3. Si hay una conexión existente o una regla de firewall válida, la red de VPC examina su tabla de consulta y reemplaza la IP externa por la IP interna correspondiente en el paquete, registra el paquete entrante en la tabla de conexiones activas y envía el paquete a la instancia de destino.

  4. La instancia recibe el paquete y responde como se describe en Si la dirección IP está fuera del rango de IP de la red de VPC cuando se envía un paquete fuera del rango de la red.

  5. La red de VPC recibe la respuesta, encuentra la solicitud entrante correspondiente en la tabla de conexiones activas y permite que pase el paquete. Antes de realizar el envío, modifica la dirección IP de origen; para ello, reemplaza la IP interna de la instancia por la IP externa correspondiente de su tabla de consulta.

Cómo medir la capacidad de procesamiento de la red de VPC

El tráfico de ida (salida) de una máquina virtual está sujeto al límite de la capacidad de procesamiento de salida por VM. El límite es el valor más pequeño de 16 Gbits/segundo (Gbps) o 2 Gbps por el número de CPU virtuales en la VM. El límite no puede superarse y no indica la capacidad de procesamiento real del tráfico de salida. No se garantiza que el tráfico alcance la capacidad de procesamiento máxima, lo que depende de muchos factores además del límite. Obtén más información sobre los límites de la capacidad de procesamiento de salida.

Si deseas conocer el rendimiento de una instancia en relación con estos límites, utiliza PerfKitBenchMarker para medir el rendimiento de la capacidad de procesamiento de salida de las instancias.

Por ejemplo, ejecuta los siguientes comandos mientras estás en la computadora local. El comando creará una instancia y medirá su rendimiento:

  • [MACHINE_TYPE] es el tipo de máquina que deseas probar (por ejemplo, n1-standard-32).
  • [ZONE] es la zona en la cual se creará la instancia.
  • [NUMBER_OF_VCPUS] es el número de CPU virtuales de la instancia (por ejemplo, 32 para el tipo de máquina n1-standard-32).

Para medir el rendimiento de transmisión única:

./pkb.py --cloud=GCP --machine_type=[MACHINE_TYPE] --benchmarks=iperf --ip_addresses=INTERNAL --zones=[ZONE]

Para medir el rendimiento de varias transmisiones:

./pkb.py --cloud=GCP --machine_type=[MACHINE_TYPE] --benchmarks=iperf --ip_addresses=INTERNAL --zones=[ZONE] --iperf_sending_thread_count=[NUMBER_OF_VCPUS]

¿Qué sigue?

¿Te sirvió esta página? Envíanos tu opinión: