route-map配合bgp、ospf
通过acl或前缀列表,把需要学习的路由匹配出来
注意:
1)匹配路由条目的工具有acl和前缀列表两种,只要选择其中一种就可以
2)若需要匹配一个网段下的几个子网路由,那么用前缀列表会更方便一线,当然用acl也是可以的,只是要写多个条目
如下示例,匹配路由条目172.16.1.32/27、172.16.1.48/28和172.16.1.56/29,acl需要写3个ace条目,前缀列表只要1个条目
1)使用acl匹配路由条目
注意:
此处acl匹配的是路由条目,掩码用0.0.0.0精确匹配对应的路由条目
R2(config)#ip access-list standard 1
R2(config-std-nacl)#10 permit 172.16.1.32 0.0.0.0
R2(config-std-nacl)#20 permit 172.16.1.48 0.0.0.0
R2(config-std-nacl)#30 permit 172.16.1.56 0.0.0.0
R2(config-std-nacl)#exit
2)使用前缀列表匹配路由条目
注意:
1)前缀列表只能用来匹配路由条目,不能用来做数据包过滤
2)前缀列表匹配的是一个网段下的子网,ge代表大于等于多少位掩码,le代表小于多少位掩码
3)前缀列表也是从上往下匹配,与acl的匹配顺序及规则是一样的
R2(config)#ip prefix-list ruijie seq 10 permit 172.16.1.0/24 ge 28 le 30 //定义前缀列表ruijie,匹配前缀为172.16.1.0/24,子网掩码大于等于28小于等于30的路由条目
配置route-map
注意:
1)route-map除了可以用来做路由过滤,还能够修改路由的属性
2)route-map可以match的条件比较多(包括 路由条目、metric、metric-type等条件),distribute-list只能匹配路由条目
3)route-map的执行顺序从上到下,最后隐含一条deny any
4)route-map的执行逻辑如下:
route-map aaa permit 10
match x y z //多个match条件横着写,是or的关系,只要满足其中一个条件,该match语句就算匹配
match a
set b //多个set语句竖着写,会同时执行多个set动作
set c
route-map aaa permit 20
match p
match q //多个match条件竖着写,是and的关系,要多个条件同时满足,该match语句才算匹配
set r
route-map aaa deny any (系统隐含)
执行逻辑如下:
If (x or y or z)
then set(b and c)
else if (p and q)
then set r
else deny
实例:
某台锐捷路由器R
ip access-list standard 1 #设置acl 1号抓取流量
10 permit 192.168.0.0 0.0.0.255
route-map x4 permit 10 #创建路由策略,调用1号acl,动作为修改Preferred-value为200
match ip address 1
set weight 200
route-map x4 permit 20 #设置空节点,一定需要,否则默认拒绝掉所有流量
router bgp 200 #进入bgp中对R3调用策略,根据选路规则将选择Preferred-value值大的
neighbor 3.3.3.3 route-map x4 in
————————————————

共有 0 条评论