华为云.VPC关联概念与对等连接实践

云计算.华为云 VPC关联概念与对等连接实践



【介绍】:本文基于华为云VPC关联概念与对等连接实践。

目 录


  • [1. 概述](#1. 概述)
  • [2. 创建VPC示例](#2. 创建VPC示例)
    • [2.1 登录华为云VPC网络控制台](#2.1 登录华为云VPC网络控制台)
    • [2.2 建VPC示例](#2.2 建VPC示例)
      • [2.2.1 填写VPC基本信息](#2.2.1 填写VPC基本信息)
      • 1.区域
      • 2.名称
      • 3.IPv4网段
      • [2.2.2 填写子网设置](#2.2.2 填写子网设置)
        • [1. 子网创建信息卡](#1. 子网创建信息卡)
        • [2. 可用区](#2. 可用区)
        • [3. 子网IPv4网段](#3. 子网IPv4网段)
  • [3. 安全组](#3. 安全组)
  • [4. 网络ACL](#4. 网络ACL)
    • [4.1 什么是网络ACL](#4.1 什么是网络ACL)
    • [4.2 创建网络ACL](#4.2 创建网络ACL)
  • [5. 华为云VPC对等连接](#5. 华为云VPC对等连接)
    • [5.1 对等连接的概念和使用场景](#5.1 对等连接的概念和使用场景)
    • [5.2 创建对等连接](#5.2 创建对等连接)
  • [6. 验证通信](#6. 验证通信)
    • [6.1 验证方案](#6.1 验证方案)
    • [6.2 测试通信](#6.2 测试通信)
      • [6.2.1 创建安全组](#6.2.1 创建安全组)
      • [6.2.2 创建ECS服务器实例](#6.2.2 创建ECS服务器实例)
  • [7. 总结](#7. 总结)

[1. 概述](#1. 概述)

虚拟私有云(VPC )是华为云上的私有网络环境。它为用户提供了一个逻辑隔离的网络空间,使用户能够灵活地规划和管理自己的网络资源。VPC不仅确保了用户数据的安全性和私密性,还为云上资源的部署和互联提供了便利。

VPC 中,用户可以自定义IP 地址范围、配置路由表和网关等网络组件。这种高度的可定制性使得VPC 能够满足各种复杂的网络需求,从简单的单层Web应用到复杂的多层企业应用都可以在VPC中轻松部署。

VPC 的核心优势在于其安全性和灵活性。通过安全组和网络访问控制列表(ACL ),用户可以精细地控制进出VPC 的流量。同时,VPC还支持与用户本地数据中心建立安全连接,实现混合云架构。

在实际应用中,VPC常用于构建隔离的开发、测试和生产环境,或者用于部署需要严格网络隔离的应用系统。例如,可以将前端Web服务器部署在公共子网中,而将数据库服务器部署在私有子网中,通过精心设计的网络架构来提高系统的安全性。

随着云计算技术的不断发展,VPC 已成为构建云上网络基础设施的关键组件。它不仅简化了网络管理,还为企业提供了更高的网络性能和更强的安全保障。通过合理利用VPC,企业可以构建出既安全又高效的云端网络环境,为业务的快速发展和创新提供有力支持。

[2. 创建VPC示例](#2. 创建VPC示例)

[2.1 登录华为云VPC网络控制台](#2.1 登录华为云VPC网络控制台)

登录控制台,选择区域(如"北京四")。打开"虚拟私有云",如图所示。

登录控制台,选择区域(如"北京四")。打开"虚拟私有云",如图所示。

如果你还没有将虚拟私有云收藏到"我的资源中",则点击左上角的折叠菜单开关,然后在输入框中输入"VPC"。点亮"虚拟私有云 VPC"词条右侧的"★"将其添加到华为云控制台首页"我的资源"区,如图。

进入网络控制台的虚拟私有云页面后,内容区域可以看到显示当前所有的虚拟私有云列表,若有多个私有云,可以在私有云列表上方的输入框中输入相关参数进行搜索。点击任意一条私有云记录,可以进入对应的私有云页面进行编辑。右上角"创建虚拟私有云"圆角矩形按钮用于新建私有云,如图所示。

[2.2 建VPC示例](#2.2 建VPC示例)

一旦点击"创建虚拟私有云"按钮,将导航进入"创建虚拟私有云"页面,该页面中,我们需要填写"基本信息"和至少"子网设置1"(至少一个子网)后,才能点击"立即创建"从而实现VPC的创建。

[2.2.1 填写VPC基本信息](#2.2.1 填写VPC基本信息)

基本信息主要包含区域、名称、IPv4网段三个部分。可选填写高级设置中的标签和描述。

1.区域

区域是通过下拉弹出面板中选择的,华为云提供了多个可供选择的区域。我们尽可能选择距离服务用户尽的地区的区域。

需要指出的是,当我们有多个VPC 时,仅同区域的VPC 才能通过VPC 对等连接(Peer To Peer Connection )实现两个VPC 中的私有IP 通信。而如果两个VPC在不同区域,则不得不使用云连接等其它方式实现通信。

2.名称

名称是用来方便我们日后使用创建好的VPC以进行编辑等操作的。为了同一管理资源,便于区分,可以采用一定的方式进行命名。

例如,假设我们创建一个用于灰度环境的、位于北京4区域的、用于study相关的VPC,可以采用这样的名字:

study-vpc-grey-bj4

3.IPv4网段

我们知道,IANA专门保留了三类私网地址:

  • 10.0.0.0到10.255.255.255,即10.0.0.0/8网段;
  • 172.16.0.0到172.31.255.255,即172.16.0.0/12网段;
  • 192.168.0.0到192.168.255.255即192.168.0.0/16网段。

华为云VPC 支持的IPv4网段自然是这三类私网地址的子网段。具体说来,目前华为云VPC支持的网段范围对应地,如下表所示:

VPC网段 IP地址范围 最大IP地址数
10.0.0.0/8~24 10.0.0.0-10.255.255.255 2^24-2=16777214
172.16.0.0/12~24 172.16.0.0-172.31.255.255 2^20-2=1048574
192.168.0.0/16~24 192.168.0.0-192.168.255.255 2^16-2=65534

在选择VPC网段的时候需要考虑下面两点:

1.IP地址数量:要为业务预留足够的IP地址,防止业务扩展给网络带来冲击;

2.IP地址网段:当前VPC与其他VPC、云下数据中心连通时,要避免IP地址冲突。

需要的最小IP地址数量很容易计算,只不过考虑到日后可能需要新增资源,因此总是需要留一定的裕量。需要注意的是网段冲突,如果当前选择的网段和同区域其它VPC设置的网段相冲突,则会看到下面途中所示的提示:

提示中说,当前区域下其他VPC网段重叠,如需使用VPC互通服务,建议修改VPC网段

。比如假设日后有两个VPC (A和B),VPCAVPCB分别建立对等连接,如果B、C两个VPC的网段有重叠,A中就无法添加具有相同目的网段的路由。因此我们应该避免这样的情况出现,很简单,设置为不一样的网段即可。

[2.2.2 填写子网设置](#2.2.2 填写子网设置)

1. 子网创建信息卡

一个VPC内可以有多个子网,但是至少有一个子网,因此默认情况下用户需要完成"子网设置1"的填写。如果你想此时直接创建多个子网,则可以点击"创建子网"区域创建更多子网。如图所示:

那么什么是子网以及子网有什么特点呢,可以从以下几个方面来看。

  1. 是VPC下管理云资源(如ECS)的网络平面,所有的云资源都必须部署在子网内;

    • 提供IP地址管理、DNS等服务;

    • 子网内的ECS的IP地址都属于该子网。

  2. 默认同一个VPC下所有子网的ECS均可进行通信,而不同VPC的ECS不可通信;

  3. 同一个VPC内的相同子网二层互通、不同子网三层互通;

  4. 内部子网。在同内部子网内的云服务器,可以进行二层互通;无法与VPC 中的其它子网,包括VPC 子网和内部子网互通;云服务器内部的子网网卡无法绑定弹性IP 、且无法使用SNETVPN等;

  5. 项目及子网。在同项目级子网的云服务器,可以进行二层互通;

2. 可用区

可用区(AZAvailability Zone)是在同一区域下,电力、网络隔离的物理区域,不同可用区之间物理隔离,内网网络互通。

一个区域内有多个可用区,一个可用区发生故障后不会影响同一区域内的其它可用区。

  • 默认情况下,同一个VPC 中,不同子网内的所有实例网络互通。同一个VPC内的子网可以位于不同可用区,不影响通信。比如VPC-A 内有子网A01 (可用区1)和子网A02 (可用区2),子网A01 和子网A02的网络默认互通。
  • 子网内云资源的可用区和子网的可用区不用保持一致。比如位于可用区1的云服务器,可以使用可用区3的子网。假如可用区3发生故障,此时可用区1的云服务器可以继续使用可用区3的子网,不会影响您的业务。
3. 子网IPv4网段

既然叫做网段 的子网,那么子网的网段必然是VPC网段的子网段。

假设我们之前设置的VPC的IPv4网段网段为:

10.0.0.0/24

这里的任何一个子网都设置的子网IPv4网段,都属于10.0.0.0/24限定的范围,因此单个子网最大的网段即10.0.0.0/24。创建多个子网时,各个子网的网段应该确保不重叠,否则无法完成创建:

具体一个需求,假设我们此时创建2个子网网段,在一个子网内最多也就需要10个IP,且必须保证一定至少容纳10个IP。那么,2^3-5=3 < 10 < 2^4-5=11,即使不考虑日后扩展更多主机也起码主机位要4位2进制数的主机数,也就是网络位最多为28。

现在极限考虑,就取子网掩码为28,两个网段不重叠的前提下,一个的29位为0,另外一个的29位为1,就得到了两个容量为2^4-5=11的网段,分别是10.0.0.0/2810.0.0.1/28

设置完成后,点击"立即创建",稍等片刻即可完成子网的创建:

创建完成后,在"网络控制台"的"子网"选项页中,可以看到已经创建好的子网,如图所示:

[3. 安全组](#3. 安全组)

[3.1 安全组的基本概念](#3.1 安全组的基本概念)

• 是一个逻辑分组,为同一个VPC 内具有相同安全保护需求并相互信任的ECS提供访问策略;

• 用户可以在安全组中定义各种访问规则。当ECS加入该安全组后,即受到这些规则的保护;

• 安全组内的云服务器不需要添加规则即可相互访问;

• 安全组需要在网络路通的前提下生效(如实例虽在一个安全组,但在不同未打通的VPC就无法互通)。

[3.2 默认安全组](#3.2 默认安全组)

•华为云控制台中,可以创建、删除安全组,快速添加多条安全组规则等;

•华为云中,系统会为每一个用户创建一个默认的"default"安全组,这个安全组规定了:

  • 在出方向上的数据报文全部放行;

  • 在如方向上访问受限。

这个默认安全组有时也会显示为"Sys-default ",应该是因为华为云曾今使用该名称,写的死数据,导致部分地方使用"default "、部分地方使用"Sys-default "作为默认安全组的名称。比如为切换ECSVPC 时,就显示为"Sys-default":

[3.3 自定义安全组](#3.3 自定义安全组)

1.创建安全组页面页面

点击右上方的"创建安全组"按钮即可进入安全组创建页面:

在创建安全组页面中,为了创建新的安全组,我们也需要完成两大部分,即"基本信息"和配置规则:

2.基本信息

基本信息包括"区域"、"名称"、"标签"、"描述"几个部分,依据实际需求填写即可。

3.配置规则

配置规则包括配置"入方向规则"和"出方向规则"两大部分的安全组规则。不论是哪一部分,一个共同特点是,配置仅有允许策略,而没有拒绝策略,这也使得安全组的配置相对比较容易理解。

有时候为了方便,比如测试的时候直接一键放开所有端口(一般不建议这样做),或者用于部署Web服务器则需要放开HTTP的80端口和HTTPS的443端口,这是最常见的需求,可以直接使用"预设规则":

另外,更多方便的常用规则,可以点击"快速添加规则"按钮:

你可以根据需要,来勾选添加入方向规则:

或者出方向规则:

如果这些现成规则无法满足需求,就需要点击"添加规则",来创建满足需求的"入方向规则"或者"出方向规则"了。

例如为了可以使用远程MySQL客户端连接到MySQL Server:

bash 复制代码
mysql -h hostname -P 3306 -u username -p

则需要放通3306端口。这里需要说明的是"目的地址"。

目的地址可以是单个IP地址、IP地址段或安全组。

· 单个IP地址 :例如,192.168.10.9/32

· IP地址段 :例如,192.168.52.0/24

· 所有IP地址 :例如,0.0.0.0/0

· 安全组例如sg-mytest

比如仅仅是为了方便,我考虑哪一个具体的主机,直接放通安全组对应的所有主机的3306端口,就填写0.0.0.0/0,就像这样:

但是如果你确定是具体的某一台主机,比如IP192.168.10.9主机上部署了MySQL,并监听3306端口,则目的地址应该写192.168.10.9/32。参数设置过后,点击"立即创建"即可添加该自定义的安全组规则:

[4. 网络ACL](#4. 网络ACL)

[4.1 什么是网络ACL](#4.1 什么是网络ACL)

  • 类似于安全组,也是一种安全防护策略;

  • 是一个子网级别的可选安全层,通过与子网关联 出/入 方向规则控制出入子网的数流;

  • 安全组仅有允许策略,而ACL既可以允许也可以拒绝;

  • VPC 默认没有ACL,需要的时候可以自行创建网络的ACL,并将其与子网关联;

  • ACL关联子网后,默认拒绝所有出入子网的流量,直到添加放通规则;

  • 网络ACL 可以关联多个子网,但是一个子网同一时间只能关联一个网络ACL

  • 每个新创建的ACL最初都为未激活状态,直到关联子网位置;

  • 当多个ACL规则冲突时,高优先级的规则优先生效;

  • 华为云控制台可以创建、查看、修改、删除网络ACL ,修改ACL规则生效顺序。

[4.2 创建网络ACL](#4.2 创建网络ACL)

在网络控制台的侧栏中找到"网络ACL"标签,进入对应页面。在页面右上角点击"创建网络ACV"按钮,如图:

填写创建网络ACL必须的信息,完成后点击右下角的"创建"按钮:

[5. 华为云VPC对等连接](#5. 华为云VPC对等连接)

[5.1 对等连接的概念和使用场景](#5.1 对等连接的概念和使用场景)

  • 是两VPC 之间的网络连接,从而使使用私有IP 地址在这两个VPC之间进行通信;

  • 不同区域内,不可以使用VPC对等连接;

  • 同一个区域内,可以为同一个账号下或者不同账号下的VPC 创建VPC对等连接;

  • 有重叠子网网段的VPC建立的对等连接可能会不生效;

  • 对等连接的VPC 不能通过一端VPC的EIP访问另一端的资源(比如VPCAVPCB 建立了对等连接,虽然VPCBEIP 可以访问互联网,但是VPCA不能使用VPCB访问互联网);

  • 跨租户申请VPC对等连接需要对端租户接受后才能生效;

  • 同租户申请对等连接默认已经接受;

  • ★对等连接建立后,需要在本端VPC对端VPC分别添加对方子网的路由才能通信;

  • VPCAVPCB 分别建立对等连接,如果BC 两个VPC的网段有重叠,A中就无法添加具有相同目的网段的路由。

[5.2 创建对等连接](#5.2 创建对等连接)

这里演示一个实验,实验前提是我们已经创建好了两个处于同意区域的VPC(这里我预先在北京四区域创建了2个VPC):

还是在"网络控制台"。从左侧的"虚拟私有云"下找到并打开"对等连接"标签页。点击页面的右上角"创建对等连接":

现在,我们为同在当前账户下的两个VPC (简称为VPCAVPCB ),创建一个从VPCA (study-vpc-grey-bj4)到VPCB(test-vpc-grey-bj4)的对等连接,编写VPC信息完成后点击"立即创建":

VPC对等连接创建完成后,还需要在本端VPC和对端VPC的路由表中分别添加路由,才可以实现通信,因此弹出此对话框:

这里我们点击"立即添加",即可跳转到此各个创建的对等连接的详情页。在该对等连接的详情,点击"关联路由"下的"添加路由"按钮,为对等连接配置路由:

为了实现通信,需要在本端VPC对端VPC分别添加对方子网的路由

在华为云的VPC 对等连接中,目的地址下一跳地址是两个重要的参数。其中:

  1. 目的地址(Destination)

    • 这是指您想要访问的网络或IP地址范围。
    • VPC 对等连接中,目的地址通常是对端VPCCIDR 块(IP地址范围)。
    • 例如,如果您要访问的对端VPCCIDR192.168.0.0/16,那么这就是您的目的地址。
  2. 下一跳地址(Next Hop)

    • 这是指数据包在到达最终目的地之前要经过的下一个网络节点。
    • VPC 对等连接中,下一跳地址通常是对等连接的ID
    • 当您配置路由表时,您会将对等连接的ID设置为下一跳,这样系统就知道要通过这个对等连接来发送数据包。

简单来说:

  • 目的地址告诉系统"我想去哪里"
  • 下一跳地址告诉系统"我应该怎么去那里"

在配置VPC 对等连接的路由时,需要在每个VPC的路由表中添加相应的路由条目,指定目的地址(对端VPCCIDR )和下一跳地址(对等连接ID ),以确保两个VPC之间可以正确路由流量。

通常情况下,需要在对等连接两端VPC的路由表中分别添加去程和回程路由。其中:

  1. 去程路由:
  • VPC A 中配置的路由,用于将流量发送到VPC B

  • 目的地址是VPC BCIDR(Classless Inter-Domain Routing,无类别域间路由)。

  • 下一跳是对等连接ID。

  1. 回程路由:
  • VPC B 中配置的路由,用于将响应流量发送回VPC A

  • 目的地址是VPC ACIDR

  • 下一跳也是对等连接ID。

比如,先以本端虚拟私有云为VPC A study-vpc-grey-bj4),到对端VPC B test-vpc-grey-bj4

勾选"添加另一端VPC路由",即可在此弹窗添加从VPCB( test-vpc-grey-bj4)的回程路由:

点击"确定"完成创建后,在该新建的对等连接(名称peering-AB)详情页面,可以看到两条对等连接的关联路由信息:

[6. 验证通信](#6. 验证通信)

[6.1 验证方案](#6.1 验证方案)

我们在两台位于不同VPC的ECS上PING彼此,由于默认情况下不同VPC中的资源是无法通信的,如果两ECS可以互Ping彼此,那么说明VPC对等连接的搭建是成功的。

[6.2 测试通信](#6.2 测试通信)

[6.2.1 创建安全组](#6.2.1 创建安全组)

接下来的服务器需要安全组,你可以修改已有安全组或者创建安全组,为处于两个VPC的ECS的流量放行进行控制。

[6.2.2 创建ECS服务器实例](#6.2.2 创建ECS服务器实例)

作为学习和验证,这里我们考虑尽可能地节省成本。在华为云首页搜索"ECS"(或者在登陆的前提下点击此文本的链接:华为云ECS

进入ECS页面后,选择购买弹性云服务器:

犹豫仅仅是实验。这里一定要选择按需计费,一边我们在实验结束后方便对实例进行删除,以最大程度节省我们的经费:

然后尽可能选小规格参数的硬件指标(可参考价格):

选择完成后,选取一个镜像。比如这里选用所谓的华为云欧啦系统(其实基本就类似于CentOS,也是红帽的操作习惯)。然后点击"下一步:配置网络"。

配置网络并选择安全组:

其中安全组应该确保房通了必须的端口,从而被后续需要基于TCP/UDP(传输层协议)的应用通信。这个实验我们主要是测试联通性,使用的是Ping,Ping不是基于TCP/UDP的,而是基于ICMP协议,也就是当配置安全组规则允许 ping 时,通常是允许 ICMP 协议,而不是指定端口。

关于弹性公网IP,我们这里其实用不到,易名为我们这里使用私网进行通信。但是如果你的其它应用需要的话可以选择现在购买。

点击"下一步:高级配置":

在高级配置页面中,设置ECS实例的名称、描述,以及密码等信息,完成后点击:"下一步,确认配置":

等待实例创建完成。最终我们先后创建了以下两台ECS实例:

这里我们可以看到两台ECS实例主机的私网IP(测试VPC是否打通需要使用私网通信)。

显然,10.0.0.26和192.168.0.51这是两个类型的私网地址。现在我们登录10.0.0.26这台,点击对应的"远程登录"后,在弹窗中滚动到底部点击"立即登录"::

输入密码后完成登录,并在其中Ping位于对等连接的另一个VPC中的实例私网IP(我这里是192.168.0.51)

可见两个VPC之间是可以成功连接的。同样的方式,还可以在192.168.0.51中Ping通10.0.0.26,读者可以自行尝试。

[7. 总结](#7. 总结)

本文详细介绍了华为云虚拟私有云(VPC )的概念、创建过程以及相关的网络安全配置。我们探讨了VPC 的基本结构,包括子网设置、IP 地址分配等核心要素。同时,我们还深入讲解了安全组和网络ACL 的配置方法,这些都是保障VPC 网络安全的重要手段。此外,文章还介绍了VPC 对等连接的概念和创建流程,并通过实际操作验证了不同VPC间的通信。

通过本文的学习,读者应该能够掌握在华为云平台上创建和管理VPC 的基本技能。这些知识对于构建安全、高效的云端网络环境至关重要,能够帮助用户更好地规划和部署云上资源,为企业的数字化转型提供有力支持。随着云计算技术的不断发展,深入理解和灵活运用VPC将成为云网络管理的核心竞争力之一。

相关推荐
lgbisha11 小时前
828华为云征文|华为云Flexus X实例docker部署最新Appsmith社区版,搭建自己的低代码平台
低代码·docker·华为云
A^mber12 小时前
828华为云征文|云服务器Flexus X实例|Ubunt部署Vue项目
运维·服务器·华为云
繁依Fanyi21 小时前
828 华为云征文|华为 Flexus 云服务器部署 RustDesk Server,打造自己的远程桌面服务器
运维·服务器·开发语言·人工智能·pytorch·华为·华为云
Linux猿1 天前
828华为云征文 | 云服务器Flexus X实例:多智能体对话框架 AutoGen 部署和实例运行
华为云·agent·多智能体·autogen·flexus云服务器x实例·华为云服务器·autogen studio
繁依Fanyi1 天前
828华为云征文|华为Flexus云服务器搭建OnlyOffice私有化在线办公套件
服务器·开发语言·前端·python·算法·华为·华为云
Just_Paranoid2 天前
828华为云征文|部署在线文件管理器 Spacedrive
docker·华为云·文件管理·flexus云服务器·spacedrive
Linux猿2 天前
828华为云征文 | 云服务器Flexus X实例:部署 Gitea,拥有自己的Git仓库,管理本地代码
服务器·华为云·gitea·云服务器·git仓库·flexus云服务器x实例·华为云服务器
Cloud Traveler2 天前
828华为云征文 | 解锁企业级邮件服务,在华为云fFlexus x实例上部署Mailcow开源方案
华为云
爱吃香蕉的阿豪2 天前
828华为云征文|Flexus X实例Docker+Jenkins+gitee实现CI/CD自动化部署-解放你的双手~
ci/cd·docker·gitee·华为云·jenkins
Just_Paranoid3 天前
828华为云征文|部署知识库问答系统 MaxKB
docker·llm·华为云·rag·anythingllm·ollama·maxkb