Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Configura las VMs para casos de uso de Herramientas de redes

En esta página, se describe cómo configurar una VM como un proxy de red.

Configura una VM como un proxy de red

Puedes diseñar una red de VPC para otorgar acceso externo solo a una instancia y, que en todas las demás instancias de la red de VPC, se utilice esa instancia como un servidor proxy para el mundo exterior. Esto resulta útil si deseas controlar el acceso dentro o fuera de la red de VPC, o reducir el costo que implica pagar varias direcciones IP externas.

En este ejemplo particular, se analiza cómo configurar un proxy de red en las instancias de VM que utilizan una imagen de Debian. Utiliza una instancia de puerta de enlace como un servidor proxy de Squid, pero esta es solo una forma de configurar un servidor proxy.

A fin de configurar un servidor proxy de Squid:

  1. Configura una instancia con una dirección IP externa (estática o efímera). Para este ejemplo, asígnale el nombre gateway-instance a la instancia.
    gcloud compute instances create gateway-instance 
    --project=project_id
    --zone=zone
    --network-interface=network-tier=PREMIUM,subnet=default
    --scopes=https://www.googleapis.com/auth/cloud-platform
  2. Especifica gcloud compute instances create ... --no-address para configurar una o más instancias sin direcciones IP externas. Para este ejemplo, asigna el nombre hidden-instance a la instancia.
    gcloud compute instances create hidden-instance 
    --project=project_id
    --zone=zone
    --network-interface=network-tier=PREMIUM,subnet=default,no-address
    --scopes=https://www.googleapis.com/auth/cloud-platform
  3. Aprende cómo conectarte de una instancia a otra, porque no podrás conectarte directamente a las instancias de solo uso interno.
  4. Agrega un firewall para permitir el tráfico de TCP en el puerto 3128:

    gcloud compute firewall-rules create [FIREWALL_RULE] --network [NETWORK] --allow tcp:3128
    
  5. Instala Squid en gateway-instance y configúralo para permitir el acceso desde cualquier máquina en la red de VPC (direcciones IP de subred válidas). De este modo, se supone que las instancias gateway-instance y hidden-instance están conectadas a la misma red de VPC, lo que permite que se conecten entre sí.

    user@gateway-instance:~$ sudo apt-get install squid
    

    Habilita cualquier máquina de la red local para utilizar el servidor Squid. Mediante los siguientes comandos sed, se quitan los comentarios de las entradas acl localnet src en los archivos de configuración de Squid y se las habilita para las redes y las máquinas locales.

    user@gateway-instance:~$ sudo sed -i 's:#\(http_access allow localnet\):\1:' /etc/squid/squid.conf
    
    user@gateway-instance:~$ sudo sed -i 's:#\(http_access deny to_localhost\):\1:' /etc/squid/squid.conf
    
    user@gateway-instance:~$ sudo sed -i 's:#\(acl localnet src 10.0.0.0/8.*\):\1:' /etc/squid/squid.conf
    
    user@gateway-instance:~$ sudo sed -i 's:#\(acl localnet src 172.16.0.0/12.*\):\1:' /etc/squid/squid.conf
    
    user@gateway-instance:~$ sudo sed -i 's:#\(acl localnet src 192.168.0.0/16.*\):\1:' /etc/squid/squid.conf
    
    user@gateway-instance:~$ sudo sed -i 's:#\(acl localnet src fc00\:\:/7.*\):\1:' /etc/squid/squid.conf
    
    user@gateway-instance:~$ sudo sed -i 's:#\(acl localnet src fe80\:\:/10.*\):\1:' /etc/squid/squid.conf
    
    # Prevent proxy access to metadata server
    user@gateway-instance:~$ sudo tee -a /etc/squid/squid.conf <<'EOF'
    acl to_metadata dst 169.254.169.254
    http_access deny to_metadata
    EOF
    
    # Start Squid
    user@gateway:~$ sudo service squid start
    
  6. Configura hidden-instance para usar gateway-instance como su proxy. Conéctate a hidden-instance mediante SSH y define las direcciones URL del proxy de modo que apunten a gateway-instance en el puerto 3128 (la configuración predeterminada de Squid) como se muestra a continuación:

    user@gateway-instance:~$ ssh hidden-instance
    
    user@hidden-instance:~$ sudo -s
    
    root@hidden-instance:~# echo "export http_proxy=\"http://gateway-instance.$(dnsdomainname):3128\"" >> /etc/profile.d/proxy.sh
    
    root@hidden-instance:~# echo "export https_proxy=\"http://gateway-instance.$(dnsdomainname):3128\"" >> /etc/profile.d/proxy.sh
    
    root@hidden-instance:~# echo "export ftp_proxy=\"http://gateway-instance.$(dnsdomainname):3128\"" >> /etc/profile.d/proxy.sh
    
    root@hidden-instance:~# echo "export no_proxy=169.254.169.254,metadata,metadata.google.internal" >> /etc/profile.d/proxy.sh
    

    Actualiza el archivo sudoers para que se pase por estas variables del entorno.

    root@hidden-instance:~# cp /etc/sudoers /tmp/sudoers.new
    
    root@hidden-instance:~# chmod 640 /tmp/sudoers.new
    
    root@hidden-instance:~# echo "Defaults env_keep += \"ftp_proxy http_proxy https_proxy no_proxy"\" >>/tmp/sudoers.new
    
    root@hidden-instance:~# chmod 440 /tmp/sudoers.new
    
    root@hidden-instance:~# visudo -c -f /tmp/sudoers.new && cp /tmp/sudoers.new /etc/sudoers
    
  7. Sal de sudo, carga las variables y ejecuta apt-get en hidden-instance. Ahora debería funcionar con la puerta de enlace como proxy. Si la puerta de enlace no se usara como un proxy, apt-get no funcionará porque hidden-instance no tiene ninguna conexión directa a Internet.

    root@hidden-instance:~# exit
    
    user@hidden-instance:~$ source ~/.profile
    
    user@hidden-instance:~$ sudo apt-get update
    

Configura una VM como una puerta de enlace de VPN

Este contenido dejó de estar disponible y se quitó. Para obtener una solución de VPN administrada, consulta la documentación de Cloud VPN.

Configura una VM como una puerta de enlace NAT

Este contenido dejó de estar disponible y se quitó. Para ver una solución de NAT administrada, consulta la documentación de Cloud NAT.

Compila puertas de enlace NAT con alta disponibilidad y ancho de banda alto

Este contenido dejó de estar disponible y se quitó. Para ver una solución de NAT administrada, consulta la documentación de Cloud NAT.

¿Qué sigue?