设为首页 收藏本站
查看: 1025|回复: 0

[经验分享] Azure通过Vnet Peering和用户自定义路由(UDR)实现hub-spoken连接

[复制链接]

尚未签到

发表于 2017-6-30 19:15:06 | 显示全部楼层 |阅读模式
  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的情况下:
DSC0000.png

  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)
DSC0001.png

  如果需要各个Vnet间都相互连接,需要在各个Vnet间都配置Vnet Peering关系,不但需要大量的工作(n*(n-1)个peering配置),而且有可能碰到Vnet Peering的上限。
  本文将介绍,如上文场景中,Vnet1、Vnet2和Vnet3间不需要配置Vnet Peering,而采用用户自定义路由的方式,实现Hub-Spoken结构的Vnet互通。
  一、创建3个Vnet
  如下图所示,创建3个Vnet,IP地址互相不重叠:
DSC0002.png

  二、在Vnet-BGP-2中创建VPN Gateway
  配置如下图:
DSC0003.png

  三、配置Vnet Peering
  配置成如下图所示的结构:Vnet-BGP-1 <-> Vnet-BGP-2, Vnet-BGP-3 <-> Vnet-BGP2
DSC0004.png

  具体配置如下:
  Vnet-BGP-1的配置:
DSC0005.png

  Vnet-BGP-2的配置:
DSC0006.png

  同理配置Vnet-BGP-2和Vnet-BGP-3的Vnet Peering关系。
  配置完成后,在Vnet-BGP-1中的VM1-1、VM3-1都可以ping通Vnet-BGP-2中的Gateway地址:



[iyunv@hwvntp01 ~]# 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
[iyunv@hwvntp01 ~]# 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


[iyunv@hwvntptest02 ~]# 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
[iyunv@hwvntptest02 ~]# 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不通:



[iyunv@hwvntp01 ~]# 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:
DSC0007.png

  这个路由表中,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:
DSC0008.png

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



[iyunv@hwvntp01 ~]# 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架构。
DSC0009.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-389778-1-1.html 上篇帖子: 有关Azure存储帐号监视器中的度量值 下篇帖子: [Azure][CLI][03]File
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表