虚拟机实现跨VPC网络-多网络接口

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

2.gcloud 创建privatesubnet-us 子网

gcloud compute networks subnets create privatesubnet-us --network=privatenet --region=us-central1 --range=172.16.0.0/24

3.gcloud 创建privatesubnet-eu子网

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网络的连通性、
  •                             创建具有多个网络接口的虚拟机实例。

Leave a Reply