(干货实用的CE双归属BGP)
随着电信业务的发展,各种电信业务将用统一的IP网络承载。3G/NGN、IPTV流媒体、大客户VPN等重要业务的部署要求网络具有极高的可靠性。
提高网络的可靠性,除了考虑网络设备自身的可靠性外,还可以从链路可靠性方面着手,例如路由快速收敛、故障检测、快速重路由和路由备份。
就接入层来说,CE双归属是提高网络可靠性的常见网络结构。把一个CE与属于同一个VPN的两个PE相连,就将其视为CE双归。此时CE是通过两条链路接入骨干网。这两条链路既可用作负载分担,也可作为主备链路。
本配置案例是BGP/MPLS IP VPN技术的一个非常实用的配置案例,特别是当今电脑运营商网络环境,可拿来即用。
下图中,CE1处于vpn1的site1中;CE2处于vpn1的site2中。CE1以双归属方式接入PE1和PE2;CE2以双归属方式接入PE3和PE4。如果CE1到CE2的数据流量较大,而CE2到CE1的流量很少,则可以配置成允许CE1到CE2的数据以负载分担的方式传输;而CE2到CE1的数据则从PE4传输,PE3只作为备份。
实验拓扑结构
- 配置基本思路分析
本实验的配置关键是CE1到CE2的数据传输允许两条路径负载分担,而CE2到CE1的数据传输不允许多路径负载分担,仅允许通过PE4的这一条路径。前者比较好实现,仅需在CE1的BGP视图下通过maximum load-balancing命令配置(缺省情况下,BGP只选择一条路优路由路径,不能多路径负载分担)。后者可利用BGP路由的MED属性来实现。
MED属性相当于IGP使用的度量值(Metrics),用于判断流量进入AS时的最佳路由。当一个运行BGP的设备通过不同的EBGP对等体得到目的地址相同但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由。利用MED的这种特性,可在PE3上配置路由策略,指定在向其EBGP对等体CE2发布VPN BGP路由时应用路由策略(在VPN实例下应用)增加MED属性值(使其优先级降低),最终使得CE2向CE1发送的数据优先选择通过其EBGP对等体PE4的路径。
(1)配置骨干网接口(不包括PE连接CE的接口)IP地址,以及OSPF路由,以实现骨干网的三层互通。
(2)在骨干网各设备上全局和公网接口上使能MPLS和LDP能力。
(3)在各PE上为所连接的Site创建VPN实例(属于同一VPN实例),并与连接对应CE的接口进行绑定。
(4)配置PE1和PE2、PE2和PE4之间的MP-IBGP对等体关系。
(5)配置各PE与CE之间和EBGP对等体关系,并在CE上引入直连路由(PE上可不再引入直连路由)。
(6)在CE1上配置允许CE1到CE2的流量允许负载分担。
(7)在PE3上配置路由策略,增大PE3上发布给CE2的BGP路由的MED值,使CE2到CE1的流量流经PE4,PE3作为备份。
- 实验配置步骤
(1)配置骨干网接口(不包括PE连接CE的接口)IP地址,以及OSPF路由,以实现骨干网的三层互通。
# PE1上的配置。
<Huawei> system-view
[Huawei] sysname PE1
[PE1] interface loopback 1
[PE1-LoopBack1] ip address 1.1.1.1 32
[PE1-LoopBack1] quit
[PE1] interface gigabitethernet 2/0/0
[PE1-GigabitEthernet2/0/0] ip address 100.1.1.1 30
[PE1-GigabitEthernet2/0/0] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 100.1.1.0 0.0.0.3
[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] quit
[PE1-ospf-1] quit
# PE2上的配置。
<Huawei> system-view
[Huawei] sysname PE2
[PE2] interface loopback 1
[PE2-LoopBack1] ip address 2.2.2.2 32
[PE2-LoopBack1] quit
[PE2] interface gigabitethernet 2/0/0
[PE2-GigabitEthernet2/0/0] ip address 100.2.1.1 30
[PE2-GigabitEthernet2/0/0] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 100.2.1.0 0.0.0.3
[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] quit
[PE2-ospf-1] quit
# PE3上的配置。
<Huawei> system-view
[Huawei] sysname PE3
[PE3] interface loopback 1
[PE3-LoopBack1] ip address 3.3.3.3 32
[PE3-LoopBack1] quit
[PE3] interface gigabitethernet 1/0/0
[PE3-GigabitEthernet2/0/0] ip address 100.3.1.2 30
[PE3-GigabitEthernet2/0/0] quit
[PE3] ospf
[PE3-ospf-1] area 0
[PE3-ospf-1-area-0.0.0.0] network 100.3.1.0 0.0.0.3
[PE3-ospf-1-area-0.0.0.0] network 3.3.3.3 0.0.0.0
[PE3-ospf-1-area-0.0.0.0] quit
[PE3-ospf-1] quit
# PE4上的配置。
<Huawei> system-view
[Huawei] sysname PE4
[PE4] interface loopback 1
[PE4-LoopBack1] ip address 4.4.4.4 32
[PE4-LoopBack1] quit
[PE4] interface gigabitethernet 1/0/0
[PE4-GigabitEthernet2/0/0] ip address 100.4.1.2 30
[PE4-GigabitEthernet2/0/0] quit
[PE4] ospf
[PE4-ospf-1] area 0
[PE4-ospf-1-area-0.0.0.0] network 100.4.1.0 0.0.0.3
[PE4-ospf-1-area-0.0.0.0] network 4.4.4.4 0.0.0.0
[PE4-ospf-1-area-0.0.0.0] quit
[PE4-ospf-1] quit
# P1上的配置。
<Huawei> system-view
[Huawei] sysname P1
[P1] interface loopback 1
[P1-LoopBack1] ip address 5.5.5.5 32
[P1-LoopBack1] quit
[P1] interface gigabitethernet 1/0/0
[P1-GigabitEthernet1/0/0] ip address 100.1.1.2 30
[P1-GigabitEthernet1/0/0] quit
[P1] interface gigabitethernet 2/0/0
[P1-GigabitEthernet2/0/0] ip address 100.3.1.1 30
[P1-GigabitEthernet2/0/0] quit
[P1] ospf
[P1-ospf-1] area 0
[P1-ospf-1-area-0.0.0.0] network 100.1.1.0 0.0.0.3
[P1-ospf-1-area-0.0.0.0] network 100.3.1.0 0.0.0.3
[P1-ospf-1-area-0.0.0.0] network 5.5.5.5 0.0.0.0
[P1-ospf-1-area-0.0.0.0] quit
[P1-ospf-1] quit
# P2上的配置。
<Huawei> system-view
[Huawei] sysname P2
[P2] interface loopback 1
[P2-LoopBack1] ip address 6.6.6.6 32
[P2-LoopBack1] quit
[P2] interface gigabitethernet 1/0/0
[P2-GigabitEthernet1/0/0] ip address 100.2.1.2 30
[P2-GigabitEthernet1/0/0] quit
[P2] interface gigabitethernet 2/0/0
[P2-GigabitEthernet2/0/0] ip address 100.4.1.1 30
[P2-GigabitEthernet2/0/0] quit
[P2] ospf
[P2-ospf-1] area 0
[P2-ospf-1-area-0.0.0.0] network 100.2.1.0 0.0.0.3
[P2-ospf-1-area-0.0.0.0] network 100.4.1.0 0.0.0.3
[P2-ospf-1-area-0.0.0.0] network 6.6.6.6 0.0.0.0
[P2-ospf-1-area-0.0.0.0] quit
[P2-ospf-1] quit
配置完成后,执行display ip routing-table命令可以看到PE1与PE3、PE2与PE4之间学习到对方的Loopback1路由
(2)在骨干网上配置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 gigabitethernet 2/0/0
[PE1-GigabitEthernet2/0/0] mpls
[PE1-GigabitEthernet2/0/0] mpls ldp
[PE1-GigabitEthernet2/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 gigabitethernet 2/0/0
[PE2-GigabitEthernet2/0/0] mpls
[PE2-GigabitEthernet2/0/0] mpls ldp
[PE12-GigabitEthernet2/0/0] quit
# PE3上的配置。
[PE3] mpls lsr-id 3.3.3.3
[PE3] mpls
[PE3-mpls] quit
[PE3] mpls ldp
[PE3-mpls-ldp] quit
[PE3] interface gigabitethernet 1/0/0
[PE3-GigabitEthernet1/0/0] mpls
[PE3-GigabitEthernet1/0/0] mpls ldp
[PE3-GigabitEthernet1/0/0] quit
# PE4上的配置。
[PE4] mpls lsr-id 4.4.4.4
[PE4] mpls
[PE4-mpls] quit
[PE4] mpls ldp
[PE4-mpls-ldp] quit
[PE4] interface gigabitethernet 1/0/0
[PE4-GigabitEthernet1/0/0] mpls
[PE4-GigabitEthernet1/0/0] mpls ldp
[PE4-GigabitEthernet1/0/0] quit
# P1上的配置。
[P1] mpls lsr-id 5.5.5.5
[P1] mpls
[P1-mpls] quit
[P1] mpls ldp
[P1-mpls-ldp] quit
[P1] interface gigabitethernet 1/0/0
[P1-GigabitEthernet1/0/0] mpls
[P1-GigabitEthernet1/0/0] mpls ldp
[P1-GigabitEthernet1/0/0] quit
[P1] interface gigabitethernet 2/0/0
[P1-GigabitEthernet2/0/0] mpls
[P1-GigabitEthernet2/0/0] mpls ldp
[P1-GigabitEthernet2/0/0] quit
# P2上的配置。
[P2] mpls lsr-id 5.5.5.5
[P2] mpls
[P2-mpls] quit
[P2] mpls ldp
[P2-mpls-ldp] quit
[P2] interface gigabitethernet 1/0/0
[P2-GigabitEthernet1/0/0] mpls
[P2-GigabitEthernet1/0/0] mpls ldp
[P2-GigabitEthernet1/0/0] quit
[P2] interface gigabitethernet 2/0/0
[P2-GigabitEthernet2/0/0] mpls
[P2-GigabitEthernet2/0/0] mpls ldp
[P2-GigabitEthernet2/0/0] quit
上述配置完成后,PE1与P1、P1与PE3之间应能建立LDP会话,执行display mpls ldp session命令可以看到显示结果中Status项为“Operational”。执行display mpls ldp lsp命令,可以看到LDP LSP的建立情况。
(3)在各PE上为所连接的Site创建VPN实例(属于同一VPN实例),并与连接对应CE的接口进行绑定。在本PE上配置的VPN-Target应与在MP-BGP对等体PE上配置的VPN-Target对应,以便同一VPN的各Site可互访。
# PE1上的配置
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] ipv4-family
[PE1-vpn-instance-vpn1-af-ipv4] route-distinguisher 100:1
[PE1-vpn-instance-vpn1-af-ipv4] vpn-target 1:1 both
[PE1-vpn-instance-vpn1-af-ipv4] quit
[PE1-vpn-instance-vpn1] quit
[PE1] interface gigabitethernet 1/0/0
[PE1-GigabitEthernet1/0/0] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0/0] ip address 10.1.1.2 255.255.255.252
[PE1-GigabitEthernet1/0/0] quit
# PE2上的配置
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] ipv4-family
[PE2-vpn-instance-vpn1-af-ipv4] route-distinguisher 100:2
[PE2-vpn-instance-vpn1-af-ipv4] vpn-target 1:1 both
[PE2-vpn-instance-vpn1-af-ipv4] quit
[PE2-vpn-instance-vpn1] quit
[PE2] interface gigabitethernet 1/0/0
[PE2-GigabitEthernet1/0/0] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0/0] ip address 10.2.1.2 255.255.255.252
[PE2-GigabitEthernet1/0/0] quit
# PE3上的配置
[PE3] ip vpn-instance vpn1
[PE3-vpn-instance-vpn1] ipv4-family
[PE3-vpn-instance-vpn1-af-ipv4] route-distinguisher 100:3
[PE3-vpn-instance-vpn1-af-ipv4] vpn-target 1:1 both
[PE3-vpn-instance-vpn1-af-ipv4] quit
[PE3-vpn-instance-vpn1] quit
[PE3] interface gigabitethernet 2/0/0
[PE3-GigabitEthernet2/0/0] ip binding vpn-instance vpn1
[PE3-GigabitEthernet2/0/0] ip address 10.3.1.1 255.255.255.252
[PE3-GigabitEthernet2/0/0] quit
# PE4上的配置
[PE4] ip vpn-instance vpn1
[PE4-vpn-instance-vpn1] ipv4-family
[PE4-vpn-instance-vpn1-af-ipv4] route-distinguisher 100:4
[PE4-vpn-instance-vpn1-af-ipv4] vpn-target 1:1 both
[PE4-vpn-instance-vpn1-af-ipv4] quit
[PE4-vpn-instance-vpn1] quit
[PE4] interface gigabitethernet 2/0/0
[PE4-GigabitEthernet2/0/0] ip binding vpn-instance vpn1
[PE4-GigabitEthernet2/0/0] ip address 10.4.1.1 255.255.255.252
[PE4-GigabitEthernet2/0/0] quit
(4)配置PE1和PE2、PE2和PE4之间的MP-IBGP对等体关系。
# 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] ipv4-family vpnv4
[PE1-bgp-af-vpnv4] peer 3.3.3.3 enable
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit
# PE3上的配置。
[PE3] bgp 100
[PE3-bgp] peer 1.1.1.1 as-number 100
[PE3-bgp] peer 1.1.1.1 connect-interface loopback 1
[PE3-bgp] ipv4-family vpnv4
[PE3-bgp-af-vpnv4] peer 1.1.1.1 enable
[PE3-bgp-af-vpnv4] quit
[PE3-bgp] quit
# PE2上的配置。
[PE2] bgp 100
[PE2-bgp] peer 4.4.4.4 as-number 100
[PE2-bgp] peer 4.4.4.4 connect-interface loopback 1
[PE2-bgp] ipv4-family vpnv4
[PE2-bgp-af-vpnv4] peer 4.4.4.4 enable
[PE2-bgp-af-vpnv4] quit
[PE2-bgp] quit
# PE4上的配置。
[PE4] bgp 100
[PE4-bgp] peer 2.2.2.2 as-number 100
[PE4-bgp] peer 2.2.2.2 connect-interface loopback 1
[PE4-bgp] ipv4-family vpnv4
[PE4-bgp-af-vpnv4] peer 2.2.2.2 enable
[PE4-bgp-af-vpnv4] quit
[PE4-bgp] quit
配置完成后,在PE设备上执行display bgp vpnv4 all peer命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。
(5)配置各PE与CE之间和EBGP对等体关系,并在CE上引入直连路由(PE上可不再引入直连路由)。
# CE1上的配置。
[CE1] bgp 65410
[CE1-bgp] peer 10.1.1.2 as-number 100
[CE1-bgp] peer 10.2.1.2 as-number 100
[CE1-bgp] import-route direct
[CE1-bgp] quit
# PE1上的配置。
[PE1] bgp 100
[PE1-bgp] ipv4-family vpn-instance vpn1
[PE1-bgp-vpn1] peer 10.1.1.1 as-number 65410
[PE1-bgp-vpn1] quit
[PE1-bgp] quit
# PE2上的配置。
[PE2] bgp 100
[PE2-bgp] ipv4-family vpn-instance vpn1
[PE2-bgp-vpn1] peer 10.2.1.1 as-number 65410
[PE2-bgp-vpn1] quit
[PE2-bgp] quit
# CE2上的配置。
[CE2] bgp 65420
[CE2-bgp] peer 10.3.1.1 as-number 100
[CE2-bgp] peer 10.4.1.1 as-number 100
[CE2-bgp] import-route direct
[CE2-bgp] quit
# 配置PE3。
[PE3] bgp 100
[PE3-bgp] ipv4-family vpn-instance vpn1
[PE3-bgp-vpn1] peer 10.3.1.2 as-number 65420
[PE3-bgp-vpn1] quit
[PE3-bgp] quit
# PE4上配置。
[PE4] bgp 100
[PE4-bgp] ipv4-family vpn-instance vpn1
[PE4-bgp-vpn1] peer 10.4.1.2 as-number 65420
[PE4-bgp-vpn1] quit
[PE4-bgp] quit
配置完成后,在PE设备上执行display bgp vpnv4 vpn-instance vpn-instance-name peer命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。各PE能ping通自己接入的CE。
(6)在CE1上配置允许CE1到CE2的流量允许负载分担。缺省情况下,BGP不能负载分担,只选择一条最优路由路径,即使存在像IGP中所说的“等价路由”。
[CE1] bgp 65410
[CE1-bgp] maximum load-balancing 2
[CE1-bgp] quit
(7)在PE3上配置路由策略,增大PE3上发布给CE2的BGP路由的MED值,使CE2到CE1的流量流经PE4,PE3作为备份。注意:要在具体的BGPVPN实例视图下应用路由策略。
[PE3] route-policy policy1 permit node 10
[PE3-route-policy] apply cost 120
[PE3-route-policy] quit
[PE3] bgp 100
[PE3-bgp] ipv4-family vpn-instance vpn1
[PE3-bgp-vpn1] peer 10.3.1.2 route-policy policy1 export
[PE3-bgp-vpn1] quit
[PE3-bgp] quit
查看CE2的BGP路由表,可发现对于到10.5.1.0/30的路由,PE3发布的MED值为120,比PE4发布的MED值大(缺省情况下MED的值为0),所以选择PE4发布的。
- 实验结果验证
(1)在CE1设备上执行display ip routing-table命令,可以看到去往对端CE2所接用户的路由,且是有两条EBGP路由进行负载分担的。
(2)在CE2设备上执行display ip routing-table命令,可以看到去往对端CE1所接用户网段10.5.1.0/24只有一条EBGP路由,且下一跳为10.4.1.1(PE4上接入CE2的接口IP地址)。
(3)CE1下面连接的用户可以与CE2下面连接的用户ping通。
以上就是本实验的全部配置及实验结果验证,内容有点多,但非常实用。原理也解释得很清楚,在许多场景下均可拿来即用哦,特别是在电信运营商工作的朋友,赶快收藏吧。欢迎大家一起多交流,有什么需求,可在下面留言,我会尽量满足的。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com