实验背景:


公司在国内多个城市都有分支机构,每个satellite office都有自己独立的内网,是一个独立的site。现在公司租用了Azure服务,将一些重要服务迁移至Azure,但某些服务要求必须只能通过公 司内部网络通信完成,所以需要将公司的几个分支结构的子网和Azure资源所在的子网连接起来。


世 纪互联的Azure当前并不支持直接在manage.windowsazure.cn这个管理portal中直接配置Azure到多个子网的site- 2-site ×××。微软提出了一个自己的概念,叫做Multi-site ×××,它和我们建立多个site-2-site ×××的区别仅仅在于Azure端的配置方法上。下文详细叙述。


前提条件/准备工作:


  1. Windows Azure管理权限,能够新建Virtual Network(New->Network services->virtual network);

  2. 本地×××设备或者服务器的管理权限,试验中我使用的是FortiGate防火墙设备。如果您使用专门的×××设备,请一定参考微软的兼容性设备列表,确保您使用的×××设备和windows Azure相兼容;

  3. 本地子网的网络地址池空间;

  4. Azure要计划使用的网络地址池空间;

  5. 一个xml文件编辑器,用于编辑从Azure上下载到本地的网络配置文件;

  6. Azure PowerShell;


部署过程:


  1. 新建Virtual Network:wKiom1UBS67zDMjlAADp3B--GSM652.jpg

    1. 为Virtual Network命名;

    2. 选择使用的datacenter的地点,目前世纪互联在中国有两个datacenter。中国北方(北京),国东方(上海);wKiom1UBS8bAWij5AAFtF5pRAlY425.jpg


    3. 为你的virtual network制定一个DNS服务器,这里建议您选择一些比较靠谱的,最好是在国内和国外都比较靠谱的DNS服务器,建议您使用google的8.8.8.8,国内的114DNS等。OpenDNS也很不错,但是在国内访问延时较大,不太建议;

    4. 配置×××的方式为Site-to-site ×××,你的on-premise/local网络可以新建或者选择你已经录入过的网络,试验中我们是新建了一个local network;

    5. 配置本地网络(local network/on-premise network)属性,本地网络的名字,本地×××设备的IP地址,本地网路的地址空间;wKioL1UBTQjhHb4_AAHELgguXFs540.jpg


    6. 配置Azure端的子网属性,自己按照实际需求设置即可,完成virtual network的创建过程。配置完成后,我们可以通过查看virtual network的dashboard看到当前的状态。


  2. 增加local Network(添加其他几个分支结构的子网信息,这个过程这一步也可以省略):

    1. New->Network services->Virtual Network->Add local network;

    2. 输入local Network的名称;

    3. 输入local network的子网地址范围;wKiom1UBTB_yuvAJAADfMN2WqPI515.jpg


  3. 配置Virtual Network:

    1. 创建gateway,这里要注意,根据微软官方的文档(https://msdn.microsoft.com/en-us/library/azure /jj156210.aspx),配置Multi-site ×××一定要选择Dynamic Routing。这个创建过程比较慢,实测中国北方数据中心,创建过程用了20分钟;wKiom1UBTRDQ4kaEAAJaPTejZSg606.jpg

    2. 创建好Gateway之后,我们检查一下当前的virtual network状态是否正确。Gateway的公网IP应该能够在dashboard中显示出来,gateway的类型是Dynamic Routing。然后我们将当前的network configuration导出,导出来的是一个xml文件;

    3. 编辑配置文件,找到<ConnectionsToLocalNetwork> 和</ConnectionsToLocalNetwork>之间的部分,我们看到这里默认只有我们在新建virtual network的时候输入的on-premise network的信息,而我们新增的local network都不在这里,那么我们就需要手动修改这个配置文件,将我们其他的On-Premise(local network)的信息增加进来。

    4. 上传编辑好的配置文件,更新virtual network网络配置。New->Network Services->Virtual Network->Import configuration,选择你刚才编辑好的配置文件,进行上传。wKiom1UBTSihOosZAAD0MeQocQw128.jpg


    1. 如果你已经通过GUI将其他On-premise(local) network的信息添加到了virtual network中,那么你只需要修改<ConnectionsToLocalNetwork> 和</ConnectionsToLocalNetwork>之间的部分,先将这部分内容复制,然后粘贴在< /ConnectionsToLocalNetwork>之前,将你粘贴的内容中的name部分进行修改,修改成你需要增加的on- premise(local) network的名字。以此类推,将所有其他需要增加进来的网络都添加好;

    2. 如果你之前没有通过GUI将其他的On-Premise(local) network的信息创建好,你可以直接通过修改这个xml文件进行创建。找 到<LocalNetworkSite>……….</LocalNetworkSite>部分,复制这一部分,粘贴到这部分的后 面,讲你想添加的On-Premise(local) network的name、子网范围、×××GatewayAddress进行修改即可。以此类推,将所有需要添加的子网添加好之后,执行上一布的过程, 这样就将network configuration文件编辑好了,进行保存;

  4. 获取Multi-site ×××信息(需要通过Azure PowerShell):

    1. 获取subscription:get-AzureSubscription;

    2. 选择需要的subscription:select-AzureSubscription -name;

    3. 获取virtual network configuration:get-AzureVNetConfig|fl;

    4. 获取××× Pre-shared-key:Get-AzureVNetGatewayKey -vNetName xxx      -LocalNetworkSiteName yyyy;

    5. 获取Azure端×××的属性设置:Get-AzureVNetGatewayIPsecParameters -VNetName AAAA      -LocalNetworkSiteName BBBB


  5. 配置本地×××设备。由于大家所使用的×××设备都不相同,但需要修改的项目基本一致,这里我们说一下通常需要修改的几个地方和注意事项:

    1. 需要使用IKEv2;

    2. 启用Replay Detection;

    3. 不需要配置NAT traversal;

    4. 不需要配置Auto Keep Alive;

    5. 不需要配置Auto-Negotiate;

    6. 不要启用Perfect Forward Security(PFS);