一、需求分析

1.1、网络环境介绍

  本案例要为大家介绍的案例是一个关于骨干网IPv4公网路由的割接,分为省级骨干网与地区级骨干网。先看结构图,然后再给大家解释。为了方便全省的骨干网PE设备的管理,由省内专门的管理员发现各地骨干网设备可能存在的问题,省级单位管理员专门部署了一套H3C IMC的网管系统,并给这套网管系统新增了一个自治系统,AS号码为:64570。这套H3C IMC网管系统与现行骨干网的结构如下图所示:

                                              blob.png

1.2、网络改造需求

       为了让新部署的H3C IMC网管系统能够访问到省级骨干网及所有地区级骨干网的所有PE级别的设备,并且能够成功管理,还不能给网络带来新的缺陷,所以本次网络改造的需求如下:

1.        本次网络改造范围为公网路由,不准对任何业务路由进行操作;

2.        IMC网管AS必须可以接收到省级骨干网的公网路由和全部地区的公网路由;

3.        地区与地区之间、地区与省网之间不允许相互接收到公网路由。由于所有公网路由都需要在省级骨干网上汇聚,所以请在省级骨干网上做好路由过滤;

4.        省级骨干平面AB网之间不能相互收取路由;

5.        网络第一次改造不做大段地址的路由聚合操作。

 

需求说完了,如果觉得看起来不是太明白的话,那么我就再给大家小小的解释一下吧。

l  所谓公网路由,这里千万不要理解为Internet!对于有MPLS VPN的骨干网来说,公网路由就是不属于任何VRFvpn-instance)的路由,即你show ip route或者display ip routing直接就能看到的路由。在骨干网中,公网路由通常用作管理地址和AS内部iBGP邻居的更新源地址。其实也就是在BGP进程中,address-family ipv4 unicast路由。

l  对于第2个需求,简单一点就是说,IMC网管的AS内部必须能收到全网的路由,而且IMC网管AS内部的路由,也能被全网收到。

l  3个需求嘛,就是说地区1只能收到IMC区域的路由,地区2也只能收到IMC区域的路由……以此类推。

 

1.3、链路公网互联地址及规划

         各个地区骨干网与省级骨干网之间公网互联地址(网段)见下表,IMC区域与升级骨干网之间的互联地址为新规划的地址。

地区

A1链路

A2链路

B1链路

B2链路

地区1

10.51.201.0/30

10.51.201.4/30

10.61.201.0/30

10.61.201.4/30

地区2

10.51.201.8/30

10.51.201.12/30

10.61.201.8/30

10.61.201.12/30

地区3

10.51.201.16/30

10.51.201.20/30

10.61.201.16/30

10.61.201.20/30

地区4

10.51.201.24/30

10.51.201.28/30

10.61.201.24/30

10.61.201.28/30

地区5

10.51.201.32/30

10.51.201.36/30

10.61.201.32/30

10.61.201.36/30

地区6

10.51.201.40/30

10.51.201.44/30

10.61.201.40/30

10.61.201.44/30

地区7

10.51.201.48/30

10.51.201.52/30

10.61.201.48/30

10.61.201.52/30

地区8

10.51.201.56/30

10.51.201.60/30

10.61.201.56/30

10.61.201.60/30

地区9

10.51.201.64/30

10.51.201.68/30

10.61.201.64/30

10.61.201.68/30

IMC网管

10.51.201.72/30

10.51.201.76/30

10.61.201.72/30

10.61.201.76/30

 

       在每一组互联地址段中,省网侧使用奇数地址,地区网侧使用偶数地址。

 

1.4、各区域内设备管理地址段

       在省级骨干网AB平面及各个地区网内,PEMCE设备均使用Loopback接口地址作为设备的管理地址。部分地区的CE设备使用Loopback接口地址作为管理地址,也有部分地区的CE设备使用某个VLAN的地址作为管理地址的。但是不管以什么接口的地址作为管理地址,最终也必须属于规定的网段。

       下表中列出了省级骨干网AB平面及各个地区网设备管理地址段的规划:

网络区域

AS 号码

管理地址段

省级骨干A

64810

10.51.202.0/24

省级骨干B

64880

10.51.222.0/24

地区1

64811

10.52.188.0/24

10.52.189.0/24

地区2

64812

10.52.190.0/24

10.52.191.0/24

地区3

64813

10.52.192.0/24

10.52.193.0/24

地区4

64814

10.52.194.0/24

10.52.195.0/24

地区5

64815

10.52.196.0/24

10.52.197.0/24

地区6

64816

10.52.198.0/24

10.52.199.0/24

地区7

64817

10.52.200.0/24

10.52.201.0/24

地区8

64818

10.52.202.0/24

10.52.203.0/24

地区9

64819

10.52.204.0/24

10.52.205.0/24

IMC

64570

10.114.144.0/24

 

二、前置知识点

2.1BGP路由过滤技术

       BGP的路由过滤有多种方法,最常用的方法有以下两种:

 

第一种方法:配置前缀列表,然后将这个前缀列表挂载到BGP邻居上。这种方式适合在双方都只收发BGP路由的时候使用。

前缀列表中有permitdeny的执行动作,如果执行动作permit,则这个前缀列表为白名单列表,只允许部分网段被传送;如果执行动作是deny,则这个前缀列表为黑名单列表,只过滤部分网段。

       简单的看一个在Cisco设备上配置的例子:

ip prefix deny_10 deny 10.112.1.0/24

 

router bgp 2300

 address-family ipv4

  neighbor 10.12.1.1 prefix-list   deny_10 in

 

       在这次操作中,前缀列表的执行动作为“deny”,包含的网段是10.112.1.0/24。在BGP配置进程中,针对10.12.1.1挂载前缀列表的方向为“in”方向。则说明这次操作中,该设备将不会从10.12.1.1收到10.112.1.0/24网段。

       如果是华为或者H3C设备的话,那么配置命令就该这么写:

ip ip-prefix deny_10 deny 10.112.1.0 24

 

bgp 2300

 ipv4-family unicast

  peer 10.12.1.1 ip-prefix deny_10 import

 

第二种方法:配置前缀列表,但是结合Route-map挂载到邻居上使用,这种方式适合在过滤路由的同时修改路径熟悉或路由重分发的时候使用。

    例如:将OSPF路由重分发到BGP中,但是不收取10.112.1.0/24这条路由,则它的配置命令如下:

Cisco

ip prefix deny_10 10.112.1.0/24

 

route-map deny_10

 match ip address prefix deny_10

router bgp 2300

 address-family ipv4

 redistribute ospf 2300 route-map   deny_10

 

华为&H3C

ip ip-prefix deny_10 10.112.1.0 24

 

route-policy deny_10

 if-match ip-prefix deny_10

 

bgp 2300

 ipv4-family unicast

  import ospf 2300 route-policy   deny_10

 

2.2BGP  Community

BGP Community属性是一种可选可传递的属性,它是BGP路由的一个标签(TAG)。如果你为某些BGP路由设置了Community属性的话,它就会带上Community标签,并有选择地发送给BGP邻居。邻居在收到了带有Community属性的路由条目以后,可以使用Community-List选择接收或者拒绝接收这条路由。所以,你可以用一种简单的方式理解BGP Community:它是BGP路由的一个标签,可以根据这个标签选择接收或者拒绝接收路由。

 

按照普通的IPv4单播网络和MPLS VPN网络来区分的话,BGP Commnuity有两类,一类是标准Communitystandard Community),用于IPv4单播网络;一类是扩展CommunityExtended Community)用于MPLS VPN环境中传递Route-Target。本案例不对私网路由进行配置,所以只使用标准Community

        

在标准Community中,又分为两种Community

n  众所周知的CommunityBGP预定义的Community,有固定格式和特定的功能,只能被使用不能被修改。

n  私有Community:用户自定义的Commuity

 

BGP拥有4个众所周知的Community

n  no-export:不将路由发送给任何EBGP邻居

n  no-advertise:不将路由发给任何BGP邻居

n  internet:可以将路由器发送给任何BGP邻居

n  local-as:不将路由发到AS

 

BGP的众所周知的Community有点简单粗暴,但是在实际的应用中还是有一定的用武之地的。不过相比起来,私有Community的应用更广泛一些。

 

私有Community的类型是十进制数字,默认长度是32bit。一般遵循的私有Community的格式为AS:nn格式,即16bitAS号码加上16bit0--65535)的任意整数。Cisco默认不支持AS:nn格式,必须要在全局模式下输入ip BGP-Community New-Format命令才能让私有Community显示为AS:nn格式。

 

私有Community发送给对方路由器以后,对方是不会对这个Community执行任何过滤的动作。如果想要过滤某些携带了私有Community属性的路由,可以通过配置Community-List来进行操作。例如,我们在设备上拒绝携带300:3标记的路由,在Cisco设备上配置方法如下:

ip community-list standard DENY_300:3   deny 300:3

//配置针对标准Community的Community-List,名称为DENY_300:3,拒绝的标记是300:3

 

route-map DENY_300:3 permit 10

 match community DENY_300:3

//配置Route-map,包含Community-List为DENY_300:3

 

router bgp 200

 address-family ipv4

  neighbor 10.23.1.2 route-map DENY_300:3 in

//调用route-map到邻居的in方向

 

这样,由于携带了300:3这个标记的路由是10.3.3.3/32,所以在该设备上收不到10.3.3.3/32这条路由。

使用Community属性来过滤路由,虽然设置起来相对prefix-list要复杂一些,但是使用Community属性效率更高,控制力度更强,防止路由从后门回灌的效果也更好,所以Community属性在实际应用中非常广泛。

2.3AS-Path正则表达式

因为BGP的路由通常会携带AS-Path,所以除了根据路由的IP来过滤之外,还可以根据路由携带的AS-Path来过滤,要匹配路由的AS-Path,需要使用正则表达式来匹配AS特征。在使用正则表达式的时候,需要注意两点:

1、  正则表达式只能用于过滤AS-Path属性;

2、由于第1点的原因,所以正则表达式只能用于eBGP邻居之间的过滤。

 

使用正则表达式过滤路由,虽然说它的使用面受到了一定的限制,但总的来说,它也是一种比较高效的路由过滤方法。下表中列出了BGP中的常用的正则表达式:

元字符特殊字符

匹配内容

.

任何单一字符,包括空格

[ ]

在方括弧中罗列的任何字符

[^]

除了在方括弧中罗列的字符外任何字符(^必须放置在字符列表之前)

-

(连字符)在由连字符所分隔的两个字符之间的任意字符

?

字符或模式出现0次或1次

*

字符或模式出现0次或多次

+

字符或模式出现1次或多次,可以多次匹配

^

一行的开始

$

一行的结束

|

由元字符特殊字符分隔的字之一

_

(下划线)一个逗号,行的开始,行的结束或空格

\

转义字符,当汇总加上as-set,会出现{100 200}。 \{ }\ 表示{}

 

       举例说明:

Ø  .*                     表示匹配任意

Ø  ^123$              表示只匹配AS 123

Ø  ^$                    表示没有经过任何AS,即本地AS的路由

Ø  ^12[0-3]$         表示匹配 120  121  122  123

Ø  ^12.                        表示匹配 12 120 129 开始的AS

Ø  _12_                表示匹配经过了AS 12的路由

 

配置BGP正则表达式需要使用AS-PathACL,即as-path access-list,它的配置方式和一般ACL基本一致,匹配规则也和ACL差不多:自上而下逐条匹配,并有隐含拒绝的功能。AS-PathACL的在Cisco设备配置命令如下:

ip as-path access-list   <list number> permit/deny REGEXP

 

         List Number表示表号,是一个任意的整数。这里没有基本ACL和高级ACL的区别;

       permit表示允许某个正则表达式的规则,deny表示拒绝某个正则表达式的规则。

 

         AS-PathACL配置好以后,直接使用filter-list关键字调用到BGP邻居上即可。如果本路由器要向邻居发送路由,则调用在out方向;如果本路由器要向邻居接收路由,则调用在in方向。以Cisco设备为例,应用如下:

router bgp XXXXX

address-family ipv4

nei x.x.x.x filter-list <list   number> in/out

 

三、方案设计与实施

3.1、总体规划思路

       根据第一节的需求,本次网络改造整体规划思路如下:

1.        IMC区域的两台ASBR通过eBGP的方式与省级骨干AB网互联,将IMC区域内部的网段通过重分发的方式注入BGP路由表。

2.        为了防止省级骨干AB平面相互收取公网路由,在IMC区域ASBR上,对本区域内的路由打上标准Community标记,标记值为64570:300,然后在省级骨干AB平面与IMC互联的ASBR上只收取包含64570:300标记的路由。

3.        为了防止省级骨干AB平面的公网路由通过其他地区网相互泄露传递,所以在地区网的ASBR上设置AS-Path正则表达式,地区网只向外发布本AS的路由。注意,不要把AS内的公网互联网段发布出去,仅发布LoopBack接口即可。

4.        公网选路方向为,A-1A-2B-1B-2。省网骨干AB平面之间调整Original属性进行选择,一个平面内的两条链路之间调整MED值和本地优先级属性进行选路。

 

各链路选路方向示意图:

blob.png

3.2、配置IMC区域的设备

       IMC区域的设备只有二台ASBR,型号为华为 9306。将其与省级骨干AB网的ASBR建立eBGP邻居关系。并将IMC区域内的服务器网段10.114.144.0/24发布到BGP中。

3.2.1、IMC区域ASBR-1上的配置脚本

IMC-9306-1上的配置脚本

配置二层Access接口

interface TenGigabitEthernet 1/0/1

 description To-Pro.A-12708-1

 port link-type access

 port access vlan 201

 

interface TenGigabitEthernet 1/0/2

 description To-Pro.B-12708-1

 port link-type access

 port access vlan 202

配置互联地址与OSPF

interface vlan 101

 description To-IMC-9306-B

 ip address 10.114.143.1   255.255.255.252

 

interface vlan 201

 description To-Pro.A-12708-1

 ip address 10.51.201.74   255.255.255.252

 

interface vlan 202

 description To-Pro.B-12708-1

 ip address 10.61.201.74   255.255.255.252

 

interface loopback 0

 ip address 10.114.144.1   255.255.255.255

 

interface TenGigabitEthernet 2/0/1

 description To-IMC-9306-B

 port link-type trunk

 port trunk permit vlan 101

 

ospf 64570 router-id 10.114.144.1

 area 0.0.0.0

  network 10.114.143.0 0.0.0.3

  networj 10.114.144.1 0.0.0.0

配置BGP邻居,然后将该区域的Loopback地址段注入BGP路由表

bgp 64570

 router-id 10.114.144.1

 undo default ipv4-unicast

 import-route ospf 64570   route-policy PERMIT_LOOP

 undo synchronization

 peer 10.114.144.2 as-number 64570

 peer 10.114.144.2   connect-interface LoopBack0

 peer 10.114.144.2 next-hop-local

peer 10.51.201.73   as-number 64810

 peer 10.61.201.73 as-number 64880

 

ip ip-prefix PERMIT_LOOP permit 10.114.144.0 24 le 32

 

route-policy PERMIT_LOOP permit node 10

 if-match ip-prefix PERMIT_LOOP

配置IMC区域发送给省级骨干A、B网的路由,并为其添加Community属性

ip ip-prefix PERMIT_LOOP index 10 permit 10.114.144.0 24 greater-equal 24   less-equal 32

 

route-policy IMC_Commu permit node 10

 if-match ip-prefix PERMIT_LOOP

 apply community 64570:300

 

bgp 64570

 ipv4-family unicast

 peer 10.51.201.73 route-policy   IMC_Commu export

 peer 10.61.201.73 route-policy   IMC_Commu export

 peer 10.51.201.73   advertise-community

 peer 10.61.201.73   advertise-community

配置IMC区域收取省级骨干A、B网的路由。

为了让路径优先选择省级骨干A网,所以收取A网的路由origin属性调整为IGP,把收取B网的路由origin属性调整为incomplete

而且,对于ASBR-1之间的链路会被优先选择,所以ASBR-1之间调高本地优先级。

ip ip-prefix From_ShengWangA permit 10.51.202.0 24 le 32

ip ip-prefix From_ShengWangA permit 10.112.188.0 24 le 32

 

route-policy From_ShengWangA permit node 10

 if-match ip-prefix From_ShengWangA

 apply origin igp

 apply local-pref 300

 

ip ip-prefix From_ShengWangB permit 10.51.222.0 24 le 32

ip ip-prefix From_ShengWangB permit 10.112.188.0 24 le 32

 

route-policy From_ShengWangB permit node 10

 if-match ip-prefix From_ShengWangB

 apply origin incomplete

 

bgp 64570

 ipv4-family unicast

 peer 10.51.201.73 route-policy   From_ShengWangA import

 peer 10.61.201.73 route-policy   From_ShengWangB import

 

3.2.2、IMC区域ASBR-2上的配置脚本

IMC-9306-2上的配置脚本

配置二层Access接口

interface TenGigabitEthernet 1/0/1

 description To-Pro.A-12708-2

 port link-type access

 port access vlan 201

 

interface TenGigabitEthernet 1/0/2

 description To-Pro.B-12708-2

 port link-type access

 port access vlan 202

配置互联地址与OSPF

interface vlan 101

 description To-IMC-9306-B

 ip address 10.114.143.2   255.255.255.252

 

interface vlan 201

 description To-Pro.A-12708-2

 ip address 10.51.201.78   255.255.255.252

 

interface vlan 202

 description To-Pro.B-12708-2

 ip address 10.61.201.78   255.255.255.252

 

interface loopback 0

 ip address 10.114.144.2   255.255.255.255

 

interface TenGigabitEthernet 2/0/1

 description To-IMC-9306-B

 port link-type trunk

 port trunk permit vlan 101

 

ospf 64570 router-id 10.114.144.2

 area 0.0.0.0

  network 10.114.143.0 0.0.0.3

  networj 10.114.144.2 0.0.0.0

配置BGP邻居,然后将该区域的Loopback地址段注入BGP路由表

bgp 64570

 router-id 10.114.144.2

 undo default ipv4-unicast

 import-route ospf 64570   route-policy PERMIT_LOOP

 undo synchronization

 peer 10.114.144.1 as-number 64570

 peer 10.114.144.1   connect-interface LoopBack0

 peer 10.114.144.1 next-hop-local

peer 10.51.201.77   as-number 64810

 peer 10.61.201.77 as-number 64880

 

ip ip-prefix PERMIT_LOOP permit 10.114.144.0 24 le 32

 

route-policy PERMIT_LOOP permit node 10

 if-match ip-prefix PERMIT_LOOP

配置IMC区域发送给省级骨干A、B网的路由,并为其添加Community属性

ip ip-prefix PERMIT_LOOP index 10 permit 10.114.144.0 24 greater-equal 24   less-equal 32

 

route-policy IMC_Commu permit node 10

 if-match ip-prefix PERMIT_LOOP

 apply community 64570:300

 

bgp 64570

 ipv4-family unicast

 peer 10.51.201.77 route-policy   IMC_Commu export

 peer 10.61.201.77 route-policy   IMC_Commu export

 peer 10.51.201.77   advertise-community

 peer 10.61.201.77   advertise-community

配置IMC区域收取省级骨干A、B网的路由。

为了让路径优先选择省级骨干A网,所以收取A网的路由origin属性调整为IGP,把收取B网的路由origin属性调整为incomplete

而且,对于ASBR-2之间的链路不会被优选,所以在这里不要修改其他的路径属性

ip ip-prefix From_ShengWangA permit 10.51.202.0 24 le 32

ip ip-prefix From_ShengWangA permit 10.112.188.0 24 le 32

 

route-policy From_ShengWangA permit node 10

 if-match ip-prefix From_ShengWangA

 apply origin igp

 

ip ip-prefix From_ShengWangB permit 10.51.222.0 24 le 32

ip ip-prefix From_ShengWangB permit 10.112.188.0 24 le 32

 

route-policy From_ShengWangB permit node 10

 if-match ip-prefix From_ShengWangB

 apply origin incomplete

 

bgp 64570

 ipv4-family unicast

 peer 10.51.201.77 route-policy   From_ShengWangA import

 peer 10.61.201.77 route-policy   From_ShengWangB import

 

3.3、配置省级骨干AASBR设备

3.2.1、省级骨干A网(Pro.A-12708-1)与IMC的配置脚本

Pro.A-IMC-12708-1上的配置脚本

配置本设备与IMC-1的eBGP邻居,并发布本AS内的Loopback接口网段进入BGP路由

ip ip-prefix Pro.A_Loop index 10 permit 10.51.202.0 24 less-equal 32

 

route-policy Pro.A_Loop permit node 10

 if-match ip-prefix Pro.A_Loop

 

bgp 64810

 peer 10.51.201.74 as-number 64570

  undo synchronization

  import-route ospf 64810   route-policy Pro.A_Loop

配置Community过滤,从IMC方向只收入包含64570:300属性的路由。防止省级骨干B网的路由从IMC区域回灌。

由于ASBR-1之间的链路会被优选,所以在这里调高本地优先级

ip community-filter 1 permit 64570:300

#

route-policy IMC_Filter permit node 10

 if-match community-filter 1

 apply local-pref 300

 

bgp 64810

 ipv4-family unicast

  peer 10.51.201.74 route-policy   IMC_Filter import

配置发送给IMC区域的路由,为了使得IMC能优选省级骨干A网,所以将Origin属性调整为IGP。

ip ip-prefix To_IMC permit 10.51.202.0 24 le 32

ip ip-prefix To_IMC permit 10.112.188.0 24 le 32

 

route-policy To_IMC permit node 10

 if-match ip-prefix To_IMC

 apply origin igp

 

bgp 64810

 ipv4-family unicast

  peer 10.51.201.74 route-policy   To_IMC export

 

3.2.2、省级骨干A网(Pro.A-12708-2)与IMC的配置脚本

Pro.A-IMC-12708-2上的配置脚本

配置本设备与IMC-1的eBGP邻居,并发布本AS内的Loopback接口网段进入BGP路由

ip ip-prefix Pro.A_Loop index 10 permit 10.51.202.0 24 less-equal 32

 

route-policy Pro.A_Loop permit node 10

 if-match ip-prefix Pro.A_Loop

 

bgp 64810

 peer 10.51.201.78 as-number 64570

  undo synchronization

  import-route ospf 64810   route-policy Pro.A_Loop

配置Community过滤,从IMC方向只收入包含64570:300属性的路由。防止省级骨干B网的路由从IMC区域回灌。

由于ASBR-1之间的链路不会被优选,就不要额外增加其他属性了

ip community-filter 1 permit 64570:300

#

route-policy IMC_Filter permit node 10

 if-match community-filter 1

 

bgp 64810

 ipv4-family unicast

  peer 10.51.201.78 route-policy   IMC_Filter import

配置发送给IMC区域的路由,为了使得IMC能优选省级骨干A网,所以将Origin属性调整为IGP。

不被优选的ASBR-2链路增大Cost值

ip ip-prefix To_IMC permit 10.51.202.0 24 le 32

ip ip-prefix To_IMC permit 10.112.188.0 24 le 32

 

route-policy To_IMC permit node 10

 if-match ip-prefix To_IMC

 apply origin igp

 apply cost + 300

 

bgp 64810

 ipv4-family unicast

  peer 10.51.201.78 route-policy   To_IMC export

 

3.2.3、省级骨干A网(Pro.A-DQ1-9306-1)与DQ1的配置脚本

Pro.A-DQ1-9306-1

为了防止省级骨干B网的路由通过地区网回灌,所以配置AS-Path正则表达式,过滤掉来自省级骨干B网的路由。

由于ASBR-1之间的链路将被优选,所以在这里加大本地优先级属性。

ip as-path-filter 1 deny _64880$

ip as-path-filter 1 permit .*

 

ip ip-prefix From_DQ1 permit 10.112.188.0 24 le 32

 

route-policy From_DQ1 permit node 10

 if-match ip-prefix From_DQ1

 apply local-pref 300

 

bgp 64810

 ipv4-family unicast

  peer 10.51.201.2 as-path-filter 1   import

  peer 10.51.201.2 route-policy   From_DQ1 import

配置发送给地区1骨干网的路由,并设置origin属性为IGP

ip ip-prefix To_DQ1 permit 10.51.202.0 24 le 32

ip ip-prefix To_DQ1 permit 10.114.144.0 24 le 32

 

route-policy To_DQ1 permit node 10

 if-match ip-prefix To_DQ1

 apply origin igp

 

bgp 64810

 ipv4-family unicast

  peer 10.51.201.2 route-policy   To_DQ1 export

 

3.2.4、省级骨干A网(Pro.A-DQ1-9306-2)与DQ1的配置脚本

Pro.A-DQ1-9306-2

为了防止省级骨干B网的路由通过地区网回灌,所以配置AS-Path正则表达式,过滤掉来自省级骨干B网的路由。

ip as-path-filter 1 deny _64880$

ip as-path-filter 1 permit .*

 

ip ip-prefix From_DQ1 permit 10.112.188.0 24 le 32

 

route-policy From_DQ1 permit node 10

 if-match ip-prefix From_DQ1

 

bgp 64810

 ipv4-family unicast

  peer 10.51.201.6 as-path-filter 1   import

  peer 10.51.201.6 route-policy   From_DQ1 import

配置发送给地区1骨干网的路由,并设置origin属性为IGP。

不被优选的ASBR-2之间的链路,加大Cost值。

ip ip-prefix To_DQ1 permit 10.51.202.0 24 le 32

ip ip-prefix To_DQ1 permit 10.114.144.0 24 le 32

 

route-policy To_DQ1 permit node 10

 if-match ip-prefix To_DQ1

 apply origin igp

 apply cost + 300

 

bgp 64810

 ipv4-family unicast

  peer 10.51.201.6 route-policy   To_DQ1 export

 

3.4、配置省级骨干BASBR设备

3.2.1、省级骨干B网(Pro.B-12708-1)与IMC的配置脚本

Pro.B-IMC-12708-1上的配置脚本

配置本设备与IMC-1的eBGP邻居,并发布本AS内的Loopback接口网段进入BGP路由

ip ip-prefix Pro.B_Loop index 10 permit 10.51.222.0 24 greater-equal 24   less-equal 32

 

route-policy Pro.B_Loop permit node 10

 if-match ip-prefix Pro.B_Loop

 

bgp 64810

 peer 10.61.201.74 as-number 64570

  undo synchronization

  import-route ospf 64880   route-policy Pro.B_Loop

配置Community过滤,从IMC方向只收入包含64570:300属性的路由。防止省级骨干B网的路由从IMC区域回灌。

由于ASBR-1之间的链路会被优选,所以在这里调高本地优先级

ip community-filter 1 permit 64570:300

#

route-policy IMC_Filter permit node 10

 if-match community-filter 1

 apply   local-pref 300

 

bgp 64880

 ipv4-family unicast

  peer 10.61.201.74 route-policy   IMC_Filter import

配置发送给IMC区域的路由,为了使得IMC能优选省级骨干A网,所以将Origin属性调整为incomplete以降低优先级。

 

ip ip-prefix To_IMC permit 10.51.222.0 24 le 32

ip ip-prefix To_IMC permit 10.112.188.0 24 le 32

 

route-policy To_IMC permit node 10

 if-match ip-prefix To_IMC

 apply   origin incomplete

 

bgp 64880

 ipv4-family unicast

  peer 10.61.201.74 route-policy   To_IMC export

 

3.2.2、省级骨干B网(Pro.B-12708-2)与IMC的配置脚本

Pro.B-IMC-12708-1上的配置脚本

配置本设备与IMC-1的eBGP邻居,并发布本AS内的Loopback接口网段进入BGP路由

ip ip-prefix Pro.B_Loop index 10 permit 10.51.222.0 24 greater-equal 24   less-equal 32

 

route-policy Pro.B_Loop permit node 10

 if-match ip-prefix Pro.B_Loop

 

bgp 64810

 peer 10.61.201.78 as-number 64570

  undo synchronization

  import-route ospf 64880   route-policy Pro.B_Loop

配置Community过滤,从IMC方向只收入包含64570:300属性的路由。防止省级骨干A网的路由从IMC区域回灌。

 

ip community-filter 1 permit 64570:300

#

route-policy IMC_Filter permit node 10

 if-match community-filter 1

 

bgp 64880

 ipv4-family unicast

  peer 10.61.201.78 route-policy   IMC_Filter import

配置发送给IMC区域的路由,为了使得IMC能优选省级骨干A网,所以将Origin属性调整为incomplete以降低优先级。

不被优选的链路,必须加大Cost值

ip ip-prefix To_IMC permit 10.51.222.0 24 le 32

ip ip-prefix To_IMC permit 10.112.188.0 24 le 32

 

route-policy To_IMC permit node 10

 if-match ip-prefix To_IMC

 apply origin incomplete

 apply cost + 300

 

bgp 64880

 ipv4-family unicast

  peer 10.61.201.78 route-policy   To_IMC export

 

3.2.3、省级骨干B网(Pro.B-DQ1-9306-1)与DQ1的配置脚本

Pro.B-DQ1-9306-1

为了防止省级骨干A网的路由通过地区网回灌,所以配置AS-Path正则表达式,过滤掉来自省级骨干A网的路由。

由于ASBR-1之间的链路将被优选,所以在这里加大本地优先级属性。

ip as-path-filter 1 deny _64810$

ip as-path-filter 1 permit .*

 

ip ip-prefix From_DQ1 permit 10.112.188.0 24 le 32

 

route-policy From_DQ1 permit node 10

 if-match ip-prefix From_DQ1

 apply local-pref 300

 

bgp 64880

 ipv4-family unicast

  peer 10.61.201.2 as-path-filter 1   import

  peer 10.61.201.2 route-policy   From_DQ1 import

配置发送给地区1骨干网的路由,并设置origin属性为IGP

ip ip-prefix To_DQ1 permit 10.51.222.0 24 le 32

ip ip-prefix To_DQ1 permit 10.114.144.0 24 le 32

 

route-policy To_DQ1 permit node 10

 if-match ip-prefix To_DQ1

 apply origin inc

 

bgp 64880

 ipv4-family unicast

  peer 10.61.201.2 route-policy   To_DQ1 export

 

3.2.4、省级骨干B网(Pro.B-DQ1-9306-2)与DQ1的配置脚本

Pro.B-DQ1-9306-2

为了防止省级骨干A网的路由通过地区网回灌,所以配置AS-Path正则表达式,过滤掉来自省级骨干A网的路由。

ip as-path-filter 1 deny _64810$

ip as-path-filter 1 permit .*

 

route-policy From_DQ1 permit node 10

 if-match ip-prefix From_DQ1

 

bgp 64880

 ipv4-family unicast

  peer 10.61.201.6 as-path-filter 1   import

  peer 10.61.201.6 route-policy   From_DQ1 import

配置发送给地区1骨干网的路由,并设置origin属性为IGP。

不被优选的ASBR-2之间的链路,加大Cost值。

ip ip-prefix To_DQ1 permit 10.51.222.0 24 le 32

ip ip-prefix To_DQ1 permit 10.114.144.0 24 le 32

 

route-policy To_DQ1 permit node 10

 if-match ip-prefix To_DQ1

 apply origin inc

 apply cost + 300

 

bgp 64880

 ipv4-family unicast

  peer 10.61.201.6 route-policy   To_DQ1 export

 

 

3.5、配置地区1骨干网网ASBR设备

3.5.1、配置地区1的ASBR-1

DQ1-ASBR-9306-1

配置发送给省级骨干A、B网的路由。

为本AS内的路由打上64811:811标记

ip ip-prefix DQ1_Loop index 10 permit 10.112.188.0 24 greater-equal 24   less-equal 32

 

route-policy DQ1_Comm permit node 10

 if-match ip-prefix PERMIT_LOOP

 apply community 64811:811

 

bgp 64811

 ipv4-family unicast

  peer 10.51.201.1 route-policy   DQ1_Comm export

  peer 10.61.201.1 route-policy   DQ1_Comm export

  peer 10.51.201.1   advertise-community

  peer 10.61.201.1   advertise-community

配置从省级骨干A、B网接收的路由

ip ip-prefix From_ShengWangA permit 10.51.202.0 24 le 32

ip ip-prefix From_ShengWangA permit 10.114.144.0 24 le 32

 

route-policy From_ShengWangA permit node 10

 if-match ip-prefix From_ShengWangA

 apply origin igp

 apply local-pref 300

 

ip ip-prefix From_ShengWangB permit 10.51.222.0 24 le 32

ip ip-prefix From_ShengWangB permit 10.114.144.0 24 le 32

 

route-policy From_ShengWangB permit node 10

 if-match ip-prefix From_ShengWangB

 apply origin incomplete

 

bgp 64811

 ipv4-family unicast

 peer 10.51.201.1 route-policy   From_ShengWangA import

 peer 10.61.201.1 route-policy   From_ShengWangB import

 

3.5.2、配置地区1的ASBR-2

DQ1-ASBR-9306-2

配置发送给省级骨干A、B网的路由。

为本AS内的路由打上64811:811标记

ip ip-prefix DQ1_Loop index 10 permit 10.112.188.0 24 greater-equal 24   less-equal 32

 

route-policy DQ1_Comm permit node 10

 if-match ip-prefix PERMIT_LOOP

 apply community 64811:811

 apply cost + 300

 

bgp 64811

 ipv4-family unicast

  peer 10.51.201.5 route-policy   DQ1_Comm export

  peer 10.61.201.5 route-policy   DQ1_Comm export

  peer 10.51.201.5   advertise-community

  peer 10.61.201.5   advertise-community

配置从省级骨干A、B网接收的路由

ip ip-prefix From_ShengWangA permit 10.51.202.0 24 le 32

ip ip-prefix From_ShengWangA permit 10.114.144.0 24 le 32

 

route-policy From_ShengWangA permit node 10

 if-match ip-prefix From_ShengWangA

 apply origin igp

 

ip ip-prefix From_ShengWangB permit 10.51.222.0 24 le 32

ip ip-prefix From_ShengWangB permit 10.114.144.0 24 le 32

 

route-policy From_ShengWangB permit node 10

 if-match ip-prefix From_ShengWangB

 apply origin incomplete

 

bgp 64811

 ipv4-family unicast

 peer 10.51.201.5 route-policy   From_ShengWangA import

 peer 10.61.201.5 route-policy   From_ShengWangB import

 

四、风险分析和回退措施

4.1、该案例可能存在的风险

       本次新增的IMC区域包括地区级骨干网,与省级骨干网AB两个平面对接,需要在4条互联链路之间进行路由过滤及选路调整。所以在割接的时候,不能只盯着各地ASBR与省级骨干A网主用设备那条链路,在割接完成以后要逐次断开链路进行测试。因为,第一条链路断开以后,必须保证路由还能正常学习到,而且IMC也能够通过省级骨干网访问到地区级骨干网。所以,在配置完命令以后,一定要做好每条链路上的测试。

       在写完配置命令以后,首先断开地区ASBR-1与省级骨干AASBR-1之间的链路,然后测试地区ASBR-2与省级骨干AASBR-2之间的业务流是否正常。然后断开地区ASBR-2与省级骨干AASBR-1之间的链路,此时地区网已经和省级骨干网A网完全断开了,所以检查的目标是IMC与地区骨干网之间经过省级骨干BASBR-1的流量是否正常。甚至是你到最后可以断开三条链路,只留下ASBR-2与省级骨干BASBR-2之间的链路,这个时候仍然也需要保证流量是正常的。

       在两个网络平面4条链路之间依次做路由聚合和选路的操作,很容易出现的问题就是IMC与地区网之间出现来回路径不一致的问题。所以在割接的时候一定要做双向Tracert检查,保证业务路径一致以后才能算完成。

      

       此外,在编写配置脚本的时候,也需要仔细检查,以免因为写错了命令或参数造成一些难以解决的故障。

 

五、本案例实验室验证

5.1、模拟实验思路

       本案例属于骨干网割接,所以不可能搭建一个一模一样的拓扑图。所以我们在使用模拟实验验证的时候,需要把关键的设备表示出来。即:你需要4AS,表示IMC和地区骨干网的AS各需要两台设备;表示省级骨干网AB平面的需要4台设备。该模拟实验的重点主要提现在以下几个方面:

1.        验证BGP Community路由过滤,能否达到本案例改造的需求;

2.        验证BGP的选路方向;

3.        验证IMC和地区网之间,该收到的路由能不能相互收到;

4.        检查关键设备的配置脚本。

 

5.2、华为设备模拟实验拓扑图

blob.png

       如图所示:

1.        AR1AR2模拟IMC区域的两台华为 9306AS号码64570

2.        AR3AR4AR5AR6模拟省级骨干A网内的4ASBRAS号码64810

3.        AR7AR8AR9AR10模拟省级骨干B网内的4ASBRAS号码64880

4.        AR11AR12模拟地区1骨干网的两台ASBRAS号码64811

 

该实验的要求是:

l  AR1AR2能收到AS 64810AS 64880AS 64811内设备的所有LoopBack接口地址,并且能ping通;

l  AR11AR12只能收到AS 64810内的Loopback接口地址且能ping通;

l  AS 64810AS 64880内的设备不能相互收取对方AS的路由。

 

由于本次割接牵涉的路由都是公网路由,所以在这个模拟实验中,没有必要配置和MPLS VPN有关的命令。

5.3、模拟实验关键配置说明

       该实验用了较多的设备,力求在最大限度做到和真实环境相当。所以,ASBR之间的互联地址,设备的Loopback地址段,必须使用与现网环境相同的地址;而AS号码,也需要和现网环境相同。

       另外,在配置BGP的时候,由于每个AS内部设备较少,所以可以采用Full Mesh的方式建立iBGP邻居,只要保证iBGP路由条目能够传递到任何一个设备即可。

 

六、经验总结

       本次割接是需要在两个网络平面之间的4条链路上对路由进行优化和调整,所以除了需要熟悉网络环境以外,对BGP选路的相关技术也要了如指掌才可以。另外, BGP邻居在同一个方向(importexport)只能挂载一个Route-policy,所以对于相同一段需要设置路径属性的前缀列表,只能是把多个路径属性设置在同一个Route-policy中,则这个时候就不要把路径属性设置冲突了。

       另外,对于这种ASBR之间执行路由过滤和选路,按道理来说只需要在一边ASBR上设置export属性,接收那一边就可以自动应用这个属性,但是为了保险起见呢,最要也在接收一边的ASBR上同时import一下同样的属性。