拓扑图
实验需求
1)Prefix-list
R3配置实现通告除了10.1.0.0/24和10.1.1.0/24以外的10.1.X.0/24的路由
2)BGP ORF
R2配置实现(1)需求
3)AS-Path-Filter
R3上配置3.3.3.3/32添加as-path 500并通告,R2过滤掉as-path为500的路由
4)Community-Filter
R3配置30.3.3.3携带团体属性200:3,R2过滤掉该属性路由
5)Filter-policy
AR1过滤10.1.x.0/24(x为偶数)的路由
基本配置
配置IP地址
建立BGP邻居
sysname AR1
#
interface GigabitEthernet0/0/0
ip address 12.1.1.1 255.255.255.0
#
interface NULL0
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
bgp 100
peer 2.2.2.2 as-number 100
peer 2.2.2.2 connect-interface LoopBack0
#
ip route-static 2.2.2.2 255.255.255.255 12.1.1.2
#
sysname AR2
#
interface GigabitEthernet0/0/0
ip address 12.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 23.1.1.2 255.255.255.0
#
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
#
bgp 100
peer 1.1.1.1 as-number 100
peer 1.1.1.1 connect-interface LoopBack0
peer 1.1.1.1 next-hop-local
peer 23.1.1.3 as-number 200
network 1.1.1.1 255.255.255.255
#
ip route-static 1.1.1.1 255.255.255.255 12.1.1.1
#
sysname AR3
#
interface GigabitEthernet0/0/0
ip address 23.1.1.3 255.255.255.0
#
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
#
interface LoopBack1
ip address 10.1.0.1 255.255.255.0
#
interface LoopBack2
ip address 10.1.1.1 255.255.255.0
#
interface LoopBack3
ip address 10.1.2.1 255.255.255.0
#
interface LoopBack4
ip address 10.1.3.1 255.255.255.0
#
interface LoopBack30
ip address 30.3.3.3 255.255.255.255
#
bgp 200
peer 23.1.1.2 as-number 100
#
查看BGP邻居关系
1)Prefix-list
R3配置实现通告除了10.1.0.0/24和10.1.1.0/24以外的10.1.X.0/24的路由
R3
route-policy D->B permit node 10
if-match ip-prefix 10
#
ip ip-prefix 10 index 10 permit 10.1.0.0 22 greater-equal 24 less-equal 24
#
bgp 200
import-route direct route-policy D->B
#
查看R2的BGP路由,收到了10.1.X.0/24的路由
R3上过滤掉10.1.0.0/24和10.1.1.0/24路由
R3
ip ip-prefix filter index 10 deny 10.1.0.0 23 greater-equal 24 less-equal 24
ip ip-prefix filter index 20 permit 0.0.0.0 0 less-equal 32
#
bgp 200
peer 23.1.1.2 ip-prefix filter export
#
查看R3给R2通告的路由,已过滤目标路由
R2上的BGP路由,没有10.1.0.0/24和10.1.1.0/24路由
2)BGP ORF
R2配置实现以上需求
R3上取消过滤策略
R2
ip ip-prefix 10 index 10 deny 10.1.0.0 23 greater-equal 24 less-equal 24
ip ip-prefix 10 index 20 permit 0.0.0.0 0 less-equal 32
#
bgp 100
peer 23.1.1.3 ip-prefix 10 import
peer 23.1.1.3 capability-advertise orf ip-prefix send
#
R3
bgp 200
undo peer 23.1.1.2 ip-prefix export
peer 23.1.1.2 capability-advertise orf ip-prefix receive
#
查看AR3通告的BGP路由,没有通告10.1.0.0/24和10.1.1.0/24路由
R2上的BGP路由,没有10.1.0.0/24和10.1.1.0/24路由
3)AS-Path-Filter
R3上配置3.3.3.3/32路由 添加as-path 500并通告,R2过滤掉as-path为500的路由
R3
ip ip-prefix lo index 10 permit 3.3.3.3 32
#
route-policy as permit node 10
if-match ip-prefix lo
apply as-path 500 500 additive
#
bgp 200
network 3.3.3.3 255.255.255.255 route-policy as
#
查看AR2的BGP路由,3.3.3.3/32的路由携带as-path 500
R2配置过滤as-path500结尾的路由
R2
ip as-path-filter 1 deny (500)$
ip as-path-filter 1 permit .*
#
bgp 100
peer 23.1.1.3 as-path-filter 1 import
#
查看R2的BGP路由表,过滤了AS 500结尾的路由
as-path filter中的正则表达式
特殊字符 | 功能 | 举例 |
\ | 转义字符。将下一个字符(特殊字符或者普通字符)标记为普通字符。 | \*匹配* |
^ | 匹配行首的位置。 | ^10匹配10.10.10.1,不匹配20.10.10.1 |
$ | 匹配行尾的位置。 | 1$匹配10.10.10.1,不匹配10.10.10.2 |
* | 匹配前面的子正则表达式零次或多次。 | 10*可以匹配1、10、100、1000、……(10)*可以匹配空、10、1010、101010、…… |
+ | 匹配前面的子正则表达式一次或多次。 | 10+可以匹配10、100、1000、……(10)+可以匹配10、1010、101010、…… |
? | 匹配前面的子正则表达式零次或一次。 | 10?可以匹配1或者10 (10)?可以匹配空或者10 |
. | 匹配任意单个字符。 | 0.0可以匹配0x0、020、…… .oo.可以匹配book、look、tool、…… |
() | 一对圆括号内的正则表达式作为一个子正则表达式,匹配子表达式并获取这一匹配。圆括号内也可以为空。 | 100(200)+可以匹配100200、100200200、…… |
x|y | 匹配x或y。 | 100|200匹配100或者2001(2|3)4匹配124或者134,而不匹配1234、14、1224、1334 |
[xyz] | 匹配正则表达式中包含的任意一个字符。 | [123]匹配255中的2 |
[^xyz] | 匹配正则表达式中未包含的字符。 | [^123]匹配除123之外的任何字符 |
[a-z] | 匹配正则表达式指定范围内的任意字符。 | [0-9]匹配0到9之间的所有数字 |
[^a-z] | 匹配正则表达式指定范围外的任意字符。 | [^0-9]匹配所有非数字字符 |
_ | 匹配一个逗号(,)、左花括号({)、右花括号(})、左圆括号、右圆括号。匹配输入字符串的开始位置。匹配输入字符串的结束位置。匹配一个空格。 | _2008_可以匹配2008、空格2008空格、空格2008、2008空格、,2008,、{2008}、(2008)、{2008)、(2008} |
4)Community-Filter
R3配置30.3.3.3携带团体属性200:3,R2过滤掉该属性路由
注意:配置通告团体属性
R3
route-policy add_comm permit node 10
apply community 200:3
#
route-policy comm permit node 10
apply community 200:3
#
bgp 200
network 30.3.3.3 255.255.255.255 route-policy add_comm
peer 23.1.1.2 advertise-community
#
查看R2关于30.3.3.3/32的路由,携带团体属性200:3
R2上过滤掉携带团体属性200:3的路由
R2
ip community-filter 1 deny 200:3
ip community-filter 1 permit
#
route-policy filter_comm permit node 10
if-match community-filter 1
#
bgp 100
peer 23.1.1.3 route-policy filter_comm import
#
查看R2的BGP路由表,携带200:3团体属性(30.3.3.3/32)的路由被过滤
5)Filter-policy
AR1过滤10.1.x.0/24(x为偶数)的路由
AR1的BGP路由表
AR1过滤10.1.x.0/24(x为偶数)的路由
R1
acl number 2000
rule 5 deny source 10.1.0.0 0.0.254.0
rule 10 permit
#
bgp 100
peer 2.2.2.2 filter-policy 2000 import
#
查看R1的BGP路由表,10.1.x.0/24(x为偶数)的路由已被过滤