1.路由策略与策略路由的区别 ?
策略路由PBR(Policy Based Routing)与单纯依照IP报文的目的地址查找转发表进行转发不同,是一种依据用户制定的策略而进行路由选择的机制。PBR支持基于到达报文的源地址、报文长度等信息,依据用户制定的策略进行路由选择,可应用于安全、负载分担等目的。
路由策略与策略路由是两种不同的机制,主要区别如下
Route-Policy的每个节点可以由一组if-match子句、apply子句和goto next-node组成。
Route-policy包括非常丰富的匹配规则,可以非常灵活地满足各种场景的需求。除了ACL、地址前缀列表和AS路径列表外,其它过滤器必须和Route-policy结合使用。
Route-Policy用来匹配给定的路由信息或者路由信息的某些属性,并在条件满足时改变这些路由信息的属性。匹配条件可以使用访问控制列表、地址前缀列表、AS路径过滤器、团体属性过滤器、扩展团体属性过滤器和RD属性过滤器。
一个Route-Policy可由多个节点构成,每个节点又分为:
If-match子句:定义匹配规则,即路由信息通过当前Route-Policy所需满足的条件,匹配对象是路由信息的某些属性。
Apply子句:指定动作,即执行的一些配置命令,对路由的一些属性进行修改。
goto next-node子句:设置路由通过当前节点匹配后,跳转到指定的节点继续匹配。
前置任务
在配置Route-Policy之前,需完成以下任务:
配置地址前缀列表
配置路由协议
创建Route-Policy
(可选)配置If-match子句
(可选)配置Apply子句
(可选)配置跳转到指定节点
应用Route-Policy
检查配置结果
创建Route-Policy
通过应用Route-Policy,可根据组网需求来设置引入路由的相关属性。
操作步骤
执行命令system-view,进入系统视图。
执行命令route-policy route-policy-name { permit | deny } node node,创建Route-Policy的节点,并进入Route-Policy视图。
节点的匹配模式包含permit和deny两种:
permit指定节点的匹配模式为允许。当路由项通过该节点的过滤后,将执行该节点的apply子句,不进入下一个节点的匹配;如果路由项没有通过该节点过滤,将进入下一个节点继续测试。
deny指定节点的匹配模式为拒绝,这时apply子句不会被执行。当路由项满足该节点的所有if-match子句时,将被拒绝通过该节点,不进入下一个节点;如果路由项不满足该节点的if-match子句,将进入下一个节点继续测试。
当Route-Policy用于路由信息过滤时,如果某路由信息没有通过任一节点,则认为该路由信息没有通过该Route-Policy。如果Route-Policy的所有节点都是deny模式,则没有路由信息能通过该Route-Policy。
当引用Route-Policy进行路由信息过滤时,node的值小的节点先进行测试。3. 执行命令commit,提交配置。
配置案例:
配置过滤列表
# 配置编号为2002的ACL,允许172.16.2.0/24通过。
[~DeviceB]aclnumber2002[*DeviceB-acl4-basic-2002]rulepermitsource172.16.2.00.0.0.255[*DeviceB-acl4-basic-2002]commit[*DeviceB-acl4-basic-2002]quit
# 配置名为prefix-a的地址前缀列表,允许172.16.1.0/24通过。
[*DeviceB]ipip-prefixprefix-aindex10permit172.16.1.024[*DeviceB]commit
配置Route-Policy
[~DeviceB] route-policy isis2ospf permit node10[*DeviceB-route-policy]if-match ip-prefix prefix-a[*DeviceB-route-policy] apply cost100[*DeviceB-route-policy] quit[*DeviceB] route-policy isis2ospf permit node20[*DeviceB-route-policy]if-match acl2002[*DeviceB-route-policy] apply tag20[*DeviceB-route-policy] quit[*DeviceB] route-policy isis2ospf permit node30[*DeviceB] commit[~DeviceB-route-policy] quit
在路由引入时应用Route-Policy
# 配置DeviceB,设置在路由引入时应用Route-Policy。
[~DeviceB] ospf[*DeviceB-ospf-1] import-route isis1route-policy isis2ospf[*DeviceB-ospf-1] commit[~DeviceB-ospf-1] quit
通过这个配置案例我们可以了解到, route-policy 需要先使用其他工具抓路由, 然后再对这些路由配置各种动作比如加cost值
(applycost100
然后,再在需要使用的地方, 调用这个route-policy
检查配置结果
操作步骤
执行命令display route-policy [ route-policy-name ]查看Route-Policy的相关信息。
(可选)执行命令reset route-policy route-policy-name counters,清零Route-Policy对路由的匹配计数。
路由策略(Routing Policy)作用于路由,主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所经过的路径。
目的:路由器在发布、接收和引入路由信息时,根据实际组网需要实施一些策略,以便对路由信息进行过滤和改变路由信息的属性,如:
控制路由的发布
只发布满足条件的路由信息。
控制路由的接收
只接收必要、合法的路由信息,以控制路由表的容量,提高网络的安全性。
过滤和控制引入的路由
一种路由协议在引入其它路由协议发现的路由信息丰富自己的路由知识时,只引入一部分满足条件的路由信息,并对所引入的路由信息的某些属性进行设置,以使其满足本协议的要求。
设置特定路由的属性
修改通过路由策略过滤的路由的属性,满足自身需要。
受益
路由策略具有以下价值:
通过控制路由器的路由表规模,节约系统资源。
通过控制路由的接收和发送,提高网络安全性。
通过修改路由属性,对网络数据流量进行合理规划,提高网络性能。
配置案例:
[RouterA]policy-based-routelab1permitnode10[RouterA-policy-based-route-lab1-10]if-matchpacket-length64 1400[RouterA-policy-based-route-lab1-10]applyip-addressnext-hop192.168.1.2[RouterA-policy-based-route-lab1-10]quit[RouterA]policy-based-routelab1permitnode20[RouterA-policy-based-route-lab1-20]if-matchpacket-length1401 1500[RouterA-policy-based-route-lab1-20]applyip-addressnext-hop192.168.2.2[RouterA-policy-based-route-lab1-20]quit# 使能本地策略路由。[RouterA]iplocalpolicy-based-routelab1
验证配置结果
查看数据包的实际转发路径.
可以看到, 策略路由的用途是修改路由的下一跳, 让路由器按照管理员的的配置去转发到下一跳设备,而不是按照路由表中的下一跳来转发。