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 对等互连,但 VNetA 不 与 VNetC 对等互连。(https://www.azure.cn/documentation/articles/virtual-network-peering-overview/

比如,在我们之前讨论过的Vnet Peering实现多个Vnet公用Express Route和VPN Gateway的情况下:

Vnet1、Vnet2、Vnet3和Gateway Vnet都建立了Vnet Peering的关系,Vnet1可以和Gateway Vnet通讯,但不可以和Vnet2通讯。着就是上面所提到的Vnet Peering的限制。

这是一个典型的Hub-Spoken的网络结构,但Spoken节点间不通通讯。

同时Vnet Peering有数量上的限制:(https://www.azure.cn/documentation/articles/azure-subscription-service-limits/#networking-limits)

如果需要各个Vnet间都相互连接,需要在各个Vnet间都配置Vnet Peering关系,不但需要大量的工作(n*(n-1)个peering配置),而且有可能碰到Vnet Peering的上限。

本文将介绍,如上文场景中,Vnet1、Vnet2和Vnet3间不需要配置Vnet Peering,而采用用户自定义路由的方式,实现Hub-Spoken结构的Vnet互通。

一、创建3个Vnet

如下图所示,创建3个Vnet,IP地址互相不重叠:

二、在Vnet-BGP-2中创建VPN Gateway

配置如下图:

三、配置Vnet Peering

配置成如下图所示的结构:Vnet-BGP-1 <-> Vnet-BGP-2, Vnet-BGP-3 <-> Vnet-BGP2

具体配置如下:

Vnet-BGP-1的配置:

Vnet-BGP-2的配置:

同理配置Vnet-BGP-2和Vnet-BGP-3的Vnet Peering关系。

配置完成后,在Vnet-BGP-1中的VM1-1、VM3-1都可以ping通Vnet-BGP-2中的Gateway地址:

[[email protected] ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:17:fa:01:27:80 brd ff:ff:ff:ff:ff:ff
inet 10.1.1.4/24 brd 10.1.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::217:faff:fe01:2780/64 scope link
valid_lft forever preferred_lft forever
[[email protected] ~]# ping 10.2.0.4
PING 10.2.0.4 (10.2.0.4) 56(84) bytes of data.
64 bytes from 10.2.0.4: icmp_seq=1 ttl=128 time=1.86 ms
64 bytes from 10.2.0.4: icmp_seq=2 ttl=128 time=0.983 ms
64 bytes from 10.2.0.4: icmp_seq=3 ttl=128 time=1.08 ms
^C
--- 10.2.0.4 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.983/1.310/1.866/0.395 ms
[[email protected] ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:17:fa:01:26:06 brd ff:ff:ff:ff:ff:ff
inet 10.3.1.4/24 brd 10.3.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::217:faff:fe01:2606/64 scope link
valid_lft forever preferred_lft forever
[[email protected] ~]# ping 10.2.0.4
PING 10.2.0.4 (10.2.0.4) 56(84) bytes of data.
64 bytes from 10.2.0.4: icmp_seq=1 ttl=128 time=1.08 ms
64 bytes from 10.2.0.4: icmp_seq=2 ttl=128 time=0.772 ms
64 bytes from 10.2.0.4: icmp_seq=3 ttl=128 time=1.23 ms
^C
--- 10.2.0.4 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.772/1.032/1.238/0.194 ms

但此时VM1-1和VM3-1不通:

[[email protected] ~]# ping 10.3.1.4
PING 10.3.1.4 (10.3.1.4) 56(84) bytes of data.
^C
--- 10.3.1.4 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1000ms

四、配置UDR

1. 在Vnet-BGP-1中配置UDR

由于在Vnet Peering配置中,Vnet-BGP-1可以使用远端的Gateway,所以远端的Gateway就相当于本地的Gateway使用。

在Vnet-BGP-1的vlan1中,关联如下的Route-Table:

这个路由表中,10.3.0.0/16是Vnet-BGP-3的网段,下一跳是VPN Gateway,这个VPN Gateway是在Vnet-BGP-2网络中的。虽然Vnet-BGP-1和Vnet-BGP-3是不通的,但这个VPN Gateway和Vnet-BGP-1已经Vnet-BGP-3都是通的。通过把Vnet-BGP-1到Vnet-BGP-3的流量导引到Vnet-BGP-2中的VPN Gateway上,两边的流量就通起来了。

2. 在Vnet-BGP-3的vlan3中配置UDR:

此时在进行VM1-1和VM3-1间的ping检测,状态是通的:

[[email protected] ~]# ping 10.3.1.4
PING 10.3.1.4 (10.3.1.4) 56(84) bytes of data.
64 bytes from 10.3.1.4: icmp_seq=1 ttl=63 time=3.66 ms
64 bytes from 10.3.1.4: icmp_seq=2 ttl=63 time=1.64 ms
64 bytes from 10.3.1.4: icmp_seq=3 ttl=63 time=1.62 ms
^C
--- 10.3.1.4 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.626/2.311/3.665/0.958 ms

五、总结:

Azure上Vnet Peering的关系不能传递。通过UDR的方式,通过中间的VPN Gateway可以实现Hub-Spoken的网络结构。当然VPN Gateway也可以采用Virtual Appliance设备,但需要考虑NVA的HA架构。

时间: 03-31

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

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

Azure 用户自定义路由 (User Defined Route)

在公有云环境中,用户创建了一个Vnet,添加了若干个网段后,这几个网段是全联通的状态. 如果希望在Vnet中添加一些功能性的设备,比如防火墙.IPS.负载均衡设备等,就需要进行用户自定义路由的配置. 下图就是UDR的一个应用场景: 被保护网络的所有流量需要经过中间的防火墙.IPS等设备. 本文设定的一个简单场景是两个网段,Subnet-1和Subnet-2.有一台设备VM1有两个网卡,跨接了两个网段.另外两台设备VM2和VM3各在一个网段.如下图: 如果不设置UDR,10.1.1.5访问10.1

Windows Azure Virtual Network (13) 跨数据中心之间的虚拟网络点对点连接VNet Peering

<Windows Azure Platform 系列文章目录> 今天是大年初二,首先祝大家新年快乐,万事如意. 在笔者之前的文章中:Windows Azure Virtual Network (12) 虚拟网络之间点对点连接VNet Peering 我们了解,可以在同一个数据中心之间的两个虚拟网络,只要虚拟网络的IP Range不冲突,就可以设置VNet Peering 现在,Azure VNet Peering还支持跨数据中心之间的两个虚拟网络,通过VNet Peering打通 在这里我们简

Azure Application Gateway (4) 设置URL路由 - PowerShell

<Windows Azure Platform 系列文章目录> 本文将介绍如果使用Azure PowerShell,创建Azure Application Gateway URL Routing 请读者在使用之前,请先查看笔者之前的文章:Azure Application Gateway (3) 设置URL路由,熟悉相关的内容 注意:Azure Application Gateway必须在ARM模式下才可以创建. 另外PowerShell模式下,和Portal创建的不一样. PowerShel

For Microsoft Azure Network VNET to VNET Connection

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

VPC Peering 具有特定路由的配置

https://docs.aws.amazon.com/zh_cn/vpc/latest/peering/peering-configurations-partial-access.html 您可以配置 VPC 对等连接以便访问对等 VPC 内的部分 CIDR 块.特定 CIDR 块(如果 VPC 有多个 CIDR 块)或特定实例.在这些示例中,一个中心 VPC 与具有重叠 CIDR 块的两个或更多 VPC 对等.有关可能需要特定 VPC 对等连接配置的方案示例,请参阅VPC 对等方案.有关创建

Microsoft Azure中TrafficManager (流量管理器)的路由方式

目前Azure的流量管理器有三种可供选择的路由方式.尽管你可以在任何时间去选择任何路由方法,每个流量管理器的配置文件在同一个时间段只能使用一个路由方法. 值得注意的是,所有的流量路由的方法均包括端点监控.配置流量管理器配置文件指定最适合需求的流量路由方式之后,你需要配置监控设置.当监控配置正确,流量管理器将监视端点的状态,包括云服务和网站,不会发送流量到它认为是不可用的端点. 这三种流量管理器流量路由的方法是:(为了便于理解,这里都举出场景) 1,故障转移:你在相同或不同的Azure数据中心均有

华为echolife hg510a路由猫与磊科无线路由器连接方法

弄这个弄了不少时间,毕竟之前我也没怎么碰过路由器,这个方法也是经过很多次的尝试才出来的,下面说方法 首先是设置华为echolife hg510a,这个是叫做路由猫,也就是路由器和猫的合体,我们知道猫是调制解调器,是将复用到电话线的信号解调出来,我们称之为adsl上网(不少人称asdl),路由器起着转发功能,有这两个功能我们自然可以实现pppoe虚拟账号登陆.多台pc同时上网,设置好之后每条引出的网线就会自动分配IP,这样设置是为了让无线路由器能发挥功能.设置方法(参照网上的):HG510a工作模

【Ubuntu日常技巧】VirtualBox多网卡路由配置,保障虚拟机连接上外网

[背景]: 配置Ubuntu 虚拟机双网卡,一个是Host-Only网络,一个是桥接网络.当在虚拟机中同时连接到两个网络后,虚拟机能够ping通内部网络,不能ping通外部网络,如www.baidu.com. 1. 虚拟机网卡配置 2. 虚拟机内部网络配置 HostOnly网络配置: 桥接网络配置: 3.检查虚拟机网络 ping不通外网,查看路由表. 失败原因: 发现default路由是HostOnly 的网络,网段是56段的,不能与外网相通:将default路由修改为1段(192.168.1.