随着电信业务的发展,各种电信业务将用统一的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只作为备份。

(干货实用的CE双归属BGP)(1)

实验拓扑结构

本实验的配置关键是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的建立情况。

(干货实用的CE双归属BGP)(2)

(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状态。

(干货实用的CE双归属BGP)(3)

(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。

(干货实用的CE双归属BGP)(4)

(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发布的。

(干货实用的CE双归属BGP)(5)

(1)在CE1设备上执行display ip routing-table命令,可以看到去往对端CE2所接用户的路由,且是有两条EBGP路由进行负载分担的。

(干货实用的CE双归属BGP)(6)

(2)在CE2设备上执行display ip routing-table命令,可以看到去往对端CE1所接用户网段10.5.1.0/24只有一条EBGP路由,且下一跳为10.4.1.1(PE4上接入CE2的接口IP地址)。

(干货实用的CE双归属BGP)(7)

(3)CE1下面连接的用户可以与CE2下面连接的用户ping通。

(干货实用的CE双归属BGP)(8)

以上就是本实验的全部配置及实验结果验证,内容有点多,但非常实用。原理也解释得很清楚,在许多场景下均可拿来即用哦,特别是在电信运营商工作的朋友,赶快收藏吧。欢迎大家一起多交流,有什么需求,可在下面留言,我会尽量满足的。

,