Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接
《Windows Azure Platform 系列文章目录》
我们知道,Azure Virtual Network可以
1.将对台Azure VM加入到同一个网段里,同时绑定内网IP地址
2.创建VPN网关,来设置Site-To-Site VPN或者Point-To-Site VPN
但是我们在使用Virtual Network的时候,会遇到这样的情况:
1.之前创建的2个Virtual Network,本来是互相不能通过内网访问的。但是后期想通过内网互通互联。
2.在创建的Virtual Network只能在同一个数据中心里,如何实现跨数据中心的内网互通?
其实是可以通过VNet-to-VNet,把不同的Virtual Network打通,实现在不同VNet的虚拟机,通过内网互通互联的。
VNet-to-VNet连接需要注意:
(1)不同订阅之间的VNet-To-VNet连接
(2)不同数据中心(China East, China North)之间的VNet-To-VNet连接
(3)VNet-to-VNet连接,需要在Azure VNet创建动态路由
(4)不同VNet之间的IP Address不同重叠。
(5)VNet-to-VNet之间的流量是经过Azure数据中心骨干网的
参考资料:
我们先假设一个场景:
我们需要打通China East VNet和China North VNet的VNet-To-VNet连接
关键步骤如下:
(1)规划Virtual Network的IP Rang
(2)在中国东部创建一个VNet,命名为ChinaEastVNet
(3)在中国北部创建一个VNet,命名为ChinaNorthVNet
(4)增加本地网络ChinaEastVNet和ChinaNorthVNet
(5)设置Azure VNet ChinaEastVNet与本地网络ChinaNorthVNet的Site-To-Site VPN连接
(6)设置Azure VNet ChinaNorthVNet与本地网络ChinaEastVNet的Site-To-Site VPN连接
(7)在Azure VNet创建VPN Gateway网关,并设置动态路由
(8)重新设置本地网络的VPN网管地址
(9)连接VPN Gateway网关
现在开始本章的内容:
1.规划Virtual Network的IP Rang
(1)我们先规划位于中国东部的VNet,命名为ChinaEastVNet, IP Rang为10.0.0.0/22
(2)然后我们规划位于中国北部的VNet,命名为ChinaNorthVNet, IP Rang为10.1.0.0/22
(3)对于ChinaEastVNet来说,他要连接到的目标网络是ChinaNorthVNet
(4)对于ChinaNorthVNet来说,他要连接到的目标网络是ChinaEastVNet
(5)对于这2个VNet,都设置对方为本地网络
(6)注意:ChinaEastVNet和ChinaNorthVNet,它们的IP不能互相重叠
(7)示意图如下:
| 虚拟网络名称 | IP Rang | 需要连接的本地网络 |
| ChinaEastVNet | 10.0.0.0/22 | ChinaNorthVNet |
| ChinaNorthVNet | 10.1.0.0/22 | ChinaEastVNet |
2.在中国东部创建一个VNet,命名为ChinaEastVNet
(1)我们点击新建,网络->虚拟网络->自定义创建

(2)在中国东部创建虚拟网络,命名为ChinaEastVNet。如下图:

(3)根据实际业务需求,设置DNS服务器

(4)设置IP Rang和Subnet

3.在中国北部创建一个VNet,命名为ChinaNorthVNet

设置ChinaNorthVNet的Subnet

4.增加本地网络ChinaEastVNet和ChinaNorthVNet
(1)我们点击本地网络,增加本地网络

(2)先增加本地网络ChinaEastVNet,VPN设备IP地址我们这里随便设置的,后面会回来进行修改

(3)设置本地网络ChinaEastVNet的IP Rang和CIDR

(4)然后增加本地网络ChinaNorthVNet,VPN设备IP地址我们这里随便设置的,后面会回来进行修改

(5)设置本地网络ChinaNorthVNet的IP Rang和CIDR

(6)注意,我们在虚拟网络设置的Virtual Network ChinaEastVNet和ChinaNorthVNet的IP Rang,必须与本地网络设置的地址空间一致

5.设置Azure VNet ChinaEastVNet与本地网络ChinaNorthVNet的Site-To-Site VPN连接
(1)我们点击之前创建的虚拟网络ChinaEastVNet

(2)页面跳转,我们点击配置选项

(3)增加Virtual Network ChinaEastVNet,连接到本地网络ChinaNorthVNet。同时增加网关子网

(4)然后再设置虚拟网络ChinaNorthVNet

(5)增加Virtual Network ChinaNorthVNet,连接到本地网络ChinaEastVNet。同时增加网关子网

6.在Azure VNet创建VPN Gateway网关,并设置动态路由

页面跳转,点击创建网关->动态路由

然后我们对ChinaNorthVNet,也创建动态路由。图略。一般情况下,创建路由需要15分钟左右。
7.等待动态路由创建完毕后,我们重新设置本地网络的VPN网关地址
(1)我们在虚拟网络中,可以查看到ChinaEastVNet对应的VPN网关地址是:42.159.235.103

(2)ChinaNorthVNet对应的VPN网关地址是:42.159.27.208

(3)我们重新设置本地网络的VPN网关地址,修改本地网络ChinaEastVNet的VPN网关地址,为42.159.235.103


(4)然后再设置本地网络的VPN网关地址,修改本地网络ChinaNorthVNet的VPN网关地址,为42.159.27.208。图略。
(5)VPN网关设置完毕后,如下图:

8.连接VPN Gateway网关
(1)上面的步骤设置完毕后,我们就可以通过Azure PowerShell,来设置Azure Virtual Network IPSec VPN网关了
(2)以管理员身份,运行Azure PowerShell
#在弹出的界面中,输入Azure China用户名和密码
Add-AzureAccount -Environment AzureChinaCloud #选择当前订阅
Select-AzureSubscription 'POC' -current #设置ChinaEastVNet
Set-AzureVNetGatewayKey -VNetName ChinaEastVNet -LocalNetworkSiteName ChinaNorthVNet -SharedKey A1b2C3D4 #设置ChinaNorthVNet
Set-AzureVNetGatewayKey -VNetName ChinaNorthVNet -LocalNetworkSiteName ChinaEastVNet -SharedKey A1b2C3D4
(3)执行结果如下图:

(3)稍等片刻以后,就可以看到VNet-To-VNet通了

================================================分隔符============================================================
(1)最后别忘记,我们可以在中国东部和中国北部,分别创建2台Azure VM,加入到ChinaEastVNet和ChinaNorthVNet里

(2)通过这2台Azure虚拟机的内网,互相连接,以检验这2个Azure VNet可以互通互联。
我们分别通过远程桌面连接,连接到这2台Azure VM,记得先关闭操作系统的防火墙
上图中,位于上海数据中心的虚拟机,机器名为Lei2012CHNSH,内网IP地址为10.0.0.4
位于北京数据中心的虚拟机,机器名为Lei2012CHNBJ,内网IP为10.1.1.4
这2台虚拟机内网互通的延时约为32毫秒。
Windows Azure Virtual Network (11) 创建VNet-to-VNet的连接的更多相关文章
- [SDK2.2]Windows Azure Virtual Network (3) 创建AD Server并添加至Virtual Network
<Windows Azure Platform 系列文章目录> 在之前的文章中,笔者已经向大家介绍了如何创建一个简单的Azure Virtual Network. 本章我将创建一台域服务器 ...
- Windows Azure Virtual Network (11) 虚拟网络之间点对点连接VNet Peering
<Windows Azure Platform 系列文章目录> 在有些时候,我们需要通过VNet Peering,把两个虚拟网络通过内网互通互联.比如: 1.在订阅A里的Virtual N ...
- [SDK2.2]Windows Azure Virtual Network (2) 创建简单的Virtual Network
<Windows Azure Platform 系列文章目录> 本章笔者将介绍如何创建一个简单的 Virtual Network. 1.首先我们登陆Windows Azure管理界面 ht ...
- Windows Azure Virtual Network (8) 创建Azure Point-to-Site点到站点 VPN
<Windows Azure Platform 系列文章目录> 我们在使用Azure的时候,常常有这样的需求: -我需要将企业内网的主机连接到微软Azure公有云平台 -我需要保证企业内部 ...
- [SDK2.2]Windows Azure Virtual Network (4) 创建Web Server 001并添加至Virtual Network
<Windows Azure Platform 系列文章目录> 在上一章内容中,笔者已经介绍了以下两个内容: 1.创建Virtual Network,并且设置了IP range 2.创建A ...
- Windows Azure Virtual Network (13) 跨数据中心之间的虚拟网络点对点连接VNet Peering
<Windows Azure Platform 系列文章目录> 今天是大年初二,首先祝大家新年快乐,万事如意. 在笔者之前的文章中:Windows Azure Virtual Networ ...
- [SDK2.2]Windows Azure Virtual Network (1) 概念
<Windows Azure Platform 系列文章目录> Windows Azure Virtual Network是非常重要的概念,其主要作用有以下两点: 1.将多台Azure V ...
- Windows Azure Virtual Network (7) 设置Azure Virtual Machine固定公网IP (Virtual IP Address, VIP) (2)
<Windows Azure Platform 系列文章目录> 本文介绍的是,当用户在创建Azure Virtual Machine的时候,忘记绑定公网IP,需要重新绑定公网IP的具体操作 ...
- [Windows Azure] Windows Azure Virtual Network Overview
Windows Azure Virtual Network Overview 18 out of 33 rated this helpful - Rate this topic Updated: Ap ...
随机推荐
- 一、ASP.NET MVC 路由(一)--- ASP.NET WebForm路由模拟
ASP.NET WebForm 应用,用户请求的是物理文件,其中包括静态页面和动态页面,在Url中的显示都是服务器中一个物理文件的相对路径.但是ASP.NET MVC就不同了,用户请求的是Contro ...
- Java虚拟机9:Java类加载机制
前言 我们知道我们写的程序经过编译后成为了.class文件,.class文件中描述了类的各种信息,最终都需要加载到虚拟机之后才能运行和使用.而虚拟机如何加载这些.class文件?.class文件的信息 ...
- Java虚拟机5:Java垃圾回收(GC)机制详解
哪些内存需要回收? 哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那些不可能再被任何途径使用的对象.那么如何找到这些对象? 1.引用计数法 这个算法的实现是,给对象中添 ...
- 用“MEAN”技术栈开发web应用(一)AngularJs前端架构
前言 不知何时突然冒出“MEAN技术栈”这个新词,听起来很牛逼的样子,其实就是我们已经熟悉了的近两年在前端比较流行的技术,mongodb.express.angularjs.nodejs,由于这几项技 ...
- java提高篇(十七)-----异常(二)
承接上篇博文:java提高篇-----异常(一) 五.自定义异常 Java确实给我们提供了非常多的异常,但是异常体系是不可能预见所有的希望加以报告的错误,所以Java允许我们自定义异常来表 ...
- js实现快速排序
非原创: var quickSort = function(arr){ if(arr.length<=1){return arr;} var pivotIndex = Math.floor(ar ...
- Unity3D热更新全书-重头再来
之前写了Unity3D热更新全书系列Blog 提出了下载.加载.脚本三个方面的开源类库 下载方面有EasyDown加载方面有GameObjParser脚本方面有C#Light另外有一个没有独立成库,但 ...
- C#中使用反射获取结构体实例
一般用反射获取类对象的实例比较简单,只要类有一个无参构造函数或没有显示声明带参的构造函数即可使用如下代码 static void Main(string[] args) { Type type = t ...
- js 把url参数转对象
//注意url中要含? function getParameterByName(name, url) { if (!url) { url = win ...
- GAMIT 10.50在Ubuntu 12.04系统下的安装
转载于:http://www.itxuexiwang.com/a/liunxjishu/2016/0225/162.html?1456480908 摘要:GAMIT/GLOBK是一套安装于Unix/L ...