GCP VPC の基本的な使い方
[履歴] [最終更新] (2021/11/20 22:24:28)

概要

GCP VPC について基本的な使い方を記載します。

custom サブネットモードによる VPC 作成

VPC 作成

gcloud compute networks create mynetwork --subnet-mode=custom

サブネット作成

gcloud compute networks subnets create mysubnet-us --network=mynetwork --region=us-central1 --range=172.16.0.0/24
gcloud compute networks subnets create mysubnet-eu --network=mynetwork --region=europe-west4 --range=172.17.0.0/24

参照

gcloud compute networks list
gcloud compute networks subnets list --sort-by=NETWORK

Firewall ルールの作成

ICMP、SSH、RDP を許可する Firewall ルールの作成例。

gcloud compute firewall-rules create mynetwork-allow-icmp-ssh-rdp \
--direction=INGRESS \
--priority=1000 \
--network=mynetwork \
--action=ALLOW \
--rules=icmp,tcp:22,tcp:3389 \
--source-ranges=0.0.0.0/0

参照

gcloud compute firewall-rules list --sort-by=NETWORK

複数の NIC を持つ VM の作成例

例えば f1-micro2つの NIC を持つことができます。マシンタイプ毎に NIC の上限は異なります。また、作成時にしか NIC の個数を指定できません。

gcloud compute instances create mynetwork-us-vm --machine-type=f1-micro \
--network-interface '' --zone=us-central1-f \
--network-interface subnet=mysubnet-us

確かに二つの IP を持つことが分かります。

Uploaded Image

ルートテーブル

username@mynetwork-us-vm:~$ ip r

default via 10.128.0.1 dev ens4
10.128.0.0/20 via 10.128.0.1 dev ens4
10.128.0.1 dev ens4 scope link
172.16.0.0/24 via 172.16.0.1 dev ens5
172.16.0.1 dev ens5 scope link

複数の IP を同じ NIC に持つ VM の作成例 (Alias IP)

GCP に限らない、一般的なネットワークの事項として、Alias IP が存在します。VM は所属する subnet の primary CIDR または secondary CIDR のいずれかの範囲から、Alias IP を VM に割り当てることができます。

Secondary CIDR が割り当てられている Subnet の例です。

Uploaded Image

Secondary CIDR から Alias IP を割り当てた VM の例です。

Uploaded Image

Linux Kernel が管理している local テーブルを参照すると、確かに Alias IP が確認できます。

myuser@instance-1:~$ ip r show table local
local 10.1.1.2 dev ens4 proto kernel scope host src 10.1.1.2 
broadcast 10.1.1.2 dev ens4 proto kernel scope link src 10.1.1.2 
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1 
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1 
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1 
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1 
local 192.168.100.101 dev ens4 proto 66 scope host 

myuser@instance-1:~$ ip r show table main
default via 10.1.1.1 dev ens4 
10.1.1.1 dev ens4 scope link

参考資料: Alias IP ranges overview

その他

関連ページ