TYPE 1路由携带ESI标签用于实现水平分割
TYPE 2路由携带单播标签指导单播流量转发
TYPE 3路由携带BUM标签指导BUM流量转发,但TYPE3路由未携带ES相关信息
TYPE 4路由携带ESI用于DF选举,但TYPE 4路由未携带任何标签信息
- 第一层由IGP把路由打通
- 第二层全网部署MPLS
- 设备之间配置EVPN的源,BGP EVPN地址族,构建控制面的创建
- 构建PE后面的实例,两两之间就会传递BUM流量标签,用于对BUM流量的标识,用3类路由进行传递
- 绑定ESI,产生4类路由,向所有人通告自己连接到了哪个ESI,与自己在一个ESI的设备进行记录,进行选举DF
- 传递1类路由,主要是针对ESI这张表进行补充,补充一个标签,还会告诉其他设备用作别名,此时VPN构建完成
- PE侧对源地址进行学习,将学习到的MAC地址变成一个路由发给所有邻居
TYPE1 Ethernet A-D Route |
别名 MAC地址批量撤销 多活指示 通告ESI标签 |
环路避免 快速收敛 负载分担 |
TYPE2 MAC/IP Advertisement Route |
MAC地址学习通告 MAC/IP绑定 MAC地址移动性 |
基于每个MAC的策略 ARP抑制 主机迁移 |
TYPE3 Inclusive Multicast Route |
组播隧道端点自动发现 |
支持BUM流量转发 |
TYPE4 Ethernet Segment Route |
ES成员自动发现 DF选举 |
多活,单活支持 |
Ethernet A-D路由
- 以太自动发现路由两种类型
- Ethernet A-D per ES route:主要用于快速收敛,冗余模式和水平分割(有扩展标签)EthTagID全1
- Ethernet A-D per EVI route:主要用于别名(没有扩展标签)EthTagID为0
NLRI格式 |
字段说明 |
|
RD |
||
Ethernet Segment Identifier(ESI) |
PCE与某一CE的连接的唯一标识 |
|
Ethernet Tag ID |
该字段为Ethernet Tag标识,RFC建议最后20bit可以为VLAN ID |
|
MPLS Label |
ES路由该字段为全0,EVI路由上该字段为VPN单播流量负载分担转发时使用的MPLS 标签 |
扩展团体属性
Ethernet A-D per ES route(有扩展标签)
快速收敛
- 当PE检测到连接的CE故障,PE撤销对应的MAC地址表,并发送Ethernet A-D per ES route,知会其他PE撤销对于的MAC地址表。
- ESI Label扩展团体必须被 Ethernet A-D per ES route 携带
PE1检测到链路故障,向PE3通过A-D ES路由发送我到CE1断了,此时PE3就会把所有从PE1进入的路由一下全部删除
水平分割
在CE多归接入到PE场景下,如果CE的链路为ALL-Active模式,CE发送一个PE的BUM报文可能被另一个PE环回,所以需要水平分割解决这个问题。
水平分割由所有PE通告携带ESI Label扩展团体属性的Ethernet A-D per ES route实现。
Ethernet A-D per EVI route(无扩展标签)
别名
- CE多归多活场景时,可能存在多归的PE中有PE没有学习到CE的MAC地址的情况,导致远端PE只能接收到一个PE的MAC/IP通告,从而无法时间PE节点之间路径的负载均衡。别名通过Ethernet A-D per EVI rotue解决这个问题。
- 如下图,假设PE1学习到site1的地址而PE2没有学到,则PE1将通告MAC/IP路由包含具体的信息,PE2通过 Ethernet A-D per EVI route路由通告可达性。因此PE3认为Site1 PE和PE2均可达。
如图,PE1通过MAC/IP route路由将自己连接了CE1告知CE2,如此CE2就会按照通告的路由将下一跳指向PE1设备,这样就无法实现负载均衡。现在PE2因为也连接了CE1,他会使用A-D EVI路由告知PE3,本设备也连接了CE1,此时PE3就会认知到PE1与PE2都连接了CE1,这样转发的时候,PE3就可以分析形成负载均衡
MAC/IP路由
主要用于MAC和IP地址通告
注意,携带了ESI,用于与TYPE1联合完成别名功能
MAC迁移扩展团体属性
永远只关心序列号最大的设备
Inclusive Multicast路由
集成多播路由,用于处理BUM报文。
当PE之间的BGP邻居关系建立成功之后,PE之间会传递集成多播路由,集成多播路由可以携带本端PE上EVPN实例的RD和RT值,以及sourece ip和PMSI信息。PMSI和RT值承载在路由的属性信息中,RD和Source IP承载在路由的NLRI信息中。
NLRI格式 |
字段说明 |
RD |
该字段为EVPN实例下设置的RD值 |
Ethernet Tag ID |
该字段为当前设备上的VLAN ID |
IP Address Length |
PE上配置的源地址长度 |
Orginating Router's IP Address |
PE上配置的源地址 |
PMSI属性
PMSI用于携带多播报文传输所使用的的隧道类型和隧道标签信息
当一台PE设备收到多播流量后,会将多播流量以点到多点的形式转发给其他PE设备。PE设备之间通过集成多播路由可以建立传送流量的隧道。
Ethernet Segment Route
以太网段路由:主要用于DF选举
以太网段路由可以携带本端PE的ESI值,Source IP地址和RD值,用来实现连接到相同CE的PE设备之间互相自动发现
ES-Import Route Target
用于标识是单归场景还是多归场景(双归场景一般会绑定Eth-trunk形成负载)
EVPN定义的被Type4路由所携带的扩展团体属性
在EVPN多归场景下,BGP EVPN通过ES路由时候必须同时携带ES-Import RT,用于实现ES路由过滤
ES路由过滤:ES-Import RT只允许连接相同站点的PE引入TYPE 4路由。RT被用于在所有连接相同站点PE上引入Ethernet Segment路由
EVPN接入原理
PE与CE的绑定
Port Based模式
把一个物理接口直接绑定到EVPN中
VLAN Based模式
建立二层子接口
VLAN Bundle模式
VLAN-Aware Bundle模式
根据数据帧自动感知应该属于哪一个BD
第5类路由,IP Prefix Route
现网中不会单独实现EVPN技术,因为这个EVPN还是需要使用MPSL技术的支持,底层需要配置IGP和MPLS LDP,在一个大型网络中,有可能全网不会开MPLS,如果几千台设备都开启MPLS这是不合适的,大部分VPN会用到数据中心,数据中心是不开MPLS的,单独使用MPLS的场景并不多。
EVPN可以传递MAC,IP,ARP,一个EVPN既可以搞二层也可以搞三层,因为EVPN是TLV架构的,还可以增加TYPE 5路由,直接用一个EVPN地址族增加5类,6类路由的,现在EVPN也可以用来传递IPSEC的IKE秘钥。EVPN不挑上层协议。可以传的内层标记也不仅仅是一个标签。
现在是草案,IP前缀路由,用于在网络上中传播从接入侧网络收到的主机IP地址信息或主机IP所在网段信息
1. evpn source-address 1.1.1.1 2. 3. bgp 123 4. peer 3.3.3.3 as-number 123 5. peer 3.3.3.3 connect-interface loopback 0 6. l2vpn-family evpn 7. peer 3.3.3.3 enable 8. 9. evpn vpn-instance vpn1 10. route-distinguisher 1:1 11. vpn 1:1 export-extcommunity 12. vpn 1:1 import-extcommunity
1. EVPN邻居已经建好 2. ip vpn-instance vpn2 3. ipv4-family 4. route-distinguisher 2:2 5. vpn-target 2:2 export-extcommunity evpn 6. vpn-target 2:2 import-extcommunity evpn 7. evpn mpls routing-enable //用evpn的方式去做传递,传递的是mpls标签路由(正常使用VPNV4传递) 8. 9. int l1 10. ip binding vpn-instance vpn2 11. ip address 10.1.1.1 255.255.255.255 12. int l1 13. ip binding vpn-instance vpn2 14. ip address 10.2.2.2 255.255.255.255 15. 16. bgp 123 17. ipv4-family vpn-instance vpn2 18. import-route direct 19. advertise l2vpn evpn //以二层VPN EVPN方式通告