先说策略路由也就是 PBR:
它不会影响路由表的生成,设备的路由表是已经存在而且稳定的。
举个例子:
用 TCP/IP 路由技术一书的表述就是:策略路由就是一个复杂的静态路由。
总结:策略路由是一个基于路由表的影响特定数据包的转发的一个方式,这个方式是应用于接口下的。
例如:让源地址是 192.168.1.1 的数据包都从 s0/1 走,让源地址是 192.168.1.2 的数据包都从 s0/1 走
access-list 1 permit host 192.168.1.1
access-list 2 permit host 192.168.1.2
route-map ccie permit 10
match ip address 1
set interface s0/1
route-map ccie permit 20
match ip address 2
set interface s0/2
int fa1/0
ip policy route-map ccie
注意:set interface s0/1 与 set default interface s0/1
set ip next-hop 与 set default ip next-hop 是有区别的,前者不查找路由直接进行了转发,而后者是先查找路由表,查找不到精确的路由表时才会转发到下一跳接口或 IP。
注意:PBR 只有进方向方向,一定要注意!PBR 优先于路由表查找
注意:策略路由 PBR 默认只对穿越流量生效,
(config)# ip local policy route-map ccie // 这样写是策略理由也影响本地产生的流量
思科利用策略路由最常用的方式是丢弃报文:
set interface null 0 (这样比 acl deny 减少很多开销)
int null 0
no ip unreachable // 为了防止丢弃报文返回大量的不可达信息
然后讲讲路由策略:
和策略路由不同,路由策略是用来影响路由表最终生成的结果的,比如我可以用 route-map 匹配 ACL 之后修改 OSPF 网络中的 COST,这样一来对应的路由在插入路由表时 COST 列就会产生相应的变化。再比如可以匹配 ACL 一些源地址信息,然后修改下一跳的出口或 IP
路由策略一般与 BGP 结合使用的比较常见。
举个例子:
R3#sh run | s bgp
router bgp 20
no synchronization
bgp router-id 3.3.3.3
bgp log-neighbor-changes
network 3.3.3.3 mask 255.255.255.255
network 23.23.23.0 mask 255.255.255.0
network 33.33.33.0 mask 255.255.255.0
network 44.44.44.0 mask 255.255.255.0
network 55.55.55.0 mask 255.255.255.0
network 66.66.66.0 mask 255.255.255.0
neighbor 2.2.2.2 remote-as 20
neighbor 2.2.2.2 update-source Loopback0
neighbor 2.2.2.2 next-hop-self
neighbor 34.34.34.2 remote-as 30
neighbor 34.34.34.2 route-map ASPATH out
neighbor 38.38.38.2 remote-as 30
neighbor 38.38.38.2 send-community
neighbor 38.38.38.2 route-map LE32 out #########important!!!
no auto-summary
ip bgp-community new-format
############
R3#sh run | s route-map
neighbor 34.34.34.2 route-map ASPATH out
neighbor 38.38.38.2 route-map LE32 out
route-map LE32 permit 1
match ip address prefix-list Equal ########important!!!!!!!!!!!!
set weight 24 ########important!!!!!!!!!!!!
set origin incomplete ########important!!!!!!!!!!!!
set as-path prepend 24 24 24 24 ########important!!!!!!!!!!!!
set community 24:24 ########important!!!!!!!!!!!!
route-map LE32 permit 5
match ip address prefix-list GELE24
set origin egp 99
set as-path prepend 25 25 25
set community 25:25
route-map LE32 permit 7
match ip address prefix-list GELE22
set origin egp 99
set as-path prepend 26 26 26
set community 26:26
route-map LE32 permit 8
match ip address prefix-list GE8LE24
set origin egp 99
set as-path prepend 27 27 27
set community 27:27
route-map LE32 permit 10
match ip address prefix-list LE32
set community 0:11 0:22 0:33 0:44 0:55 0:66 0:77 0:88 0:99 0:111 0:222 0:333 0:444 0:555 0:666 0:777 0:888 0:999
route-map ASPATH permit 10
match ip address prefix-list ASPATH
set as-path prepend 100 100 100
route-map ASPATH permit 20
match ip address prefix-list ASPATH2
set as-path prepend 200 200 200
route-map ASPATH permit 30
#################
route-map ASPATH permit 30
R3#sh run | s prefix
ip prefix-list ASPATH seq 5 permit 1.1.1.1/32
ip prefix-list ASPATH2 seq 10 permit 3.3.3.3/32
ip prefix-list ASPATH20 seq 10 permit 3.3.3.3/32
ip prefix-list Equa seq 5 permit 166.166.166.166/32
ip prefix-list Equal seq 5 permit 33.33.33.0/24 ######important!!!!!!!!!!!!!
ip prefix-list GE8LE24 seq 5 permit 66.0.0.0/7 ge 8 le 24
ip prefix-list GELE22 seq 5 permit 55.0.0.0/8 ge 22 le 22
ip prefix-list GELE24 seq 5 permit 44.0.0.0/8 ge 24 le 24
ip prefix-list LE32 seq 10 permit 0.0.0.0/0 le 32
match ip address prefix-list Equal
match ip address prefix-list GELE24
match ip address prefix-list GELE22
match ip address prefix-list GE8LE24
match ip address prefix-list LE32
match ip address prefix-list ASPATH
match ip address prefix-list ASPATH2
我们以上面配置中标记了 important 的几行为重点。
我们在 R3 匹配了 33.33.33.0/24 的路由,发给邻居 R8 的时候我们使用 route map 修改了 bgp 的 origin, as-path 和 community。因为 weight 只是本地有效所以邻居收不到。
然后我们去邻居 R8 验证一下:
R8#sh ip bgp 33.33.33.0/24
BGP routing table entry for 33.33.33.0/24, version 3
Paths: (1 available, best #1, table default)
Not advertised to any peer
Refresh Epoch 1
20 24 24 24 24
38.38.38.1 from 38.38.38.1 (3.3.3.3)
Origin incomplete, metric 0, localpref 100, valid, external, best
Community: 24:24
rx pathid: 0, tx pathid: 0x0
R8#
我们看到 bgp 表的确发生了相应的变化。那么我们知道 bgp 的这些属性对于选路(判断路由优先级)至关重要,比如有两条相似的 bgp 路由,我们通过路由策略控制其中一条路由的 as path 长于另一条,那么就只有另一条 bgp 路由会被写进路由表。
总结:
路由策略是通过 route-map 等工具修改路由属性控制路由表的生成;属于控制层面
策略路由是优先且独立于路由表的一种控制、操作数据流的工具,比如可以直接丢弃满足特定条件的流量。属于数据层面
链接已沉寂
ref:http://blog.sina.com.cn/s/blog_5cfb2dc00102xxrj.html
路由策略 Routing Policy 和策略路由 PBR 的区别
这是面试的时候问道的一个问题,这里跟大家分享一下
路由策略 (Routing Policy) 是为了改变网络流量所经过的途径而修改路由信息的技术;
PBR (policy-based-route) 是一种依据用户制定的策略进行路由选择的机制;
可以把路由策略理解为一种改变路由属性的技术,策略路由是一种工程师设置的一种路由;
这里路由策略用 routing policy 代替,策略路由用 PBR 代替;
routing policy 通过改变了路由的属性,然后路由器根据路由属性然后达到路由过滤、负载均衡等目的;
PBR 是设置规则,匹配到路由直接控制这条路由的转发;
他们的工作机制一样,都是设置匹配规则,然后再执行动作,最后转发或者过滤;
区别
Routing Policy 的匹配规则
PBR 的匹配规则
可以看出,PBR 主要是匹配到这条路由后,执行转发动作,是一种及时性的,对后续没有影响
而路由策略则会对路由进行属性上的修改,这个属性会一直在该条路由上,对路由的影响是延续的;
我们再看看他们的转发过程
Routing Policy
PBR
可以看到 Routing Policy 全部节点都不满足,则就会被拒绝转发等等,而 PBR 全部节点不满足还是会转发,按照正常的路由转发
via: 路由策略 Routing Policy 和策略路由 PBR 的区别_policy routing-CSDN 博客 Kurtis Li 于 2020-09-03 14:28:10 发布
https://blog.csdn.net/qq_44314045/article/details/108381624