EVPN ORF
产生原因
随着EVPN网络上承载业务量的不断增加,用户数量也在不断增加,因此EVPN网络中的BGP-EVPN对等体间会相互发送大量的EVPN路由,即使远端对等体上没有RT值匹配的EVPN实例,本地PE设备也会向对端发送EVPN路由。为了减少网络的负载,用户希望每台PE设备仅接收到自己需要的路由。而如果为不同的用户配置单独的出口路由策略,则会大大提高运维成本。此时用户可以在网络中部署EVPN ORF(Outbound Route Filtering)功能解决这个问题。
实现过程
在部署EVPN ORF功能后,EVPN网络中的PE设备将本地EVPN实例的入方向VPN-Target(IRT)和原始AS号以ORF路由的形式发送给其它PE设备或BGP EVPN路由反射器,对端设备会根据这些路由构造出口策略,使PE只能收到本地需要的路由,降低PE设备的接收压力。
如图12-60所示,该组网为EVPN ORF的基本应用组网,其中各个设备皆支持EVPN ORF功能。其中PE1、PE2和PE3与路由反射器RR都建立了BGP EVPN邻居关系,且PE1、PE2和PE3都为RR的客户端。各个PE设备上都部署了EVPN实例和RT值。
在使能EVPN ORF功能之前,RR将接收到PE1的各个EVPN实例的路由全部发布给PE2和PE3,但是其中PE2只能接收出方向VPN-Target(ERT)为1:1的路由,而PE3也只能接收ERT为2:2的路由,即PE2和PE3都会接收到自己不需要的路由,并对这些路由做了丢弃处理,浪费了设备资源。
在所有设备使能了EVPN ORF能力且PE设备和RR之间在BGP-VT地址族视图下使能了BGP邻居关系之后,BGP EVPN邻居之间会进行EVPN ORF能力协商。所有设备将本地EVPN实例的IRT以ORF路由的形式发送给BGP EVPN邻居,然后所有设备会根据自己收到的ORF路由构造出口策略。策略构造完成后,PE1仅会将EVPN1和EVPN4的路由发送给RR,而RR也仅会将ERT为1:1的路由发布给PE2,同时将ERT为2:2的路由发布给PE3。
BGP-VT地址族获取本地设备上配置的IRT时是不区分IRT来自于哪个类型的实例的,即不会区分IRT是来源于EVPN实例还是其他类型的VPN实例。在某些组网中,部分设备不支持EVPN ORF功能,如果在此类组网中使能EVPN ORF功能,可能会导致EVPN业务无法正常运行。用户可以利用BGP-VT地址族的这个特点解决此问题。
同样以图12-60为例,PE1、PE2和PE3与RR都建立了BGP EVPN邻居关系,且PE1、PE2和PE3都为RR的客户端。假设PE1、PE2和RR都支持EVPN ORF功能,而PE3设备由于版本较旧,并不支持EVPN ORF功能。因此在网络中使能EVPN ORF功能并建立BGP-VT邻居关系后,PE3不会向RR发送ORF路由,所以PE1也不会从RR收到ERT为2:2的ORF路由。这将导致PE1不会将EVPN4的路由发送给RR,影响了EVPN4和EVPN2之间业务的正常运行。由于BGP-VT地址族不区分IRT所属实例类型,所以用户可以在PE3上部署L3VPN实例,IRT和ERT也设置为2:2。设置完成后,PE3会向RR发布IRT为2:2的ORF路由,然后RR会将此ORF路由发布给PE1。PE1收到ORF路由后会修订出口路由策略,最终使PE1可以对外发布EVPN2的路由。
对于上面的场景,除了创建L3VPN实例的方法之外,用户还可以在RR上配置向PE1和PE3发布缺省的ORF路由,并删除RR和PE3间的BGP-VT邻居关系。这样配置完成后,PE1、PE2、PE3均向RR发布所有的路由,RR会向PE1发布ERT匹配1:1和2:2的路由,向PE2发布ERT匹配1:1的路由,而RR会向PE3发布所有的路由。
对于上面的场景,如果网络中除了部署EVPN业务还部署了L3VPN业务,则不能再使用上面的方法,否则会影响L3VPN业务的正常运行。如图12-61所示,该组网中仅有PE3不支持EVPN ORF功能,这将导致网络中使能EVPN ORF功能后EVPN业务无法正常运行,如果使用创建L3VPN实例的方法,则会导致新创建的L3VPN实例从RR接收到其他PE发来的L3VPN路由,这样会对L3VPN业务产生影响。在这种情况下,用户可以通过配置使RR不对PE3进行IRT相关的路由过滤,既保证EVPN业务正常运行,也不会对L3VPN业务产生影响。
使用价值
降低对带宽占用(发布的路由减少了)。
节约CPU和内存等系统资源。