BGP EVPN

一、BGP EVPN 演进

1、静态配置VXLAN:静态VXLAN没有控制平面,通过数据平面的流量泛洪进行VTEP发现和主机信息(包括IP地址、MAC地址、VNI、网关VTEP IP地址)学习的,这种方式导致VXLAN网络存在很多泛洪流量。

2、静态方式配置VXLAN的问题
(1)、N台设备建立VXLAN隧道,手工配置方式最高达到 N*(N-1)/2 次头端列表配置。
(2)、静态VXLAN隧道只有数据转发平面,没有控制平面。
(3)、只能通过ARP广播的方式学习远端MAC地址。

3、BGP EVPN演进:为了解决静态VXLAN的问题,VXLAN引入了BGP EVPN作为控制平面,通过在VTEP之间交换BGP EVPN路由实现VTEP的自动发现、主机信息相互通告等,从而避免了不必要的数据流量泛洪。

二、BGP EVPN 基本概念

1、作用:

①、BGP EVPN作为VXLAN控制面协议
②、动态建立隧道
③、传递路由MAC、ARP、ip-prefix

2、BGP EVPN通过扩展BGP协议新定义了几种BGP EVPN路由, 在MP_REACH_NLRI属性中新定义了几种NLRI,称作EVPN NLRI

3、BGP EVPN路由可以用于传递VTEP地址和主机信息,因此BGP EVPN应用于VXLAN网络中,可以使VTEP发现和主机信息学习从数据平面转移到控制平面。

①、Type 2路由(MAC/IP路由):用于主机MAC地址/ARP/IP路由通告。
②、Type 3路由(Inclusive Multicast路由):用于传递二层VNI和VTEP IP地址信息,实现VTEP的自动发现和VXLAN隧道的动态建立,实现BUM报文转发。
③、Type 5路由(IP前缀路由):用于IP前缀路由通告,外部网络路由通告。

4、EVPN VPN-Instance :EVPN实例与BD进行绑定,BD下的MAC地址表项会通过BGP EVPN路由进行传递,在传递时会携带BD绑定的EVPN实例ERT值,对端收到之后对比本地EVPN实例的IRT值,将EVPN路由放入对应的EVPN实例路由表,同时解析EVPN路由表获取MAC地址表项,放入本端与该EVPN实例绑定的BD的MAC地址表中。

BGP EVPN插图

5、EVPN NLRI:EVPN NLRI通过路径属性MP_REACH_NLRI携带,地址族标识符(AFI)为25,代表L2VPN,子地址族标识符(SAFI)为70

BGP EVPN插图(1)

三、BGP EVPN路由

1、Type 2路由报文格式:

Type 2路由(MAC/IP路由):主要用于MAC地址通告、ARP信息通告以及主机IP路由通告。

BGP EVPN插图(2)

2、Type 2路由携带信息

在不同场景下,Type 2路由下带的内容不一样

BGP EVPN插图(3)

列举主机MAC地址通告,实现VXLAN同子网互访的场景:

BGP EVPN插图(4)

同子网主机MAC地址通告:

①、PC1产生数据流量并发往SW1。
②、SW1获知了PC1的MAC地址,它在MAC地址表中创建一个表项,记录该MAC地址、BD ID及入接口。
③、SW1根据该表项生成BGP EVPN路由并发送给SW2。该路由携带本端EVPN实例的RT值(扩展团体属性)以及Type 2路由( MAC路由)。在MAC路由中,PC1的MAC地址存放在MAC Address字段中,二层VNI存放在MPLS Label1字段中。
④、SW2收到SW1发来的BGP EVPN路由后,首先检查该路由携带的RT(类似MPLS VPN中的RT的概念),如果与本端EVPN实例的入站RT相等,则接收该路由,否则丢弃。在接收该路由后,SW2获得PC1的MAC地址、BD ID和SW1上VTEP IP地址(MP_REACH_NLRI中Next hop network address字段携带)的对应关系,并在本地的MAC表中生成MAC表项,其出接口需根据下一跳进行迭代,最终迭代结果是指向SW1的VXLAN隧道。

3、Type 3类路由报文格式

BGP EVPN插图(5)

4、Type 3路由描述

Type 3路由(Inclusive Multicast路由):

①、Type 3路由在VXLAN控制平面中主要用于VTEP的自动发现和VXLAN隧道的动态建立。
②、作为BGP EVPN对等体的VTEP,通过Inclusive Multicast路由互相传递二层VNI和VTEP IP地址信息。
其中,Originating Router’s IP Address字段为本端VTEP IP地址,MPLS Label字段为二层VNI。

建立VXLAN隧道
VTEP通过Type 3路由互相传递二层VNI和VTEP IP地址信息。如果对端VTEP IP地址是三层路由可达的,则建立一条到对端的VXLAN隧道。同时,如果对端VNI与本端相同,则创建一个头端复制列表,用于后续BUM报文转发。

BGP EVPN插图(6)

5、Type 5类路由报文格式

BGP EVPN插图(7)

6、Type 5类路由描述

Type 5路由(IP前缀路由):

①、该类型路由的IP Prefix Length和IP Prefix字段既可以携带主机IP地址,也可以携带网段地址。
②、当携带主机IP地址时,该类型路由在VXLAN控制平面中的作用与IRB类型路由是一样的,主要用于分布式网关场景中的主机IP路由通告。
③、当携带网段地址时,通过传递该类型路由,可以实现VXLAN网络中的主机访问外部网络。

通告IP前缀路由的应用场景: 对于VXLAN外部网络,VTEP可以通过Type 5类路由将外部路由通告到整个VXLAN网络中,用于指导VXLAN内部主机访问外部网络。

BGP EVPN插图(8)

四、BGP EVPN-VXLAN配置案例

BGP EVPN插图(9)

ACC1配置:

vlan batch 10
#
interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 10
#
interface GigabitEthernet0/0/2
 port link-type access
 port default vlan 10

ACC2配置:

vlan batch 10 20
#
interface GigabitEthernet0/0/2
 port link-type access
 port default vlan 10
#
interface GigabitEthernet0/0/3
 port link-type access
 port default vlan 20

Edge1配置:

vlan batch 10 13 20
#
evpn-overlay enable   //开启evpn
#
evpn
#
ip vpn-instance OA
ipv4-family
route-distinguisher 100:1
vpn-target 11:11 import-extcommunity evpn
vpn-target 33:33 import-extcommunity evpn
vxlan vni 11
#
bridge-domain 10
vxlan vni 10
evpn
route-distinguisher 100:1
vpn-target 1:1 export-extcommunity
vpn-target 11:11 export-extcommunity
vpn-target 1:1 import-extcommunity
#
interface Vbdif10
ip binding vpn-instance OA
ip address 10.1.1.254 255.255.255.0
mac-address 0000-0500-0001
vxlan anycast-gateway enable   //开启分布式VXLAN网关
arp collect host enable   //开启arp收集主机信息
#
interface Vlanif13
ip address 13.1.1.1 255.255.255.0
#
interface GE1/0/0
undo shutdown
port link-type trunk
port trunk allow-pass vlan 13
#
interface GE1/0/1
undo shutdown
port link-type trunk
#
interface GE1/0/1.10 mode l2
encapsulation dot1q vid 10
bridge-domain 10
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
interface Nve1
source 1.1.1.1
vni 10 head-end peer-list protocol bgp
#
bgp 100
peer 3.3.3.3 as-number 100
peer 3.3.3.3 connect-interface LoopBack0
#
ipv4-family unicast
peer 3.3.3.3 enable
#
l2vpn-family evpn
policy vpn-target
peer 3.3.3.3 enable
peer 3.3.3.3 advertise irb
#
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 13.1.1.1 0.0.0.0

Edge2配置:

vlan batch 10 20 23
#
evpn-overlay enable
#
ip vpn-instance OA
ipv4-family
route-distinguisher 100:1
vpn-target 11:11 import-extcommunity evpn
vpn-target 33:33 import-extcommunity evpn
vxlan vni 22
#
bridge-domain 10
vxlan vni 10
evpn
route-distinguisher 100:1
vpn-target 1:1 export-extcommunity
vpn-target 11:11 export-extcommunity
vpn-target 1:1 import-extcommunity
#
bridge-domain 20
vxlan vni 20
evpn
route-distinguisher 200:1
vpn-target 2:2 export-extcommunity
vpn-target 11:11 export-extcommunity
vpn-target 2:2 import-extcommunity
#
interface Vbdif10
ip binding vpn-instance OA
ip address 10.1.1.254 255.255.255.0
mac-address 0000-0500-0001
vxlan anycast-gateway enable
arp collect host enable
#
interface Vbdif20
ip binding vpn-instance OA
ip address 10.1.2.254 255.255.255.0
mac-address 0000-0500-0002
vxlan anycast-gateway enable
arp collect host enable
#
interface Vlanif23
ip address 23.1.1.2 255.255.255.0
#
interface GE1/0/0
undo shutdown
port link-type trunk
port trunk allow-pass vlan 23
#
interface GE1/0/1
undo shutdown
port link-type trunk
#
interface GE1/0/1.10 mode l2
encapsulation dot1q vid 10
bridge-domain 10
#
interface GE1/0/1.20 mode l2
encapsulation dot1q vid 20
bridge-domain 20
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
#
interface Nve1
source 2.2.2.2
vni 10 head-end peer-list protocol bgp
vni 20 head-end peer-list protocol bgp
#
bgp 100
peer 3.3.3.3 as-number 100
peer 3.3.3.3 connect-interface LoopBack0
#
ipv4-family unicast
peer 3.3.3.3 enable
#
l2vpn-family evpn
policy vpn-target
peer 3.3.3.3 enable
peer 3.3.3.3 advertise irb
#
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 2.2.2.2 0.0.0.0
network 23.1.1.2 0.0.0.0

Border配置:

vlan batch 13 to 14 23
#
evpn-overlay enable
#
ip vpn-instance OA
ipv4-family
route-distinguisher 100:1
vpn-target 33:33 export-extcommunity evpn
vpn-target 11:11 import-extcommunity evpn
vxlan vni 33
#
interface Vlanif13
ip address 13.1.1.3 255.255.255.0
#
interface Vlanif14
ip binding vpn-instance OA
ip address 14.1.1.1 255.255.255.0
#
interface Vlanif23
ip address 23.1.1.3 255.255.255.0
#
interface GE1/0/0
undo shutdown
port link-type trunk
port trunk allow-pass vlan 13
#
interface GE1/0/1
undo shutdown
port link-type trunk
port trunk allow-pass vlan 23
#
interface GE1/0/2
undo shutdown
port link-type trunk
port trunk allow-pass vlan 14
#
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
#
interface Nve1
source 3.3.3.3
vni 10 head-end peer-list protocol bgp
vni 20 head-end peer-list protocol bgp
#
bgp 100
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0
#
ipv4-family unicast
peer 1.1.1.1 enable
peer 2.2.2.2 enable
#
ipv4-family vpn-instance OA
import-route static
advertise l2vpn evpn
#
l2vpn-family evpn
undo policy vpn-target
peer 1.1.1.1 enable
peer 1.1.1.1 advertise irb
peer 1.1.1.1 reflect-client
peer 2.2.2.2 enable
peer 2.2.2.2 advertise irb
peer 2.2.2.2 reflect-client
#
ospf 1 router-id 3.3.3.3
area 0.0.0.0
network 3.3.3.3 0.0.0.0
network 13.1.1.3 0.0.0.0
network 23.1.1.3 0.0.0.0
#
ip route-static vpn-instance OA 0.0.0.0 0.0.0.0 14.1.1.2
#

AR1配置:

vlan batch 14
#
interface Vlanif14
ip address 14.1.1.2 255.255.255.0 
#
interface Ethernet2/0/0
port link-type trunk
port trunk allow-pass vlan 14
#
ip route-static 10.1.1.0 255.255.255.0 14.1.1.1
ip route-static 10.1.2.0 255.255.255.0 14.1.1.1

验证结果:

ping PC2和PC3

BGP EVPN插图(10)
ping出口

BGP EVPN插图(11)

BGP EVPN插图(12)

BGP EVPN插图(13)
BGP EVPN插图(14)

BGP EVPN插图(15)

BGP EVPN插图(16)

BGP EVPN插图(17)
BGP EVPN插图(18)
BGP EVPN插图(19)

BGP EVPN插图(20)

抓包:

BGP EVPN插图(21)

BGP EVPN插图(22)

PC Ping 14.1.1.2
BGP EVPN插图(23)

PC1 ping PC3
BGP EVPN插图(24)

本站无任何商业行为
个人在线分享 » BGP EVPN
E-->