[GCE] Create an instance without WAN IP, access internet via NAT-gateway

0
874

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

 

LEAVE A REPLY

Please enter your comment!
Please enter your name here