VPLS和EVPN初了解

EVPN基本概念

MP-BGP

产生背景

为什么要有MP-BGP?

MP-BGP:多协议扩展BGP。传统的BGP兼容性并不好,仅支持IPV4的单播报文,那对于MPLS的支持、IPV6的支持都是不足,所以有了MP-BGP,在传统VPN的基础上扩展了它的兼容性,让它更好的支持MPLS、IPV6,还有用于SD-WAN的EVPN、L3VPN等。

为什么传统的BGP-4无法传递IPV6的信息

传统BGP,即BGP-4当中有三个信息:

  1. NEXT_HOP
  2. AGGREGATOR
  3. NLRI

以上三个字段都是关于IPV4的,IPV6的地址的与IPV4并不一样的,比如NEXT_HOP在BGP-4的报文当中体现出来就是一个32位的IPV4地址,而IPV6的IP地址是128位,IPV6的地址不能直接就写在IPV4地址原来的位置上,同样的AGGREGATOR是与IPV4网段聚合相关的,聚合之后也是一个IPV4的网段,与IPV6也具有很大的不同;NLRI(network layer reachability information)网络层可达信息,其实里面传递的就是一个IPV4的路由信息,如下图所示,这三个字段全都是与IPV4强关联,强绑定的, 所以在其它的网络类型当中这三个字段并不能直接使用

image-20230404225014052

相关字段

MP-BGP扩展后的新字段:MP_REACH_NLRI和MP_UNREACH_NLRI

REACH:可达

MP_REACH_NLRI 多协议可达NLRI
MP_UNREACH_NLRI 多协议不可达NLRI

MP-BGP新增一个大的字段MP_REACH_NLRI,网络可达信息信息,为什么说此字段是大字段,因为此字段下还有其它的字段,比如将传统BGP-4当中的NEXT-HOP和NLRI都移动了此字段之下,通过MP_REACH_NLRI此字段其实就相当于已经抹去了BGP-4的特殊性,通过MP_REACH_NLRI字段使得MP-BGP可以兼容更多的网络类型,如下所示:

image-20230404225021946

整体报文结构发生了变化,如下所示:

# BGP-4
	## NEXT-HOP
	## NLRI

# MP-BGP
	## MP_REACH_NLRI
		### NEXT_HOP
		### NLRI

在路由撤销时BGP-4与MP-BGP使用字段不同

撤销使用字段 所处报文类型
BGP-4 withdrawn routes Update
MP-BGP MP_UNREACH_NLRI Update

image-20230404225030560

总结

从BGP-4到MP-BGP其实就是调整了报文结构,让BGP的报文结构有更强大的兼容性,扩展性。为了方便理解我们可以类比成一个新很简单的例子,小明第一学期学习了windows server相关的技术,在小明的笔记目录当中都是这样的:

  • windows server 2022—NAT
  • windows server 2022—Firewall
  • windows server 2022—VPN
  • ……

到了第二学期,小明又学习LINUX系统的相关技术,发现在LINUX系统当中也有NAT、Firewall、VPN这些技术,如果想把第一学期和第二学期学习的内容放到一起,我们就可心重新安装笔记目录结构变成这样:

  • NAT
    • windows server 2022
    • centos
  • Firewall
    • windows server 2022
    • centos
  • VPN
    • windows server 2022
    • centos

相比于第一种目录结构,无疑第二种目录结构的兼容性更强,小明以后学习UNIX的时候,完全可以继续使用第二种目录结构,如下所示:

  • NAT
    • windows server 2022
    • centos
    • UNIX
  • Firewall
    • windows server 2022
    • centos
    • UNIX
  • VPN
    • windows server 2022
    • centos
    • UNIX

VPLS

VPLS(virtual private LAN service)虚拟专用局域网服务,其实就是VPN,而且是二层VPN,如下所示:

image-20230404225048533

如上图所示, 这是一个二层的VPN网络。VPLS技术它将中间的路由设备整体看做是一个二层交换机,不同地区的相同vlan可以实现二层直接通信,如下图所示:

image-20230404225042048

我们知道同网段通信要进行广播,而同网段同地域情况下通常带宽资源充足,这么做没什么大问题,但在VPLS当中,跨地域马上进行通信时,MAC地址学习依然是是通过广播报文在广域网当中转发,这样太浪费带宽和时间,我们能不能提供把MAC地址提前准备好呢?其实完全可以在数据通信之前提前把MAC地址表在控制层准备好(EVPN),这样的话,就不会在马上要通信的时候还要在广域网上进行广播,EVPN就是这个思路。

  • VPLS总结
    • VPLS技术主要的局限性在于要求站点间必须是MPLS网络。它的配置较为复杂,维护工作量较大。
    • VPLS的控制平面是通过泛洪建立的,效率较低,浪费广域网带宽。

EVPN

基本概念

EVPN技术介绍-新华三集团-H3C

EVPN全称是Ethernet Virtual Private Network,由RFC7432(BGP MPLS-Based Ethernet VPN)定义。从名字上看,这是一个基于BGP和MPLS的L2 VPN。虽然这是一个2015年才有编号的RFC,但当它还是草案时,很多厂商已经开始实现并使用EVPN。

在EVPN架构中,PE之间的MAC/IP地址学习是基于控制平面的,采用MP-BGP协议通告MAC/IP的可达性,其策略控制非常类似于IP VPN。这种基于控制平面的学习能够对MAC/IP的学习过程提供更强的控制能力,因此具有较好的扩展性,并能维护主机或虚拟机群彼此间的隔离性,解决了设备多归属或网络多归属接入时的负载分担问题,改善了网络出现故障时的收敛时间。EVPN定义了一套通用的控制层面,随着EVPN技术的扩展,EVPN也被用来传递IP路由信息、作为VXLAN等Overlay网络技术的控制层、作为数据中心互联的控制层等作用。但数据层面可以使用不同的封装技术,他们的关系如下图所示:

image-20230404225058910

EVPN并不是一种协议,而是与IPSEC类似是一种框架,EVPN的产生的时间比较晚,使用比较先进设计,借鉴了SDN的思路理念,实现了转控分离,也就是说是EVPN分为转发层面和数据层面:

  • 控制层面:MP-BGP
  • 转发层面:MPLS、VXLAN、GRE等

EVPN的数据层面可以使用不同的封装技术,这一点类似于SSL,位于应用层与传输层之间,可以为众多的应用层协议提供加密支持。EVPN的控制层面不仅仅可以传递路由信息,还有MPLS当中的LDP、ARP广播等,无论二层还是三层统统能提供支持,拥有极强的兼容性,我们会在后续的MPLS、VXLAN课程当中再次看到EVPN技术。

我们之前在谈VPLS的时候说传递ARP二层信息非常消耗资源,那EVPN是怎么解决的?其实很简单,EVPN通过控制层面提前把转发数据需要的二层的MAC地址或IP信息加载完毕再进行数据的转发,就像MPLS VPN一样,先运行LDP把数据转发需要的标签信息提前加载完成,这样在数据交互的时候就不再再临时发送ARP广播如下所示:

image-20230404225106325

应用场景

  1. 在园区网和数据中心当中的应用,在不同的底层网络当中使用VXLAN与控制平面EVPN相结合,EVPN负责为VXLA提供关于ARP广播、MAC地址的支持,如下图所示:

image-20230404225113883

  1. 在SD-WAN当中的使用,EVPN的转控分离与SD-WAN简直是绝配,SD-WAN也是转控分离,SD-WAN直接利用EVPN的控制层面传递三层路由信息,为接下来建立GRE OVER IPSEC提供支持,如下所示:

image-20230404225126937

posted @ 2023-04-04 22:53  张贺贺呀  阅读(522)  评论(0编辑  收藏  举报