注: 本文为 “策略路由和路由策略” 相关文章合辑。
未整理去重。
策略路由和路由策略
策略路由 (PBR)
策略路由不会影响路由表的生成,设备的路由表是已经存在且稳定的。用《TCP/IP 路由技术》一书的表述,策略路由就是一个复杂的静态路由。
策略路由是一种基于路由表,影响特定数据包转发的方式,应用于接口下。例如,让源地址是 192.168.1.1 的数据包都从 s0/1 转发,源地址是 192.168.1.2 的数据包都从 s0/2 转发,配置如下:
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 等工具修改路由属性,控制路由表的生成,属于控制层面。
-
策略路由:优先且独立于路由表,是一种控制、操作数据流的工具,例如可以直接丢弃满足特定条件的流量,属于数据层面。
路由策略 Routing Policy 和策略路由 PBR 的区别
Kurtis Li 于 2020-09-03 14:28:10 发布
路由策略 (Routing Policy) 是为了改变网络流量所经过的途径而修改路由信息的技术;
PBR (policy-based-route) 是一种依据用户制定的策略进行路由选择的机制;
可以把路由策略理解为一种改变路由属性的技术,策略路由是一种工程师设置的一种路由;
这里路由策略用 routing policy 代替,策略路由用 PBR 代替;
routing policy 通过改变了路由的属性,然后路由器根据路由属性,达到路由过滤、负载均衡等目的;
PBR 是设置规则,匹配到路由直接控制这条路由的转发;
他们的工作机制一样,都是设置匹配规则,然后再执行动作,最后转发或者过滤;
区别
Routing Policy 的匹配规则
PBR 的匹配规则
可以看出,PBR 主要是匹配到这条路由后,执行转发动作,是一种及时性的,对后续没有影响
而路由策略则会对路由进行属性上的修改,这个属性会一直在该条路由上,对路由的影响是延续的;
转发过程
Routing Policy
PBR
可以看到,Routing Policy 全部节点都不满足,则就会被拒绝转发,而 PBR 全部节点不满足还是会转发,按照正常的路由转发。
策略路由(Policy-Based-Route)
李白你好于 2021-02-09 12:11:26 发布
定义及运用场景
PBR: Policy-Based-Route,该技术打破了路由表的传统选路规则,可以根据管理员定义的策略条件来选择性的转发数据包。
学生网段 ——ISP1
教师网段 ——ISP2
路由策略、策略路由的区别
策略路由规则
策略路由可以用在下一跳或者是出接口上
策略路由类型
本地策略路由
接口策略路由
配置案例一
本地策略路由:仅对本机下发的报文进行处理,对转发的报文不起作用。
R1:
g0/0/0:1.0.0.1
g0/0/1:2.0.0.1
R2:
g0/0/0:1.0.0.2
g0/0/1:2.0.0.2
lo 6:6.6.6.6
lo 7:7.7.7.7
R1 上有两条静态路由
ip route-s 6.6.6.6 32 1.0.0.2
ip route-s 7.7.7.7 32 2.0.0.2
策略
去目的 IP 7.7.7.7 走 g0/0/0
去目的 IP 6.6.6.6 走 g0/0/1
基础配置
R1
sy
sy R1
int g0/0/0
ip add 1.0.0.1 24
int g0/0/1
ip add 2.0.0.1 24
q
ip route-s 6.6.6.6 32 1.0.0.2
ip route-s 7.7.7.7 32 2.0.0.2
R2
sy
sy R2
int g0/0/0
ip add 1.0.0.2 24
int g0/0/1
ip add 2.0.0.2 24
int lo 6
ip add 6.6.6.6 32
int lo 7
ip add 7.7.7.7 32
12345678910
策略配置
ACL
策略
策略路由用在了接口上
查看结果
在 R1 上 ping 不通 6.6.6.6、7.7.7.7
分析原因
抓包
R1 接口 g0/0/0
R1 接口 g0/0/1
ARP 广播包发送只能在同一个网段内
而下一跳 IP 与目的网络 IP 不在同一个网段
所以出现了 ping 不通的情况
解决方法
在目的网路接口处开启 ARP 代理
arp-proxy enable
开启 ARP 代理后在 ping
补充
当我们配置静态路由时建议用下一跳 IP,不用出接口
关闭 ARP 代理,把策略路由改为下一跳
在路由器 R2 的接口上
undo arp-proxy enable
策略路由改为下一跳
删除原来应用在接口上的策略
改为下一跳
将策略路由用在下一跳上不做 ARP 代理也能 ping 通
加菜
pc1 能 ping 通 6.6.6.6、7.7.7.7
R1 的 g0/0/2
R2 上做通往 192.168.0.0 的静态路由
PC1 上 ping6.6.6.6、7.7.7.7
请求走左边的接口
回复走右边的接口
原因:负载均衡
配置案例二
接口策略路由:仅对转发的报文器作用,对本地下发的报文不起作用。
用流分类、流行为、流策略控制 ICMP 的数据包从 G0/0/1 走
客户端、服务器配置
R2 的 G0/0/2:172.16.0.254
把配置案例一中的 R2 上的静态路由去掉
在 R1、R2 上运行动态路由 OSPF
在服务器上启动 FTP、HTTP 服务
用客户端验证
抓包验证
接口配置策略路由
在路由器 R1 上配置流策略
重新抓包查看策略对数据包的影响效果
理解路由控制(路由策略、策略路由)
darkqaz 于 2020 - 11 - 26 10:49:41 发布
前言
在企业网络的设备通信中,常面临非法流量访问的安全性及流量路径不优等问题。为保证数据访问的安全性、提高链路带宽利用率,需要对网络中的流量行为进行控制,如控制网络流量可达性、调整网络流量路径等。
当面对更复杂、精细的流量控制需求时,需灵活使用工具来实现。本课程主要介绍有关流量控制的常用工具及其使用场景。
控制网络流量可达性
思考
如何控制网络流量可达性?
解决方案
- 解决方案一:路由策略:通过修改路由条目(即对接收和发布的路由进行过滤)来控制流量可达性。
- 解决方案二:策略路由:直接依据用户制定的策略进行转发,且该策略优于路由表转发。
路由策略
路由策略(Routing Policy)的作用是当路由器在发布、接收和引入路由信息时,可根据实际组网需要实施策略,对路由信息进行过滤或改变路由信息的属性,具体如下:
- 控制路由的发布:只发布满足条件的路由信息。
- 控制路由的接收:只接收必要、合法的路由信息,以控制路由表的容量,提高网络的安全性。
- 过滤和控制引入的路由:一种路由协议在引入其它路由协议时,只引入一部分满足条件的路由信息,并对所引入的路由信息的某些属性进行设置,以使其满足本协议的要求。
- 设置特定路由的属性:为通过路由策略过滤的路由设置相应的属性。
路由策略的应用方式
- 利用 Filter - Policy 工具:对 RTA 向 OSPF 引入的路由和 RTC 写入路由表的路由进行过滤。
- 首先使用 ACL 或 IP - Prefix List 工具来匹配目标流量。
- 然后在协议视图下,利用 Filter - Policy 向目标流量发布策略。
- 利用 Route - Policy 工具:在 RTA 引入直连路由时对路由进行过滤。
- 首先使用 ACL 或 IP - Prefix List 工具来匹配目标流量。
- 然后在协议视图下,利用 Route - Policy 对引入的路由条目进行控制。
ACL 应用
访问控制列表 ACL(Access Control List)是由 permit 或 deny 语句组成的一系列有顺序规则的集合,通过匹配报文的信息实现对报文的分类。
acl 2001 // 创建 ACL 编号 2001
rule 0 permit source 1.1.0.0 0.0.255.255 // 匹配规则 permit (通过)/deny(拒绝), 通过 1.1.0.0/16
ACL 的分类:
- 基本 ACL:主要基于源地址、分片标记和时间段信息对数据包进行分类定义,编号范围为 2000 - 2999。
- 高级 ACL:可以基于源地址、目的地址、源端口号、目的端口号、协议类型、优先级、时间段等信息对数据包进行更为细致的分类定义,编号范围为 3000 - 3999。
- 二层 ACL:主要基于源 MAC 地址、目的 MAC 地址和报文类型等信息对数据包进行分类定义,编号范围为 4000 - 4999。
- 用户自定义 ACL:主要根据用户自定义的规则对数据报文做出相应的处理,编号范围为 5000 - 5999。
一个 ACL 可以由多条 “deny | permit” 语句组成,每一条语句描述了一条规则。设备收到数据流量后,会逐条匹配 ACL 规则,看其是否匹配。如果不匹配,则继续匹配下一条。一旦找到一条匹配的规则,就会执行规则中定义的动作,且不再继续与后续规则进行匹配;如果找不到匹配的规则,则设备会对报文直接进行转发。
需要注意的是,ACL 中定义的这些规则可能存在重复或矛盾的地方。规则的匹配顺序决定了规则的优先级,ACL 通过设置规则的优先级来处理规则之间重复或矛盾的情形。
ACL 可以灵活地匹配 IP 地址的前缀,但无法匹配掩码长度,例如 1.1.1.0/24 与 1.1.1.0/25 网段不同,无法匹配过滤。
IP - Prefix List 应用
地址前缀列表即 IP - Prefix List。可以通过地址前缀列表,将与所定义的前缀过滤列表相匹配的路由,根据定义的匹配模式进行过滤,以满足使用者的需要。
[SW1] ip ip - prefix key permit 1.1.1.0 24
这个 24 代表 IP 地址的前面 24 位是固定的,后面由于没有加掩码的参数,那么这个 24 也代表着该前缀的掩码长度同样也为 24 位,也就是只能匹配到一条路由,为 1.1.1.0/24。
[SW1] ip ip - prefix key permit 192.168.1.0 24 greater - equal 25 less - equal 32
这个 24 代表 IP 地址的前面 24 位是固定的,后面掩码的范围是 25 到 32 之间可以匹配,但是不能匹配到 192.168.1.0/24,因为掩码的位数是 25 到 32 之间。
Filter - Policy 工具介绍
应用各协议中的 Filter - Policy 工具可通过引用 ACL 或地址前缀列表,对接收、发布和引入的路由进行过滤。 对于距离矢量协议和链路状态协议,Filter - Policy 工具的操作过程是不同的。
filter - policy { acl - number | ip - prefix ip - prefix - name } import // 对接收路由信息过滤
filter - policy { acl - number | ip - prefix ip - prefix - name } export // 对应引入路由信息过滤
对于距离矢量协议:是基于路由表生成路由的,因此过滤器会影响从邻居接收的路由和向邻居发布的路由。
在 RIP 协议中实战演示
- filter - policy 在 import 方向上调用的时候,会影响自身路由表的变化,邻居设备也会受影响。
- filter - policy 在 export 方向上调用的时候,不会影响自身路由表的变化,但邻居设备会受影响。
链路状态协议:只对引入的路由信息进行过滤,不影响链路通告与链路状态数据库完整性以及协议路由,只影响本地路由。
在 OSPF 协议中实战演示
由于 OSPF 是链路状态路由协议,传递的是 LSA 信息,而 filter - policy 过滤的是路由信息,因此 R3 路由表中可以学习到完整的条目,针对于在同一个 ospf 的区域当中。
因为 R2 是 ABR 路由器。而 OSPF 在整个区域内是链路状态路由协议,在区域间是距离矢量路由协议,所以,可以在 R2 的 import 方向上进行过滤动作,故 R3 上面也没有奇数路由条目(不能在 R2 出方向上面进行过滤)。
Route - Policy 工具介绍
Route - Policy 是一种功能非常强大的路由策略工具,它可以灵活地与 ACL、IP - Prefix List、As - Path - Filter 等其它工具配合使用。
route - policy route - policy - name { permit | deny } node node
if - match {acl/cost/interface/ip next - hop/ip - prefix}
apply {cost/ip - address next - hop/tag} // 类似 if 语句
Route - Policy 的每个 node 都有相应的 permit 模式或 deny 模式。如果是 permit 模式,则当路由项满足该 node 的所有 if - match 子句时,就被允许通过该 node 的过滤并执行该 node 的 apply 子句,且不再进入下一个 node;如果路由项没有满足该 node 的所有 if - match 子句,则会进入下一个 node 继续进行过滤。如果是 deny 模式,则当路由项满足该 node 的所有 if - match 子句时,就被拒绝通过该 node 的过滤,这时 apply 子句不会被执行,并且不进入下一个 node;否则就进入下一个 node 继续进行过滤。
思路:
-
Pref1 用来匹配 5.5.5.5/32 或 1.1.2.0/24,它们将被 route - policy RP 的 node 10 过滤掉(deny),所以 Table - 2 中见不到 5.5.5.5/32 和 1.1.2.0/24。
-
Pref2 用来过滤 6.6.6.6/32(deny),所以尽管 route - policy RP 的 node 20 是 permit,6.6.6.6/32 仍然会被过滤掉。因此,Table - 2 中见不到 6.6.6.6/32。
-
route - policy RP 的 node 30 定义了两个 if - match 语句,分别针对 ACL 2001 和 ACL 2002。匹配 ACL 2001 的路由有 1.1.3.0/24(下一跳为 34.34.34.2)、1.1.3.0/24(下一跳为 13.13.13.1)、1.1.3.0/25(下一跳为 34.34.34.2)、1.1.3.0/25(下一跳为 13.13.13.1),同时又匹配 ACL 2002 的路由有 1.1.3.0/24(下一跳为 13.13.13.1)和 1.1.3.0/25(下一跳为 13.13.13.1)。于是,1.1.3.0/24(下一跳为 13.13.13.1)和 1.1.3.0/25(下一跳为 13.13.13.1)的 cost 被修改为 21。
-
1.1.3.0/24(下一跳为 34.34.34.2)和 1.1.3.0/25(下一跳为 34.34.34.2)继续尝试通过 route - policy RP 的 node 40。由于 1.1.3.0/25 满足 Pref3,所以 1.1.3.0/25(下一跳为 34.34.34.2)的 cost 被修改为 11。
-
最后,1.1.3.0/24(下一跳为 34.34.34.2)通过了 route - policy RP 的 node 50。
实例:
如图所示:RTC 设备配置禁止与 10.1.1.0 24 网段的设备通信,RTA 禁止与 10.1.2.0 网段设备进行通信。
RTA 还可以使用 route - policy 工具实现,配置需求如下:
acl 2000
rule 0 permit source 10.1.1.0 0.0.0.255
rule 5 permit source 10.1.3.0 0.0.0.255
route - policy huawei - control permit node 10 if - match acl 2000
ospf 1
import - route direct route - policy huawei - control
策略路由
传统的路由策略没有负载分担,策略路由有负载分担,可提高带宽使用率。策略路由 PBR 分为三种:
- 本地策略路由:当用户需要实现不同源地址的报文或者不同长度的报文通过不同的方式进行发送时,可以配置本地策略路由,常用 policy - Based - Route 工具来实现。
- 智能策略路由:基于链路质量信息为业务数据流选择最佳链路,当用户需要为不同业务选择不同质量的链路时,可以配置智能策略路由,常用 Smart - Policy - Route 工具。
- 接口策略路由:当用户需要将收到的某些报文通过特定的下一跳地址进行转发时,需要配置接口策略路由,使匹配重定向规则的报文通过特定的下一跳出口进行转发,不匹配重定向规则的报文则根据路由表直接转发。接口策略路由多应用于负载分担和安全监控,常用 Traffic - Policy 工具来实现。
基于自定义策略实现:使用 Traffic - Filter 工具对数据进行过滤。
经测试,在设置完策略路由后,RTC 的路由表仍然有全网的路由,且市场部无法访问财务部和研发部,对于其他部门仍可正常访问。同样,RTD 的路由表也有全网的路由,且公司总部无法访问研发部,其他仍可正常访问。
Traffic - Policy 工具使用
[RTA] acl 3000
rule 5 permit ip source 10.1.1.0 0.0.0.255 dest 10.1.3.0 0.0.0.255
traffic classifier huawei - control1
if - match acl 3000
traffic behavior huawei - control1
redirect ip - nexthop 12.1.1.2
traffic policy huawei - control1
classifier huawei - control1 behavior huawei - control1
int g0/0/2
traffic - policy huawei - control1 inbound
[RTA] acl 3001
rule 5 permit ip source 10.1.2.0 0.0.0.255 dest 10.1.3.0 0.0.0.255
traffic classifier huawei - control2
if - match acl 3001
traffic behavior huawei - control2
redirect ip - nexthop 12.1.3.2
traffic policy huawei - control2
classifier huawei - control2 behavior huawei - control2
int g4/0/0
traffic - policy huawei - control2 inbound
路由策略与策略路由的区别
路由策略 | 策略路由 |
---|---|
基于控制平面,会影响路由表表项 | 基于转发平面,不会影响路由表表项,且设备收到报文,就会查找策略路由进行匹配转发,如匹配失败,则再由路由表进行转发 |
只能基于目的地址进行策略制定 | 可基于源地址、目的地址、协议类型、报文大小等进行制定 |
与路由协议相结合使用 | 需手工逐跳配置,以保证报文按照策略进行转发 |
常用工具:Route - Policy、Filter - Policy 等 | 常用工具:Traffic - Filter、Traffic - Policy、Policy - Based - Route 等 |
路由器存在两种类型的表:一个是路由表(routing - table),另一个是转发表(forwarding - table),转发表是由路由表映射过来的,策略路由直接作用于转发表,路由策略直接作用于路由表。由于转发在底层,路由在高层,所以直接作用在转发表的转发优先级比查找路由表转发的优先级高。
路由策略是在路由发现的时候产生作用,并根据一些规则,使用某种策略来影响路由发布、接收或路由选择的参数,从而改变路由发现的结果,最终改变路由表内容;策略路由是在数据包转发的时候发生作用,不改变路由表中的任何内容,它可以通过设置的规则影响数据报文的转发。
多协议复杂场景(路由引入)
问题 1:会造成次优路径
- 利用路由控制可以避免次优路径
- 调整协议优先级避免次优路由
问题 2:路由环路
- 利用路由过滤避免路由环路
- 调整协议优先级避免路由环路
什么是策略路由?策略路由又怎么使用?
网工学姐于 2021 - 11 - 24 16:02:10 发布
一、什么是策略路由
策略路由简称 PBR(Policy - Based Routing),是针对某种数据包,直接制定的选路策略。
都是选路,那策略路由和普通路由有什么区别?
举个例子来看
现在希望张三访问外网走线路 1,其他人访问外网走线路 2。 如果在路由器上,用常规路由如何实现?
是不是发现常规路由无法完成,因为常规路由都是按目标地址来选路,而这里的需求,是按源地址选路。
只要源地址为张三的数据包,就走线路 1,不管目标是什么。
今天的主角,策略路由很容易解决这个问题。
策略路由的做法是,首先用 ACL 来定义一种特别的数据包(比如源地址为张三的包),然后再针对这个 ACL 定义的包,配置一个选路策略(走线路 1)
二、为什么要做策略路由
虽然策略路由配置起来相对复杂,选路策略也必须手动指定,不会像 OSPF 一样自动学习路由表,但是实际项目中还是经常会用到策略路由,来实现常规路由无法实现的需求。
比如,多出口网络中,同时有电信和联通的线路,但是服务器对外映射的是电信的公网 IP,那就必须强制服务器从电信线路走。
这时就需要用策略路由,来针对源地址为服务器的数据包,做强制走电信线路的规则。
再比如,某些网络安全项目上,要求某些关键数据包,必须经过安全设备的过滤,如下图。
现在希望税务局访问政务服务器的数据包,必须经过安全设备。
就需要在核心设备上,针对税务局的包做策略路由,因为选路策略要考虑源地址。
三、策略路由怎么做
- 第一步:定义感兴趣流
也就是策略路由要针对什么样的数据包做动作,如:用acl 3000
来定义1.0
访问3.0
的数据包。
acl 3000
rule 5 permit ip source 10.1.1.0 0.0.0.255 dest 10.1.3.0 0.0.0.255
- 第二步:定义流分类
流分类是关联 ACL 的。如:用名字为huawei - control1
的流分类,来关联acl 3000
traffic classifier huawei - control1
if - match acl 3000
- 第三步:定义流行为
流行为是配置选路规则的,如:用名字为huawei - control1
的流行为,做一个选路策略,选路的规则,是下一跳12.1.1.2
traffic behavior huawei - control1
redirect ip - nexthop 12.1.1.2
- 第四步:定义流策略
流策略是将前面配好的流分类和流行为进行关联
traffic policy huawei - control1
classifier huawei - control1 behavior huawei - control1
- 第五步:在路由器的入接口调用流策略
int g0/0/2
traffic - policy huawei - control1 inbound
华为网络配置(策略路由)
风天云月于 2021 - 12 - 12 20:53:43 发布
前言
路由策略主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所经过的路径,而 [策略路由](https://so.csdn.net/so/search?q = 策略路由 & spm=1001.2101.3001.7020) 是在路由表已经产生的情况下,不按照路由表进行转发,而是根据需要,依照某种策略改变数据包转发路径
一、策略路由概述
1、策略路由介绍
策略路由 PBR(Policy - Based Routing)是一种依据用户制定的策略进行路由选择的机制,分为本地策略路由、接口策略路由和智能策略路由 SPR(Smart Policy Routing)
2、策略路由优点
策略路由具有如下优点:
- 可以根据用户实际需求制定策略进行路由选择,增强路由选择的灵活性和可控性。
- 可以使不同的数据流通过不同的链路进行发送,提高链路的利用效率。
- 在满足业务服务质量的前提下,选择费用较低的链路传输业务数据,从而降低企业数据服务的成本。
3、本地策略路由
本地策略路由仅对本机下发的报文进行处理,对转发的报文不起作用。一条本地策略路由可以配置多个策略点,并且这些策略点具有不同的优先级,本机下发报文优先匹配优先级高的策略点。
4、本地策略路由实现原理
本机下发报文时,根据本地策略路由节点的优先级,依次匹配各节点绑定的匹配规则,本地策略路由支持基于 ACL 或报文长度的匹配规则。如果找到了匹配的本地策略路由节点,则按照以下步骤发送报文:
-
查看用户是否设置了报文的优先级
- 如果用户设置了报文的优先级,首先根据用户设置的优先级设置报文的优先级,然后继续执行下一步。
- 如果用户未设置报文的优先级,则继续执行下一步。
-
查看用户是否设置了本地策略路由的出接口
- 如果用户设置了出接口,将报文从出接口发送出去,不再执行下面步骤。
- 如果用户未设置出接口,则执行下一步。
-
查看用户是否设置了本地策略路由的下一跳
- 用户可以设置两个下一跳以达到负载分担的目的。
- 如果用户设置了策略路由的下一跳,且下一跳可达,则查看用户是否设置了下一跳联动路由。
- 如果用户设置了下一跳联动路由功能,设备会根据配置的联动路由的 IP 地址检测该 IP 地址是否路由可达。
- 如果该 IP 地址路由可达,则配置的下一跳生效,设备将报文发往下一跳,不再执行下面步骤。
- 如果该 IP 地址路由不可达,则配置的下一跳不生效,设备会继续查看是否配置备份下一跳,如果用户配置了备份下一跳且备份下一跳可达,将报文发往备份下一跳,不再执行下面步骤。
- 如果用户未配置备份下一跳或配置的备份下一跳不可达,则按照正常流程根据报文的目的地址查找路由,如果没有查找到路由,则执行下一步。
- 如果用户未设置下一跳联动路由功能,将报文发往下一跳,不再执行下面步骤。
- 如果用户设置了策略路由的下一跳,但下一跳不可达,则设备会继续查看是否配置备份下一跳,如果用户配置了备份下一跳且备份下一跳可达,将报文发往备份下一跳,不再执行下面步骤。
- 如果用户未配置备份下一跳或配置的备份下一跳不可达,则按照正常流程根据报文的目的地址查找路由,如果没有查找到路由,则执行下一步。
- 如果用户未设置下一跳,按照正常流程根据报文的目的地址查找路由,如果没有查找到路由,则执行下一步。
-
查看用户是否设置了本地策略路由的缺省出接口
- 如果用户设置了缺省出接口,将报文从缺省出接口发送出去,不再执行下面步骤。
- 如果用户未设置缺省出接口,则执行下一步。
-
查看用户是否设置了本地策略路由的缺省下一跳
- 如果用户设置了缺省下一跳,将报文发往缺省下一跳,不再执行下面步骤。
- 如果用户未设置缺省下一跳,则进入下一步。
-
丢弃报文,产生 ICMP_UNREACH 消息
- 如果没有找到匹配的本地策略路由节点,按照发送 IP 报文的一般流程,根据目的地址查找路由。
5、接口策略路由
接口策略路由只对转发的报文起作用,对本地下发的报文(比如本地的 Ping 报文)不起作用。
6、接口策略路由实现原理
- 接口策略路由通过在流行为中配置重定向实现,只对接口入方向的报文生效。缺省情况下,设备按照路由表的下一跳进行报文转发,如果配置了接口策略路由,则设备按照接口策略路由指定的下一跳进行转发。
- 在按照接口策略路由指定的下一跳进行报文转发时,如果设备上没有该下一跳 IP 地址对应的 ARP 表项,设备会触发 ARP 学习。如果一直学习不到下一跳 IP 地址对应的 ARP 表项,则报文按照路由表指定的下一跳进行转发;如果设备上有或者学习到了此 ARP 表项,则按照接口策略路由指定的下一跳 IP 地址进行报文转发。
7、智能策略路由
- 智能策略路由 SPR(Smart Policy Routing)是一种路由选择机制,可以主动探测链路质量并匹配业务质量需求,从而选择最优链路转发业务数据,实现智能选路。
- 智能策略路由使用户业务不受网络质量的影响,从而保障用户的使用体验。
- 智能策略路由是基于业务需求的策略路由,通过匹配链路质量和网络业务对链路质量的需求,实现智能选路。
8、智能策略路由产生背景
随着网络业务需求的多样化,业务数据的集中放置,链路质量对网络业务越来越重要,越来越多的用户把关注点从网络的连通性转移到业务的可用性上,如业务的可获得性、响应速度和业务质量等。这些复杂的业务需求给传统的基于逐跳的路由协议提出了挑战,它们无法感知链路的质量和业务的需求,所以带给用户的业务体验也得不到保障,即使路由可达,但链路质量可能已经很差甚至无法正常转发报文了。智能策略路由 SPR 就是在这一背景下产生的一种策略路由,它可以主动探测链路质量并匹配业务的需求,从而选择一条最优链路转发业务数据,可以有效的避免网络黑洞、网络震荡等问题。
9、特性依赖和限制
智能策略路由功能在设备未配置 redirect enhance enable
命令时,仅支持在等价路由场景实现。
配置策略路由引用 ACL 时,匹配规则如下:
- 当 ACL 的
rule
配置为permit
时,设备会对匹配该规则的报文执行本地策略路由的动作。本地策略路由中策略点为permit
时对满足匹配条件的报文进行策略路由,本地策略路由中策略点为deny
时对满足匹配条件的报文不进行策略路由,即根据目的地址查找路由表转发报文。 - 当 ACL 配置了
rule
,如果报文未匹配上任何规则,则根据目的地址查找路由表转发报文。 - 当 ACL 的
rule
配置为deny
或 ACL 未配置规则时,应用该 ACL 的本地策略路由不生效,即根据目的地址查找路由表转发报文。
二、策略路由配置
1、案例
2、配置过程
(1)AR1
(2)AR2
(3)AR3
(4)AR4
3、测试
(1)接口策略路由
(2)本地策略路由
结语
传统的路由转发原理是首先根据报文的目的地址查找路由表,然后进行报文转发。但是目前越来越多的用户希望能够在传统路由转发的基础上根据自己定义的策略进行报文转发和选路。策略路由使网络管理者不仅能够根据报文的目的地址,而且能够根据报文的源地址、报文大小和链路质量等属性来制定策略路由,以改变数据包转发路径,满足用户需求。
via:
-
……原文已沉寂
-
路由策略 Routing Policy 和策略路由 PBR 的区别_policy routing-CSDN 博客 Kurtis Li 于 2020-09-03 14:28:10 发布
https://blog.csdn.net/qq_44314045/article/details/108381624 -
策略路由(Policy-Based-Route)-CSDN 博客
https://blog.csdn.net/weixin_44309905/article/details/113767283 -
理解路由控制(路由策略、策略路由)_路由策略和路由控制一样吗 - CSDN 博客
https://blog.csdn.net/darkqaz/article/details/110132593 -
什么是策略路由?策略路由又怎么使用?-CSDN 博客
https://blog.csdn.net/ZYJY2020/article/details/121517724 -
华为网络配置(策略路由)_华为策略路由配置实例 - CSDN 博客
https://blog.csdn.net/le616616/article/details/121892381