1、背景
目标:创建多个虚拟机和VPC网络,不同VPC网络的虚拟机跨VPC网络互相访问,并测试多台虚拟机之间网络的连通性
思路:如下图:
2、配置
2.1 创建具有防火墙的自定义VPC网络
创建自定义VPC网络,创建防火墙规则允许ICMP、SSH、RDP进站流量
2.2.1 创建management 网络
点击Create VPC Network创建VPC网络、设置名字为management
,Subnet creation mode配置 ,点击Custom ,子网信息配置如下:
Property | Value (type value or select option as specified) |
---|---|
Name | managementsubnet-us |
Region | us-central1 |
IP address range | 10.130.0.0/20 |
2.2.2 创建privatenet 网络
1.gcloud 创建 privatenet 网络
gcloud compute networks create privatenet --subnet-mode=custom
gcloud compute networks subnets create privatesubnet-us --network=privatenet --region=us-central1 --range=172.16.0.0/24
gcloud compute networks subnets create privatesubnet-eu --network=privatenet --region=europe-west4 --range=172.20.0.0/20
2.2.3 创建mynetwork网络
点击Create VPC Network创建VPC网络、设置名字为mynetwork
,Subnet creation mode配置 ,点击Auto mode ,子网信息配置和default VPC子网一样
2.2.4 为management 网络创建防火墙规则
设置如下防火墙规则,其他值均默认:
Property | Value (type value or select option as specified) |
---|---|
Name | managementnet-allow-icmp-ssh-rdp |
Network | management |
Targets | All instances in the network |
Source filter | IPv4 Ranges |
Source IPv4 ranges | 0.0.0.0/0 |
Protocols and ports | Specified protocols and ports, and then check tcp, type: 22, 3389; and check Other protocols, type: icmp. |
2.2.5 为privatenet网络创建防火墙规则
1. 创建 privatenet-allow-icmp-ssh-rdp 防火墙规则
gcloud compute firewall-rules create privatenet-allow-icmp-ssh-rdp --direction=INGRESS --priority=1000 --network=privatenet --action=ALLOW --rules=icmp,tcp:22,tcp:3389 --source-ranges=0.0.0.0/0
2. 输出显示:
2.2.6 列出VPC network 的所以防火墙规则
gcloud compute firewall-rules list --sort-by=NETWORK
2.2 创建虚拟机
2.2.1 创建management-us-vm虚拟机,虚拟机的配置如下,其他设置默认选项
1. 虚拟机的配置
Property | Value (type value or select option as specified) |
---|---|
Name | managementnet-us-vm |
Region | us-central1 |
Zone | us-central1-f |
Series | N1 |
Machine type | 1 vCPU (n1-standard) |
2. 网络接口 Network interfaces设置,
Property | Value (type value or select option as specified) |
---|---|
Network | managementnet |
Subnetwork | managementsubnet-us |
2.2.2 创建privatenet-us-vm虚拟机
gcloud compute instances create privatenet-us-vm --zone=us-central1-f --machine-type=n1-standard-1 --subnet=privatesubnet-us
2.2.3 创建mynetwork-us-vm虚拟机
gcloud compute instances create mynetwork-us-vm --zone=us-central1-f --machine-type=n1-standard-1 --subnet= us-central1
2.3.4 创建mynetwork-eu-vm虚拟机
gcloud compute instances createmynetwork-eu-vm --zone=europe-west4-c --machine-type=n1-standard-1 --subnet=europe-west4
2.3.5 列出创建的所有虚拟机
gcloud compute instances list --sort-by=ZONE
2.3.6 显示所有虚拟机
2.3 测试虚拟机之间的连通性
2.3.1 Ping 虚拟机外部IP地址,
1. 在 mynet-us-vm,使用SSH进入,在终端输入
ping -c 3 <Enter xxx-xxx-vm's external IP here>
2. 另外三台虚拟机external IP 网络连通性如下:
2.3.2 Ping 虚拟机内部IP地址
1. 在 mynet-us-vm,使用SSH进入,在终端输入
ping -c 3 <Enter xxx-xxx-vm's internal IP here>
2. 另外三台虚拟机internal IP 网络连通性如下:因为mynet-en-vm与mynet-us-vm在同一个VPC网络下,是可以Ping 成功的
2.4 创建多网络接口的虚拟机
1.设置多网络接口虚拟机,点击 Create instance,命名 vm-appliance,其中虚拟机配置如下,选4核cpu,是因为一个cpu对应一个网络接口,多网络接口需要多核cpu,其他选项默认
Property | Value (type value or select option as specified) |
---|---|
Name | vm-appliance |
Region | us-central1 |
Zone | us-central1-f |
Series | N1 |
Machine type | 4 vCPUs (n1-standard-4) |
2. vm-appliance多网络接口配置方式,在 Network interfaces下,配置nic0、nic1、nic2
Property | Value (type value or select option as specified) |
---|---|
Network | privatenet |
Subnetwork | privatesubnet-us |
点击Add network interface
Property | Value (type value or select option as specified) |
---|---|
Network | managementnet |
Subnetwork | managementsubnet-us |
点击Add network interface
Property | Value (type value or select option as specified) |
---|---|
Network | mynetwork |
Subnetwork | mynetwork |
三、测试
3.1 查看虚拟机多网络接口的配置信息
SSH 进入vm-appliance,终端输入:
sudo ifconfig
打印结果如下:
3.2 测试多网络接口的连通性
SSH 进入vm-appliance,终端输入:
ping -c 3 <Enter xxx-xxx-vm's internal IP here>
可以使用privatenet-us-vm的名字去Ping,因为VPC网络有一个内部DNS服务,允许通过DNS名称而不是内部IP地址来寻址实例。当使用实例主机名进行内部DNS查询时,它会解析到实例的主接口(nic0)。
因此,在这种情况下,这只适用于privatenet-us-vm
ping -c 3 privatenet-us-vm
vm-appliance的网络连通性如下
vm-appliance的路由结果如下:
ip route
四、总结
涉及到Google Cloud的知识点:
- 自定义模式创建具有防火墙规则的VPC网络、
- 使用计算引擎创建虚拟机实例、
- 通过计算引擎创建虚拟机实例查看虚拟机实例跨VPC网络的连通性、
- 创建具有多个网络接口的虚拟机实例。