Azure传输vNet实现Hub-Spoke模型S2S连接

在Azure上很多小伙伴有vNet互联互通的需求。目前在Azure中在跨区域场景中可以选用vNet Gateway通过S2S实现互通,同区域内可以通过vNet Peering实现互通。以上是简单的两个vNet互通的场景,当有多个vNet之间实现Any to Any的互通时,通过以此两两互联互通的方法工作量及复杂度明显过高。有没有办法可以更简单的实现Full Mesh Any to Any的互通呢。答案是Hub-Spoke,但是问题来了对于vNet Peering场景中原生的Azure网络vNet Peering不支持Transit vNet(即假设有vNet A,B,C,vNet A与vNet B建立peer,vNet B与vNet C建立peer,此时A与B支持互通,B与C支持互通,但A与C之间没有互通关系,如果需要互通即vNet B要扮演Transit vNet的角色)。

目前Azure上可以通过在Hub vNet中创建一个实例来扮演路由转发角色,从而实现Transit vNet的效果。此种方法相对复杂,用户需要自行考虑实例高可用问题。本文为大家介绍如何通过Azure原生提供的vNet Gateway来实现Transit vNet。

测试环境说明:

vNet-Hub:172.16.0.0/16

vNet-Spoke1:172.17.0.0/16

vNet-Spoke2:172.18.0.0/16

vNet-Spoke1中VM:172.17.0.4

vNet-Spoke2中VM:172.18.0.4

准备工作:

  1. 在Hub vNet中存在vNet Gateway

配置方法(参数以斜体表示,实际配置可根据需求进行替换):

  1. 在Hub vNet中创建到Spoke1 vNet和Spoke2 vNet的Peering

azure network vnet peering create -g vNet-Hub -n toSpoke1 --vnet-name vNet-Hub --remote-vnet-id spoke1-vNet-id --allow-gateway-transit true --allow-vnet-access true

Note:开启Gateway-transit,从而Spoke端可以享用Hub的vNet网关

azure network vnet peering create -g vNet-Hub -n toSpoke2--vnet-name vNet-Hub --remote-vnet-id spoke2-vNet-id --allow-gateway-transit true --allow-vnet-access true

  1. 在Spoke vNet中创建到Hub的Peering

azure network vnet peering create -g vNet-Spoke1 -n toHub --vnet-name vNet-Spoke1 --remote-vnet-id Hub-vNet-id --use-remote-gateways true --allow-vnet-access true

Note:Spoke侧开启use-remote-gateways,从而Spoke端可以享用Hub的vNet网关

azure network vnet peering create -g vNet-Spoke2 -n toHub --vnet-name vNet-Spoke2 --remote-vnet-id Hub-vNet-id --use-remote-gateways true --allow-vnet-access true

  1. 创建UDR自定义转发策略,将Spoke vNet网段地址路由下一跳指向Hub vNet Gateway地址

创建UDR路由表

azure network route-table create -g vNet-Spoke1 -n SPOKE1UDR -l southeastasia

创建路由条目

azure network route-table route create --route-table-name SPOKE1UDR --address-prefix 172.18.0.0/16 --next-hop-ip-address 172.16.1.4 --next-hop-type VirtualAppliance --name Spoke2prefix --resource-group vNet-Spoke1

Note:下一跳地址类型指定为VirtualAppliance

azure network route-table create -g vNet-Spoke2 -n SPOKE2UDR -l southeastasia

 

azure network route-table route create --route-table-name SPOKE2UDR --address-prefix 172.17.0.0/16 --next-hop-ip-address 172.16.1.4 --next-hop-type VirtualAppliance --name Spoke1prefix --resource-group vNet-Spoke2

关联路由表至子网

azure network vnet subnet set -g vNet-Spoke1 --vnet-name vNet-Spoke1 --name default --route-table-name SPOKE1UDR

azure network vnet subnet set -g vNet-Spoke2 --vnet-name vNet-Spoke2 --name default --route-table-name SPOKE2UDR

细心的小伙伴可能会问,UDR路由条目里面设定的下一跳是如何获得的。Azure中在创建vNet Gateway的时候需要创建一个GatewaySubnet,vNet Gateway逻辑上就是通过这个GatewaySubnet与vNet连接的,所以vNet Gateway会占用该子网内一个地址。在Azure中地址分配是按照最小的可用地址分配的,以x.x.x.x/24子网为例,Azure会以第4个可用地址进行分配,即x.x.x.4给到vNet Gateway。另外也可以通过可用的实例进行ping验证来确认vNet Gateway的地址。

测试连通性:

利用vNet-Spoke1中主机与vNet-Spoke2内主机进行ntttcp测试

小结:

通过借助vNet Gateway实现vNet Peering在Hub-Spoke环境下的Full Mesh互通,Hub可以作为Transit vNet。vNet Gateway为原生网关实例,无需关注高可用问题,从而简化部署及管理。

时间: 2024-12-26 00:14:38

Azure传输vNet实现Hub-Spoke模型S2S连接的相关文章

MPLS VPN 之Hub&Spoke配置及路由分析

所谓的Hub点就是汇聚Spoke节点的中心节点,而Spoke节点就是分支节点,如果在MPLS VPN中,Spoke节点需要通过中心节点Hub进行通信,那么就需要使用Hub&Spoke组网方式,在<MPLS和VPN体系结构>这本书中叫做星型拓扑,本实验的拓扑图是基于这本书中的拓扑图,由于书中并没有讲配置,并且进得也很模糊,现在就用实验进行分析,Spoke节点之间的流量是如何通过中心的CE进行通信的,实验拓扑图如下: 实验要求: 昆明分部的R7需要通过上海总部的R1和R2访问贵阳分部的R6

Azure通过Vnet Peering和用户自定义路由(UDR)实现hub-spoken连接

Azure的Vnet Peering可以把Azure中不同的Vnet连接起来的技术.底层是通过对NVGRE的租户标签进行修改,实现了不同租户间的互通.这种技术非常类似传统网络中MPLS/VPN不同租户互通的技术.在MPLS/VPN中是对RT值进行控制,实现不同租户间的互通. 但Vnet Peering有一个限制:VNet 对等互连存在于两个 VNet 之间,多个对等互连之间没有任何派生的可传递关系.例如,如果 VNetA 与 VNetB 对等互连,VNetB 与 VNetC 对等互连,但 VNe

For Microsoft Azure Network VNET to VNET Connection

将一个 Azure 虚拟网络 (VNet) 连接到另一个 Azure 虚拟网络非常类似于将虚拟网络连接到本地站点位置.这两种连接类型都使用虚拟网络网关通过 IPsec/IKE 提供安全隧道.连接的 VNet 可在不同的订阅和不同的区域中.甚至可以使用多站点配置来整合 VNet 到 VNet 的通信.这样,便可以建立将跨界连接与虚拟网络间连接相结合的网络拓扑,如下图所示: 两个虚拟网络可以在相同的地域也不可以再不同的地域. 分别创建两个本地网络 1.1LocalNorth 其中VPN DEVICE

使用ML.NET + ASP.NET Core + Docker + Azure Container Instances部署.NET机器学习模型

本文将使用ML.NET创建机器学习分类模型,通过ASP.NET Core Web API公开它,将其打包到Docker容器中,并通过Azure Container Instances将其部署到云中. 先决条件 本文假设您对Docker有一定的了解.构建和部署示例应用程序还需要以下软件/依赖项.重要的是要注意应用程序是在Ubuntu 16.04 PC上构建的,但所有软件都是跨平台的,应该适用于任何环境. Docker Azure CLI .NET Core 2.0 Docker Hub Accou

Azure机器学习入门(四)模型发布为Web服务

接Azure机器学习(三)创建Azure机器学习实验,下一步便是真正地将Azure机器学习的预测模型发布为Web服务.要启用Web服务发布任务,首先点击底端导航栏的运行即"Run"按钮运行新的收入预测实验.实验开始运行之后,底端导航栏的发布Web服务即"Publish Web Service"按钮就变为有效,如下图所示. 图 即将发布Web服务地Azure 机器学习实验 此时,点击设计模式下底端导航栏的发布Web服务即"Publish Web Servic

Azure 上搭建 站点到站点(s2s) VPN

本篇文章我们将创建Site to Site的虚拟网络连接,以满足本地网络到云端的网络连接. 1). 登录到Azure管理门户 国内版:https://manage.windowsazure.cn 在管理门户导航中选择网络,在右侧选择"创建虚拟网络". 第一步:填写名称及选择位置 填写适当的名称和选择合适的网络接入位置后点击后续按钮 第二步:配置DNS及VPN类型 填写DNS服务器地址,如果为空,则使用Azure默认的DNS服务器: 选择VPN类型:选择"站点到站点的连接&qu

Windows Azure Service Bus Notification Hub推送通知

之前写的一篇关于消息推送的博文:) http://www.cnblogs.com/developersupport/p/Azure-Service-Bus-Notification-Hub.html

Windows Azure 配置多个站点的虚拟网络连接

通过上一篇"Windows Azure 虚拟网络配置(Site to Site)" 我们建立了可以进行Site to Site连接的虚拟网络,配置过后有些朋友会有疑问:如果需要连接多个Site,例如需要同时连接北京.上海两地办公室的网络,该如何配置?Windows Azure支持多站点的配置,不过可惜的是无法直接通过管理门户进行配置,需要按照以下步骤进行: 1. 导出网络配置文件 打开https://manage.windowsazure.com Windows Azure管理门户 在

Pytorch修改ResNet模型全连接层进行直接训练

之前在用预训练的ResNet的模型进行迁移训练时,是固定除最后一层的前面层权重,然后把全连接层输出改为自己需要的数目,进行最后一层的训练,那么现在假如想要只是把 最后一层的输出改一下,不需要加载前面层的权重,方法如下: model = torchvision.models.resnet18(pretrained=False) num_fc_ftr = model.fc.in_features model.fc = torch.nn.Linear(num_fc_ftr, 224) model =