34

VXLAN篇之EVPN

 4 years ago
source link: https://www.sdnlab.com/23504.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

作者简介:张磊,思科原厂8年多technical consulting engineer,精通思科数据中心/园区网产品及技术;精通SAN网络架构及产品;熟悉广域网产品及技术。

上篇:VXLAN篇之初识

书接上回!上回说到了Flood & Learn存在着一些不足,所以,才有了后来的BGP EVPN来实现VXLAN的control-plane。既然说到了这,让我们先看一张对比图:

vxlan-evpn-1.jpg

这么看,是不是Flood&Learn与EVPN之间的相同,不同之处就一目了然了?

BGP EVPN可以做些什么?总结起来说,基本的也就是以下这几个功能:

  • 通过MP-BGP宣告主机MAC/IP
  • 通过MP-BGP实现VTEP Peer 自动发现和认证
  • 分布式网关
  • ARP 抑制
  • 头端自动发现的入站复制

1、通过MP-BGP宣告主机MAC/IP:

vxlan-evpn-2-1.jpg

学过MPLS VPN的朋友一定对MP-BGP不陌生,这里其实可以把两个VTEP节点看成是两个PE设备。两个PE设备建立MP-BGP从而实现路由传递这样理解起来,是不是容易多了?

在VXLAN环境中,我们通常采用Spine-Leaf架构,然后通过BGP的update报文来传递路由:

vxlan-evpn-3.jpg

既然,我们要使用BGP,那么,我们就不得不遵循BGP的规定:要么iBGP full mesh互连;要么使用RR(Route Reflector)。从成本的角度来说,肯定使用RR会更好一些。同时,考虑到冗余性、避免单点故障,我们通常使用双RR(当然,你要非抬杠说两个RR同时down了怎么办?那你可以再多配几个RR也行;那万一所有RR就这么巧,都同时down了怎么办呢?恭喜你,快去买彩票~)。

接下来,我们将其展开来看:

vxlan-evpn-4.jpg

如上图所示,VTEP-1会将Host-1的信息(包括MAC、IP、VNI、VTEP)用EVPN Type-2(L2VPN EVPN family中的MP-BGP Update)发送给RR,RR收到之后将其反射给其他VTEP节点。这样,VTEP-2,VTEP-3就知道了Host-1的信息。

EVPN Type-2:MAC/IP路由。通过Type-2路由将主机MAC/IP信息传递至远端VTEP。

当主机移动时,又会是什么样呢?Let’s See:

vxlan-evpn-5.jpg

2、通过MP-BGP实现VTEP Peer 自动发现和认证:

EVPN Inclusive Multicast (IM) NLRI:

vxlan-evpn-6-1.jpg

RD: Route Distingusher for the EVPN instance
Ethernet Tag ID: VNI for the Bridge Domain
IP address Length: 1 Byte
Originating Router IP address: VTEP IP address of the advertising endpoint<<<<<<<<<<<通过这个字段实现VTEP Peer的发现

来看一个真实的NLRI报文:

vxlan-evpn-7-1.jpg

EVPN Type 3:Inclusive Multicast路由。该类路由在VXLAN控制平面中用于VTEP的自动发现和VXLAN隧道的动态建立。作为BGP EVPN的对等体的VTEP,通过Inclusive Multicast路由互相传递二层VNI和VTEP IP地址信息。其中,【Originating Router IP Address】字段为本端VTEP IP。如果对端VTEP IP是三层路由可达,则建立一条VXLAN隧道。

3、分布式网关:

这个“分布式网关”名字看着挺玄的。。。其实,就是Distributed Anycast Gateway译文。是不是直接看Anycast Gateway会比较好理解一些?哈哈~

vxlan-evpn-8.jpg

首先肯定是要做好VLAN与VNI的映射,然后将所有的VTEP上针对SVI(也就是interface VALN接口:主机或者虚拟主机的网关),都配置相同的anycast gateway虚拟IP和虚拟MAC,即可。

它主要好处简单说就是:无论主机或者虚拟连接到哪一个VTEP(leaf节点),主机或者虚拟主机的网关信息都不变。

4、ARP抑制:

vxlan-evpn-9.jpg

这个其实,很好理解:Host-1想跟Host-2通信,Host-1就必须知道Host-2的ARP,怎么知道的?发ARP Request啊!VTEP-1收到了Host-1发来的ARP Request,VTEP-1不会着急忙慌的将这个ARP Request发出去。它会先查自己本地的缓存表,如果本地有Host-2的信息,则VTEP-1将这个ARP Request拦截并给Host-1回复一个Host-2的ARP信息。这就是ARP抑制!它无非就是避免广播流量在transit网络中大量传播,消耗资源。再通俗点说,自己能搞定的事,就别老麻烦别人了。。。

配置ARP抑制的方法:

vxlan-evpn-10.jpg

5、头端复制(ingress replication):

还记得Flood & Learn吗?在Flood & Learn机制下,BUM(broadcast, unknown unicast and multicast)流量会通过Underlay组播的形式发送。那么,到了BGP EVPN,就不需要了:

vxlan-evpn-11.jpg

配置起来也很简单,如下图:

12.jpg

最后,关于VXLAN BGP EVPN,基本的情况就是这样啦~那么,仅仅有这些,就真的足够了吗?如果需要和外部通信时,又该怎么办呢?什么又是对称IRB呢?和vPC混搭之后又是什么样呢?

敬请期待下一期~VXLAN篇之EVPN进阶!!!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK