在Azure中使用Peering实现跨Vnet的资源互访

0
3793

背景:对于很多使用公有云的用户来说,一个需要解决的问题是如何让自己在公有云上的资源可以互访,并且与其他用户的资源是隔离的,用户又可以将自己的本地局域网连入这个公有云区域,实现本地局域网和公有云的完美契合,方便自己的应用部署。目前主流云平台提供的解决方案都是采用VPC(Virtual Private Cloud)或者VDC(Virtual DataCenter)的方式。

Azure的虚拟网络(Vnet)是指Azure上针对资源的专用网 络空间,就是实现VPC的技术。

首先,我们罗列一下Azure上提供用户访问Azure云资源,以及Azure云上资源互访的几种方式(每种方式的优势以及局限性这里不做详细论述)。

用户接入Azure云:

  1. 暴露公网IP直接通过IP访问资源
  2. VPN的方式(点到点或者site-to-site,通过VPN网关同本地VPN设备相连)
  3. ExpressRoute(Azure提供的专用线路)

Azure上Vnet之间资源互访的几种方式

  1. VPN方式,Vnet之间通过VPN网关进行互相访问
  2. Vnet之间通过ExpressRoute方式进行访问
  3. Vnet之间通过peering进行访问

下面,我们来看一下用户接入Azure云以及组建自己Vnet的方式:

01

上述这种方式用户通过ExpressRoute接入Azure云,并且通过网关共享以及Vnet之间的peering来实现Vnet之间的资源互访,最终实现跨区域,跨Vnet之间的资源互访。

02

上述方式用户通过基于BGP的VPN(类似于MPLSVPN)接入Azure云,跨区域的Vnet之间也使用VPN连接,同一个区域的Vnet之间使用网关共享和peering实现资源互访,最终实现跨区域,跨Vnet之间的资源互访。

上述两种方式都用到了Vnet之间的peering实现本地区域的资源互访,本文重点介绍这一技术以及配置。

使用peering方式的好处:

  • 流量之间的交互完全是在私有网络中。
  • 可以保证不同虚拟网络资源之间的低延迟,高带宽。
  • 可以跨Azure订阅,部署模型(资源管理组部署和经典部署)和Azure区域(预览)传输数据。

使用peering方式部署的局限性:

  • 目前暂不支持跨Azure区域之间的相互通信。
  • 相互要通信的虚拟网络的ip地址段不重叠。
  • 配置的peering的虚拟网络地址空间不能添加到别的虚拟空间或者删除。
  • 配置peering的两个虚拟网络必须互相之间都进行peer的映射(peerA->peerB,peerB->peerA)。
  • 两个经典模式创建的虚拟网络之间需要使用VPN来互相通信。
  • 虚拟网中虚机的网络吞吐量取决于虚机允许的最大带宽,与虚机大小成正比。
  • 每个虚拟网络只能有一个网关,可以使用本地网关或者远程网关。

03

上述拓补图表示HR,Marketing,Engineering都与Hub Vnet互联,HubVnet中可以包括共享资源,例如域控制器,监控系统,防火墙或其他网络虚拟设备(NVA),然而peer并不会互相学习,所以HR,Marketing,Engineering之间是互相不能通信的。如果要互访,如下图:

04

当使用peering时,各个Vnet之间能够共享VPN或者Express route网关,这样就不需要在每个Vnet中部署网关,而是可以使用HubVnet中的网关。

下面介绍的配置为三个用resource manager方式创建的虚拟网络通过Peering进行互相连接。

  1. 创建虚拟网络
网络地址 子网地址 区域
vnet01 10.1.0.0/16 10.1.0.0/24 东南亚
vnet02 10.2.0.0/16 10.2.0.0/24 东南亚
vnet03 10.3.0.0/16 10.3.0.0/24 东南亚

创建vnet01,vnet02,vnet03

05

在vnet01中添加网关

06

vnet01 vnet02 vnet03
vnet01 允许网关传输 允许网关传输
vnet02 使用远程网关 允许转发通信 允许转发通信
vnet03 使用远程网关 允许转发通信 允许转发通信

创建vnet01到vnet02和vnet03的peering

07

08

09

配置Vnet02到vnet01和vnet03的peering

10

11

12

配置vnet03到vnet01和vnet02的peering

13

对等状态全部为已连接,下面我们分别在这三个虚拟网络中创建一台winserver虚拟机,来ping一下验证连通性。

14