配置Eth-Trunk子接口接入普通EVPN E-Lan双活示例
配置在CE双归场景下接入侧网络使用子接口接入PE的组网示例。
组网需求
如图12-41所示:Site1和Site2内为二层网络,为了实现通过骨干网使不同Site间相互通信,可以在网络中配置EVPN功能。其中各个PE设备上创建EVPN实例用于存储CE或远端PE发来的EVPN路由,RR设备将配置成路由反射器,用于反射EVPN路由。为了使BUM流量以负载分担的形式通过PE1和PE2向CE1传输,因此需要在PE1和PE2上配置ETH-Trunk子接口连接CE1,并配置基于VLAN选举DF功能。
配置接入侧接口状态影响DF选举功能。
配置以太网段路由延迟生成功能。
配置路由分包发送功能。
配置注意事项
在配置过程中,需注意以下事项:
同一EVPN实例的Export VPN-Target列表与其它站点的Import VPN-Target列表有共同的VPN-Target,Import VPN-Target列表与其它站点的Export VPN-Target列表有共同的VPN-Target;
PE上配置的源地址建议为本地Loopback地址。
配置思路
采用如下的思路进行配置:
在骨干网上配置IGP实现各个PE以及RR设备之间的互通。
在骨干网上配置MPLS基本能力和MPLS LDP,建立MPLS LSP。
配置PE上的EVPN实例。
配置PE上的源地址。
配置PE上与CE相连的子接口。
配置PE上与CE相连的子接口绑定EVPN实例。
配置各个PE与CE接口上的ESI。
配置RR与PE间的BGP EVPN对等体关系,并在RR上指定各个PE为其反射器的客户机。
配置CE与PE之间相互通信。
配置基于VLAN进行DF选举功能和接入侧链路状态影响DF选举功能。
配置PE1和PE2上接入侧接口联动BFD会话,提升接入链路故障时的DF切换速度。
数据准备
为完成此配置例,需准备如下的数据:
EVPN实例名称evpna、evpnb。
各个PE的EVPN实例evpna的RD值为100:1、200:1、300:1,RT值为1:1。evpnb的RD值为100:2、200:2、300:2,RT值为2:2。
操作步骤
- 按图12-41配置PE和RR的各接口地址,具体配置请参见配置文件
- 在骨干网上配置IGP实现各个PE以及RR设备之间的互通。本例中IGP为OSPF为例进行说明
# 配置PE1。
[~PE1] ospf 1
[*PE1-ospf-1] area 0
[*PE1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[*PE1-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0
[*PE1-ospf-1-area-0.0.0.0] commit
[~PE1-ospf-1-area-0.0.0.0] quit
[~PE1-ospf-1] quit
# 配置PE2。
[~PE2] ospf 1
[*PE2-ospf-1] area 0
[*PE2-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[*PE2-ospf-1-area-0.0.0.0] network 2.2.2.2 0.0.0.0
[*PE2-ospf-1-area-0.0.0.0] commit
[~PE2-ospf-1-area-0.0.0.0] quit
[~PE2-ospf-1] quit
# 配置PE3。
[~PE3] ospf 1
[*PE3-ospf-1] area 0
[*PE3-ospf-1-area-0.0.0.0] network 10.3.1.0 0.0.0.255
[*PE3-ospf-1-area-0.0.0.0] network 4.4.4.4 0.0.0.0
[*PE3-ospf-1-area-0.0.0.0] commit
[~PE3-ospf-1-area-0.0.0.0] quit
[~PE3-ospf-1] quit
# 配置RR。
[~RR] ospf 1
[*RR-ospf-1] area 0
[*RR-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[*RR-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[*RR-ospf-1-area-0.0.0.0] network 10.3.1.0 0.0.0.255
[*RR-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0
[*RR-ospf-1-area-0.0.0.0] commit
[~RR-ospf-1-area-0.0.0.0] quit
[~RR-ospf-1] quit
配置完成后,PE1、PE2、PE3和RR之间应能建立OSPF邻居关系,执行display ospf peer命令可以看到邻居状态为Full。执行display ip routing-table命令可以看到PE和RR之间学习到对方的Loopback1路由。
以PE1的显示为例:
[~PE1] display ospf peer
(M) Indicates MADJ neighbor OSPF Process 1 with Router ID 1.1.1.1 Neighbors Area 0.0.0.0 interface 10.1.1.1 (Eth2/0/0)'s neighbors Router ID: 3.3.3.3 Address: 10.1.1.2 State: Full Mode:Nbr is Master Priority: 1 DR: 10.1.1.1 BDR: 10.1.1.2 MTU: 0 Dead timer due in 38 sec Retrans timer interval: 5 Neighbor is up for 00h01m12s Authentication Sequence: [ 0 ]
[~PE1] display ip routing-table
Route Flags: R - relay, D - download to fib, T - to vpn-instance, B - black hole route ------------------------------------------------------------------------------ Routing Table : _public_ Destinations : 13 Routes : 13 Destination/Mask Proto Pre Cost Flags NextHop Interface 1.1.1.1/32 Direct 0 0 D 127.0.0.1 LoopBack0 2.2.2.2/32 OSPF 10 2 D 10.1.1.2 GigabitEthernet2/0/0 3.3.3.3/32 OSPF 10 1 D 10.1.1.2 GigabitEthernet2/0/0 4.4.4.4/32 OSPF 10 2 D 10.1.1.2 GigabitEthernet2/0/0 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0 127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 10.1.1.0/24 Direct 0 0 D 10.1.1.1 GigabitEthernet2/0/0 10.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet2/0/0 10.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet2/0/0 10.2.1.0/24 OSPF 10 2 D 10.1.1.2 GigabitEthernet2/0/0 10.3.1.0/24 OSPF 10 2 D 10.1.1.2 GigabitEthernet2/0/0 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
- 在MPLS骨干网上配置MPLS基本能力和MPLS LDP,建立LDP LSP
# 配置PE1。
[~PE1] mpls lsr-id 1.1.1.1
[*PE1] mpls
[*PE1-mpls] quit
[*PE1] mpls ldp
[*PE1-mpls-ldp] quit
[*PE1] interface ethernet 2/0/0
[*PE1-Ethernet2/0/0] mpls
[*PE1-Ethernet2/0/0] mpls ldp
[*PE1-Ethernet2/0/0] commit
[~PE1-Ethernet2/0/0] quit
# 配置PE2。
[~PE2] mpls lsr-id 2.2.2.2
[*PE2] mpls
[*PE2-mpls] quit
[*PE2] mpls ldp
[*PE2-mpls-ldp] quit
[*PE2] interface ethernet 2/0/0
[*PE2-Ethernet2/0/0] mpls
[*PE2-Ethernet2/0/0] mpls ldp
[*PE2-Ethernet2/0/0] commit
[~PE2-Ethernet2/0/0] quit
# 配置RR。
[~RR] mpls lsr-id 3.3.3.3
[*RR] mpls
[*RR-mpls] quit
[*RR] mpls ldp
[*RR-mpls-ldp] quit
[*RR] interface ethernet 1/0/0
[*RR-Ethernet1/0/0] mpls
[*RR-Ethernet1/0/0] mpls ldp
[*RR-Ethernet1/0/0] quit
[*RR] interface ethernet 2/0/0
[*RR-Ethernet2/0/0] mpls
[*RR-Ethernet2/0/0] mpls ldp
[*RR-Ethernet2/0/0] quit
[*RR] interface ethernet 3/0/0
[*RR-Ethernet3/0/0] mpls
[*RR-Ethernet3/0/0] mpls ldp
[*RR-Ethernet3/0/0] commit
[~RR-Ethernet3/0/0] quit
# 配置PE3。
[~PE3] mpls lsr-id 4.4.4.4
[*PE3] mpls
[*PE3-mpls] quit
[*PE3] mpls ldp
[*PE3-mpls-ldp] quit
[*PE3] interface ethernet 1/0/0
[*PE3-Ethernet1/0/0] mpls
[*PE3-Ethernet1/0/0] mpls ldp
[*PE3-Ethernet1/0/0] commit
[~PE3-Ethernet1/0/0] quit
上述配置完成后,PE1、PE2、PE3和RR之间应能建立LDP会话,执行display mpls ldp session命令可以看到显示结果中Status项为“Operational”。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
以PE1的显示为例:
[~PE1] display mpls ldp session
LDP Session(s) in Public Network Codes: LAM(Label Advertisement Mode), SsnAge Unit(DDDD:HH:MM) An asterisk (*) before a session means the session is being deleted. -------------------------------------------------------------------------- PeerID Status LAM SsnRole SsnAge KASent/Rcv -------------------------------------------------------------------------- 3.3.3.3:0 Operational DU Passive 0000:00:05 22/22 -------------------------------------------------------------------------- TOTAL: 1 Session(s) Found.
[~PE1] display mpls ldp lsp
LDP LSP Information ------------------------------------------------------------------------------- Flag after Out IF: (I) - RLFA Iterated LSP, (I*) - Normal and RLFA Iterated LSP ------------------------------------------------------------------------------- DestAddress/Mask In/OutLabel UpstreamPeer NextHop OutInterface ------------------------------------------------------------------------------- 1.1.1.1/32 3/NULL 3.3.3.3 127.0.0.1 Loop1 *1.1.1.1/32 Liberal/32828 DS/3.3.3.3 2.2.2.2/32 NULL/32829 - 10.1.1.2 Eth2/0/0 2.2.2.2/32 32829/32829 3.3.3.3 10.1.1.2 Eth2/0/0 3.3.3.3/32 NULL/3 - 10.1.1.2 Eth2/0/0 3.3.3.3/32 32828/3 3.3.3.3 10.1.1.2 Eth2/0/0 4.4.4.4/32 NULL/32830 - 10.1.1.2 Eth2/0/0 4.4.4.4/32 32830/32830 3.3.3.3 10.1.1.2 Eth2/0/0 ------------------------------------------------------------------------------- TOTAL: 7 Normal LSP(s) Found. TOTAL: 1 Liberal LSP(s) Found. TOTAL: 0 FRR LSP(s) Found. An asterisk (*) before an LSP means the LSP is not established An asterisk (*) before a Label means the USCB or DSCB is stale An asterisk (*) before an UpstreamPeer means the session is stale An asterisk (*) before a DS means the session is stale An asterisk (*) before a NextHop means the LSP is FRR LSP
- 配置PE上的EVPN实例
# 配置PE1。
[~PE1] evpn vpn-instance evpna
[*PE1-evpn-instance-evpna] route-distinguisher 100:1
[*PE1-evpn-instance-evpna] vpn-target 1:1
[*PE1-evpn-instance-evpna] quit
[*PE1] evpn vpn-instance evpnb
[*PE1-evpn-instance-evpnb] route-distinguisher 100:2
[*PE1-evpn-instance-evpnb] vpn-target 2:2
[*PE1-evpn-instance-evpnb] quit
[*PE1] commit
# 配置PE2。
[~PE2] evpn vpn-instance evpna
[*PE2-evpn-instance-evpna] route-distinguisher 200:1
[*PE2-evpn-instance-evpna] vpn-target 1:1
[*PE2-evpn-instance-evpna] quit
[*PE2] evpn vpn-instance evpnb
[*PE2-evpn-instance-evpnb] route-distinguisher 200:2
[*PE2-evpn-instance-evpna] vpn-target 2:2
[*PE2-evpn-instance-evpna] quit
[*PE2] commit
# 配置PE3。
[~PE3] evpn vpn-instance evpna
[*PE3-evpn-instance-evpna] route-distinguisher 300:1
[*PE3-evpn-instance-evpna] vpn-target 1:1
[*PE3-evpn-instance-evpna] quit
[*PE3] evpn vpn-instance evpnb
[*PE3-evpn-instance-evpnb] route-distinguisher 300:2
[*PE3-evpn-instance-evpnb] vpn-target 2:2
[*PE3-evpn-instance-evpnb] quit
[*PE3] evpn redundancy-mode single-active
[*PE3] commit
- 配置PE上的源地址。
# 配置PE1。
[~PE1] evpn source-address 1.1.1.1
[*PE1] commit
# 配置PE2。
[~PE2] evpn source-address 2.2.2.2
[*PE2] commit
# 配置PE3。
[~PE3] evpn source-address 4.4.4.4
[*PE3] commit
- 配置PE与CE相连的Eth-Trunk子接口。
# 配置PE1。
[~PE1] e-trunk 1
[*PE1-e-trunk-1] peer-address 2.2.2.2 source-address 1.1.1.1
[*PE1-e-trunk-1] quit
[*PE1] interface eth-trunk 10
[*PE1-Eth-Trunk10] e-trunk 1
[*PE1-Eth-Trunk10] e-trunk mode force-master
[*PE1-Eth-Trunk10] quit
[*PE1] interface eth-trunk 10.1
[*PE1-Eth-Trunk10.1] vlan-type dot1q 1
[*PE1-Eth-Trunk10.1] quit
[*PE1] interface eth-trunk 10.2
[*PE1-Eth-Trunk10.2] vlan-type dot1q 2
[*PE1-Eth-Trunk10.2] quit
[*PE1] interface ethernet 1/0/0
[*PE1-Ethernet1/0/0] eth-trunk 10
[*PE1-Ethernet1/0/0] quit
[*PE1] commit
# 配置PE2。
[~PE2] e-trunk 1
[*PE2-e-trunk-1] peer-address 1.1.1.1 source-address 2.2.2.2
[*PE2-e-trunk-1] quit
[*PE2] interface eth-trunk 10
[*PE2-Eth-Trunk10] e-trunk 1
[*PE2-Eth-Trunk10] e-trunk mode force-master
[*PE2-Eth-Trunk10] quit
[*PE2] interface eth-trunk 10.1
[*PE2-Eth-Trunk10.1] vlan-type dot1q 1
[*PE2-Eth-Trunk10.1] quit
[*PE2] interface eth-trunk 10.2
[*PE2-Eth-Trunk10.2] vlan-type dot1q 2
[*PE2-Eth-Trunk10.2] quit
[*PE2] interface ethernet 1/0/0
[*PE2-Ethernet1/0/0] eth-trunk 10
[*PE2-Ethernet1/0/0] quit
[*PE2] commit
# 配置PE3。
[~PE3] interface eth-trunk 10
[*PE3-Eth-Trunk10] quit
[*PE3] interface eth-trunk 10.1
[*PE3-Eth-Trunk10.1] vlan-type dot1q 1
[*PE3-Eth-Trunk10.1] quit
[*PE3] interface eth-trunk 10.2
[*PE3-Eth-Trunk10.2] vlan-type dot1q 2
[*PE3-Eth-Trunk10.2] quit
[*PE3] interface ethernet 1/0/0
[*PE3-Ethernet1/0/0] eth-trunk 10
[*PE3-Ethernet1/0/0] quit
[*PE3] commit
- 配置PE上与CE相连的接口绑定EVPN实例。
# 配置PE1。
[~PE1] interface eth-trunk 10.1
[*PE1-Eth-Trunk10.1] evpn binding vpn-instance evpna
[*PE1-Eth-Trunk10.1] quit
[*PE1] interface eth-trunk 10.2
[*PE1-Eth-Trunk10.2] evpn binding vpn-instance evpnb
[*PE1-Eth-Trunk10.2] quit
[*PE1] commit
# 配置PE2。
[~PE2] interface eth-trunk 10.1
[*PE2-Eth-Trunk10.1] evpn binding vpn-instance evpna
[*PE2-Eth-Trunk10.1] quit
[*PE2] interface eth-trunk 10.2
[*PE2-Eth-Trunk10.2] evpn binding vpn-instance evpnb
[*PE2-Eth-Trunk10.2] quit
[*PE2] commit
# 配置PE3。
[~PE3] interface eth-trunk 10.1
[*PE3-Eth-Trunk10] evpn binding vpn-instance evpna
[*PE3-Eth-Trunk10] quit
[*PE3] interface eth-trunk 10.2
[*PE3-Eth-Trunk10] evpn binding vpn-instance evpnb
[*PE3-Eth-Trunk10] quit
[*PE3] commit
- 配置PE1、PE2上连接CE接口上的ESI。
# 配置PE1。
[~PE1] interface eth-trunk 10
[*PE1-Eth-Trunk10] esi 0000.1111.2222.1111.1111
[*PE1-Eth-Trunk10] quit
[*PE1] commit
# 配置PE2。
[~PE2] interface eth-trunk 10
[*PE2-Eth-Trunk10] esi 0000.1111.2222.1111.1111
[*PE2-Eth-Trunk10] quit
[*PE2] commit
- 配置RR与PE间的BGP EVPN对等体关系,并在RR上指定各个PE为其反射器的客户机
# 配置PE1。
[~PE1] bgp 100
[*PE1-bgp] peer 3.3.3.3 as-number 100
[*PE1-bgp] peer 3.3.3.3 connect-interface loopback 1
[*PE1-bgp] l2vpn-family evpn
[*PE1-bgp-af-evpn] peer 3.3.3.3 enable
[*PE1-bgp-af-evpn] quit
[*PE1-bgp] quit
[*PE1] commit
# 配置PE2。
[~PE2] bgp 100
[*PE2-bgp] peer 3.3.3.3 as-number 100
[*PE2-bgp] peer 3.3.3.3 connect-interface loopback 1
[*PE2-bgp] l2vpn-family evpn
[*PE2-bgp-af-evpn] peer 3.3.3.3 enable
[*PE2-bgp-af-evpn] quit
[*PE2-bgp] quit
[*PE2] commit
# 配置PE3。
[~PE3] bgp 100
[*PE3-bgp] peer 3.3.3.3 as-number 100
[*PE3-bgp] peer 3.3.3.3 connect-interface loopback 1
[*PE3-bgp] l2vpn-family evpn
[*PE3-bgp-af-evpn] peer 3.3.3.3 enable
[*PE3-bgp-af-evpn] quit
[*PE3-bgp] quit
[*PE3] commit
# 配置RR。
[~RR] bgp 100
[*RR-bgp] peer 1.1.1.1 as-number 100
[*RR-bgp] peer 1.1.1.1 connect-interface loopback 1
[*RR-bgp] peer 2.2.2.2 as-number 100
[*RR-bgp] peer 2.2.2.2 connect-interface loopback 1
[*RR-bgp] peer 4.4.4.4 as-number 100
[*RR-bgp] peer 4.4.4.4 connect-interface loopback 1
[*RR-bgp] l2vpn-family evpn
[*RR-bgp-af-evpn] peer 1.1.1.1 enable
[*RR-bgp-af-evpn] peer 1.1.1.1 reflect-client
[*RR-bgp-af-evpn] peer 2.2.2.2 enable
[*RR-bgp-af-evpn] peer 2.2.2.2 reflect-client
[*RR-bgp-af-evpn] peer 4.4.4.4 enable
[*RR-bgp-af-evpn] peer 4.4.4.4 reflect-client
[*RR-bgp-af-evpn] quit
[*RR-bgp] quit
[*RR] commit
配置完成后,在RR上执行display bgp evpn peer命令,可以看到RR与PE间BGP对等体关系已建立,并达到Established状态。
[~RR] display bgp evpn peer
BGP local router ID : 3.3.3.3 Local AS number : 100 Total number of peers : 3 Peers in established state : 3 Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv 1.1.1.1 4 100 10 18 0 00:00:11 Established 6 2.2.2.2 4 100 10 20 0 00:00:12 Established 6 4.4.4.4 4 100 6 18 0 00:00:13 Established 2
- 配置CE与PE之间相互通信
# 配置CE1。
[~CE1] vlan batch 1 2
[*CE1] interface Eth-Trunk20
[*CE1-Eth-Trunk20] portswitch
[*CE1-Eth-Trunk20] port link-type trunk
[*CE1-Eth-Trunk20] port trunk allow-pass vlan 1 to 2
[*CE1-Eth-Trunk20] quit
[*CE1] interface ethernet1/0/0
[*CE1-Ethernet1/0/0] eth-trunk 20
[*CE1-Ethernet1/0/0] quit
[*CE1] interface ethernet2/0/0
[*CE1-Ethernet2/0/0] eth-trunk 20
[*CE1-Ethernet2/0/0] quit
[*CE1] commit
# 配置CE2。
[~CE2] vlan batch 1 2
[*CE2] interface Eth-Trunk 10
[*CE2-Eth-Trunk10] portswitch
[*CE2-Eth-Trunk10] port link-type trunk
[*CE2-Eth-Trunk10] port trunk allow-pass vlan 1 to 2
[*CE2-Eth-Trunk10] quit
[*CE2] interface ethernet1/0/0
[*CE2-Ethernet1/0/0] eth-trunk 10
[*CE2-Ethernet1/0/0] quit
[*CE2] commit
- 在PE1和PE2上配置基于VLAN进行DF选举功能和接入侧链路状态影响DF选举功能
在PE1设备上执行display evpn vpn-instance name evpna df result和display evpn vpn-instance name evpnb df result命令,可以看到选举结果。
[~PE1] display evpn vpn-instance name evpna df result
ESI Count: 1 ESI: 0000.1111.2222.1111.1111 Eth-Trunk10.1: Current State: IFSTATE_UP DF Result : Primary
[~PE1] display evpn vpn-instance name evpnb df result
ESI Count: 1 ESI: 0000.1111.2222.1111.1111 Eth-Trunk10.2: Current State: IFSTATE_UP DF Result : Primary
可见对于evpna和evpnb,PE1都被选举为主DF。多播流量都将使用PE1进行转发。
# 配置PE1。
[~PE1] evpn
[*PE1-evpn] df-election type vlan
[*PE1-evpn] df-election ac-influence enable
[*PE1-evpn] quit
[*PE1] commit
# 配置PE2。
[~PE2] evpn
[*PE2-evpn] df-election type vlan
[*PE2-evpn] df-election ac-influence enable
[*PE2-evpn] quit
[*PE2] commit
在PE1设备上执行display evpn vpn-instance name evpna df result和display evpn name vpn-instance evpnb df result命令,可以看到选举结果。
[~PE1] display evpn vpn-instance name evpna df result
ESI Count: 1 ESI: 0000.1111.2222.1111.1111 Eth-Trunk10.1: Current State: IFSTATE_UP DF Result : Backup
[~PE1] display evpn vpn-instance name evpnb df result
ESI Count: 1 ESI: 0000.1111.2222.1111.1111 Eth-Trunk10.2: Current State: IFSTATE_UP DF Result : Primary
在配置基于VLAN选举功能后,对于evpna,PE2被选举为主DF;对于evpnb,PE1被选举为主DF。多播流量都将使用PE1和PE2以负载分担形式进行转发。
- 在PE1和PE2上配置以太网段路由延迟生成功能
# 配置PE1。
[~PE1] interface eth-trunk 10
[*PE1-Eth-Trunk10] timer es-recovery 30
[*PE1-Eth-Trunk10] quit
[*PE1] commit
# 配置PE2。
[~PE2] interface eth-trunk 10
[*PE2-Eth-Trunk10] timer es-recovery 30
[*PE2-Eth-Trunk10] quit
[*PE2] commit
- 配置PE1和PE2上接入侧接口联动BFD会话,提升接入链路故障时的DF切换速度。
# 配置PE1。
[~PE1] bfd
[*PE1-bfd] quit
[*PE1] bfd bfd1 bind peer-ip 2.2.2.2 track-interface interface Eth-Trunk10
[*PE1-bfd-session-bfd1] discriminator local 10
[*PE1-bfd-session-bfd1] discriminator remote 20
[*PE1-bfd-session-bfd1] quit
[*PE1] bfd bfd2 bind peer-ip 2.2.2.2 [*PE1-bfd-session-bfd2] discriminator local 30 [*PE1-bfd-session-bfd2] discriminator remote 40 [*PE1-bfd-session-bfd2] quit
[*PE1] interface eth-trunk 10
[*PE1-Eth-Trunk10] es track bfd bfd2
[*PE1-Eth-Trunk10] quit
[*PE1] commit
# 配置PE2。
[~PE2] bfd
[*PE2-bfd] quit [*PE2] bfd bfd1 bind peer-ip 1.1.1.1 [*PE2-bfd-session-bfd1] discriminator local 20 [*PE2-bfd-session-bfd1] discriminator remote 10
[*PE2] bfd bfd2 bind peer-ip 1.1.1.1 track-interface interface Eth-Trunk10
[*PE2-bfd-session-bfd2] discriminator local 40
[*PE2-bfd-session-bfd2] discriminator remote 30
[*PE2-bfd-session-bfd1] quit
[*PE2] interface eth-trunk 10
[*PE2-Eth-Trunk10] es track bfd bfd1
[*PE2-Eth-Trunk10] quit
[*PE2] commit
- 检查配置结果
在PE3设备上执行display bgp evpn all routing-table命令,可以看到远端PE发来的EVPN路由。
[~PE3] display bgp evpn all routing-table
Local AS number : 100 BGP Local router ID is 4.4.4.4 Status codes: * - valid, > - best, d - damped, x - best external, a - add path, h - history, i - internal, s - suppressed, S - Stale Origin : i - IGP, e - EGP, ? - incomplete EVPN address family: Number of A-D Routes: 4 Route Distinguisher: 100:1 Network(ESI/EthTagId) NextHop *>i 0000.1111.2222.1111.1111:0 1.1.1.1 Route Distinguisher: 100:2 Network(ESI/EthTagId) NextHop *>i 0000.1111.2222.1111.1111:0 1.1.1.1 Route Distinguisher: 1.1.1.1:0 Network(ESI/EthTagId) NextHop *>i 0000.1111.2222.1111.1111:4294967295 1.1.1.1 Route Distinguisher: 2.2.2.2:0 Network(ESI/EthTagId) NextHop *>i 0000.1111.2222.1111.1111:4294967295 2.2.2.2 EVPN-Instance evpna: Number of A-D Routes: 3 Network(ESI/EthTagId) NextHop *>i 0000.1111.2222.1111.1111:0 1.1.1.1 *>i 0000.1111.2222.1111.1111:4294967295 1.1.1.1 * i 2.2.2.2 EVPN-Instance evpnb: Number of A-D Routes: 3 Network(ESI/EthTagId) NextHop *>i 0000.1111.2222.1111.1111:0 1.1.1.1 *>i 0000.1111.2222.1111.1111:4294967295 1.1.1.1 * i 2.2.2.2 EVPN address family: Number of Inclusive Multicast Routes: 6 Route Distinguisher: 100:1 Network(EthTagId/IpAddrLen/OriginalIp) NextHop *>i 0:32:1.1.1.1 1.1.1.1 *>i 0:32:2.2.2.2 2.2.2.2 *> 0:32:4.4.4.4 127.0.0.1 Route Distinguisher: 100:2 Network(EthTagId/IpAddrLen/OriginalIp) NextHop *>i 0:32:1.1.1.1 1.1.1.1 *>i 0:32:2.2.2.2 2.2.2.2 *> 0:32:4.4.4.4 127.0.0.1 EVPN-Instance evpna: Number of Inclusive Multicast Routes: 3 Network(EthTagId/IpAddrLen/OriginalIp) NextHop *>i 0:32:1.1.1.1 1.1.1.1 *>i 0:32:2.2.2.2 2.2.2.2 *> 0:32:4.4.4.4 127.0.0.1 EVPN-Instance evpnb: Number of Inclusive Multicast Routes: 3 Network(EthTagId/IpAddrLen/OriginalIp) NextHop *>i 0:32:1.1.1.1 1.1.1.1 *>i 0:32:2.2.2.2 2.2.2.2 *> 0:32:4.4.4.4 127.0.0.1 EVPN address family: Number of ES Routes: 2 Route Distinguisher: 1.1.1.1:0 Network(ESI) NextHop *>i 0000.1111.2222.1111.1111 1.1.1.1 Route Distinguisher: 2.2.2.2:0 Network(ESI) NextHop *>i 0000.1111.2222.1111.1111 2.2.2.2
配置文件
PE1的配置文件
# sysname PE1 # evpn df-election type vlan df-election ac-influence enable # evpn vpn-instance evpna route-distinguisher 100:1 vpn-target 1:1 export-extcommunity vpn-target 1:1 import-extcommunity # evpn vpn-instance evpnb route-distinguisher 100:2 vpn-target 2:2 export-extcommunity vpn-target 2:2 import-extcommunity # bfd # mpls lsr-id 1.1.1.1 # mpls # mpls ldp # e-trunk 1 peer-address 2.2.2.2 source-address 1.1.1.1 # interface Eth-Trunk10 e-trunk 1 e-trunk mode force-master esi 0000.1111.2222.1111.1111 es track bfd bfd2 timer es-recovery 30 # interface Eth-Trunk10.1 vlan-type dot1q 1 evpn binding vpn-instance evpna # interface Eth-Trunk10.2 vlan-type dot1q 2 evpn binding vpn-instance evpnb # interface Ethernet1/0/0 undo shutdown port-tx-enabling-delay 30000 carrier up-hold-time 30000 eth-trunk 10 # interface Ethernet2/0/0 undo shutdown ip address 10.1.1.1 255.255.255.0 mpls mpls ldp # interface LoopBack1 ip address 1.1.1.1 255.255.255.255 # bfd bfd1 bind peer-ip 2.2.2.2 track-interface interface Eth-Trunk10 discriminator local 10 discriminator remote 20 # bfd bfd2 bind peer-ip 2.2.2.2 discriminator local 30 discriminator remote 40 # bgp 100 peer 3.3.3.3 as-number 100 peer 3.3.3.3 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 3.3.3.3 enable # l2vpn-family evpn undo policy vpn-target peer 3.3.3.3 enable # ospf 1 area 0.0.0.0 network 1.1.1.1 0.0.0.0 network 10.1.1.0 0.0.0.255 # evpn source-address 1.1.1.1 # return
PE2的配置文件
# sysname PE2 # evpn df-election type vlan df-election ac-influence enable # evpn vpn-instance evpna route-distinguisher 200:1 vpn-target 1:1 export-extcommunity vpn-target 1:1 import-extcommunity # evpn vpn-instance evpnb route-distinguisher 200:2 vpn-target 2:2 export-extcommunity vpn-target 2:2 import-extcommunity # bfd # mpls lsr-id 2.2.2.2 # mpls # mpls ldp # e-trunk 1 peer-address 1.1.1.1 source-address 2.2.2.2 # interface Eth-Trunk10 e-trunk 1 e-trunk mode force-master esi 0000.1111.2222.1111.1111 es track bfd bfd1 timer es-recovery 30 # interface Eth-Trunk10.1 vlan-type dot1q 1 evpn binding vpn-instance evpna # interface Eth-Trunk10.2 vlan-type dot1q 2 evpn binding vpn-instance evpnb # interface Ethernet1/0/0 undo shutdown port-tx-enabling-delay 30000 carrier up-hold-time 30000 eth-trunk 10 # interface Ethernet2/0/0 undo shutdown ip address 10.2.1.1 255.255.255.0 mpls mpls ldp # interface LoopBack1 ip address 2.2.2.2 255.255.255.255 # bfd bfd1 bind peer-ip 1.1.1.1 discriminator local 20 discriminator remote 10 # bfd bfd2 bind peer-ip 1.1.1.1 track-interface interface Eth-Trunk10 discriminator local 40 discriminator remote 30 # bgp 100 peer 3.3.3.3 as-number 100 peer 3.3.3.3 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 3.3.3.3 enable # l2vpn-family evpn undo policy vpn-target peer 3.3.3.3 enable # ospf 1 area 0.0.0.0 network 2.2.2.2 0.0.0.0 network 10.2.1.0 0.0.0.255 # evpn source-address 2.2.2.2 # return
PE3的配置文件
# sysname PE3 # evpn redundancy-mode single-active # evpn vpn-instance evpna route-distinguisher 300:1 vpn-target 1:1 export-extcommunity vpn-target 1:1 import-extcommunity # evpn vpn-instance evpnb route-distinguisher 300:2 vpn-target 2:2 export-extcommunity vpn-target 2:2 import-extcommunity # mpls lsr-id 4.4.4.4 # mpls # mpls ldp # interface Eth-Trunk10 # interface Eth-Trunk10.1 vlan-type dot1q 1 evpn binding vpn-instance evpna # interface Eth-Trunk10.2 vlan-type dot1q 2 evpn binding vpn-instance evpnb # interface Ethernet1/0/0 undo shutdown ip address 10.3.1.2 255.255.255.0 mpls mpls ldp # interface Ethernet2/0/0 undo shutdown eth-trunk 10 # interface LoopBack1 ip address 4.4.4.4 255.255.255.255 # bgp 100 peer 3.3.3.3 as-number 100 peer 3.3.3.3 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 3.3.3.3 enable # l2vpn-family evpn undo policy vpn-target peer 3.3.3.3 enable # ospf 1 area 0.0.0.0 network 4.4.4.4 0.0.0.0 network 10.3.1.0 0.0.0.255 # evpn source-address 4.4.4.4 # return
RR的配置文件
# sysname RR # mpls lsr-id 3.3.3.3 # mpls # mpls ldp # interface Ethernet1/0/0 undo shutdown ip address 10.3.1.1 255.255.255.0 mpls mpls ldp # interface Ethernet2/0/0 undo shutdown ip address 10.2.1.2 255.255.255.0 mpls mpls ldp # interface Ethernet3/0/0 undo shutdown ip address 10.1.1.2 255.255.255.0 mpls mpls ldp # interface LoopBack1 ip address 3.3.3.3 255.255.255.255 # bgp 100 peer 1.1.1.1 as-number 100 peer 1.1.1.1 connect-interface LoopBack1 peer 2.2.2.2 as-number 100 peer 2.2.2.2 connect-interface LoopBack1 peer 4.4.4.4 as-number 100 peer 4.4.4.4 connect-interface LoopBack1 # ipv4-family unicast undo synchronization peer 1.1.1.1 enable peer 2.2.2.2 enable peer 4.4.4.4 enable # l2vpn-family evpn undo policy vpn-target peer 1.1.1.1 enable peer 1.1.1.1 reflect-client peer 2.2.2.2 enable peer 2.2.2.2 reflect-client peer 4.4.4.4 enable peer 4.4.4.4 reflect-client # ospf 1 area 0.0.0.0 network 3.3.3.3 0.0.0.0 network 10.1.1.0 0.0.0.255 network 10.2.1.0 0.0.0.255 network 10.3.1.0 0.0.0.255 # return
CE1的配置文件
# sysname CE1 # vlan batch 1 to 2 # interface Eth-Trunk20 portswitch port link-type trunk port trunk allow-pass vlan 1 to 2 # interface Ethernet1/0/0 undo shutdown eth-trunk 20 # interface Ethernet2/0/0 undo shutdown eth-trunk 20 # return
CE2的配置文件
# sysname CE2 # vlan batch 1 to 2 # interface Eth-Trunk10 portswitch port link-type trunk port trunk allow-pass vlan 1 to 2 # interface Ethernet1/0/0 undo shutdown eth-trunk 10 # return