Tạo một VPC riêng với dải IP LAN, ví dụ ở đây là 10.240.0.0/16
gcloud compute networks create gce-network \ --subnet-mode legacy \ --range 10.240.0.0/16
Tạo một firewall rule:
gcloud compute firewall-rules create gce-network-allow-ssh --allow tcp:22 --network gce-network
gcloud compute firewall-rules create gce-network-allow-internal --allow tcp:1-65535,udp:1-65535,icmp \ --source-ranges 10.240.0.0/16 --network gce-network
Tạo một máy ảo làm NAT-gateway để các con máy không có IP WAN sẽ route qua đây ra internet:
gcloud compute instances create nat-gateway --network gce-network --can-ip-forward \ --zone us-central1-a \ --image-family debian-8 \ --image-project debian-cloud \ --tags nat
Tạo một route để gửi tất cả traffice qua con nat-gateway:
gcloud compute routes create no-ip-internet-route --network gce-network \ --destination-range 0.0.0.0/0 \ --next-hop-instance nat-gateway \ --next-hop-instance-zone us-central1-a \ --tags no-ip --priority 800
Bây giờ, chỉ cần gán tag no-ip cho bất kì con máy nào là có thể sử dụng instance nat-gateway ở trên để ra internet
Priority = 800 sẽ làm cho đường route này được ưu tiên hơn do mặc định = 1000
SSH vào con nat-gateway và chạy:
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Nếu muốn các thay đổi này áp dụng cho lần khởi động sau thì:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf > /dev/null
sudo apt-get install iptables-persistent