策略路由技术

173 阅读5分钟

前言

策略路由 简称PBR(Policy-Based Routing),是针对某种数据包,直接制定的选路策略。与单纯依照IP报文的目的地址查询路由表进行转发不同,策略路由是一种依据用户制定的策略进行路由转发的机制 策略路由可以对满足一定条件的报文,执行指定的操作。

知识储备

  1. if-match子句

    • 在一个节点中可以配置多条if-match子句,同一类型的if-match子句只能配置一条。

    • 同一个节点中的不同类型if-match子句之间是“与”的关系,即报文必须满足该节点的所有if-match子句才算满足这个节点的匹配规则。同一类型的if-match子句之间是“或”的关系,即报文只需满足一条该类型的if-match子句就算满足此类型if-match子句的匹配规则。

    • 配置策略节点的匹配规则

      if-match acl {acl-number | name acl-name}      // 设置ACL匹配规则
      

      if-match子句中使用ACL时,将忽略ACL规则的permit/deny动作,只使用ACL中的匹配规则来匹配报文。如果使用的ACL不存在,则不匹配任何报文。

  2. apply子句

    • 同一个节点中可以配置多条apply子句,但不一定都会执行。

    • 用户通过配置apply子句指导策略节点的动作。

      影响报文转发路径的apply子句有四条,优先级从高到低依次为:

      (1) apply next-hop                   // 设置报文转发的下一跳
      
      (2) apply output-interface           // 设置指导报文转发的出接口
      
      (3) apply default-next-hop           // 设置指导报文转发的缺省下一跳
      
      (4) apply default-output-interface   // 设置指导报文转发的缺省出接口
      
    • 其他策略节点动作

      (1) apply precedence                  // 设置IP报文优先级
      
      (2) apply mirror-to-destination       // 设置报文镜像到指定目的地址的隧道
      
      (3) apply statistics                  // 设置策略节点统计匹配成功的次数
      

配置思路

  1. 创建策略节点

    在系统视图下创建 创建成功进入策略节点视图

    policy-based-route <policy-name> [ deny | permit] node <node-number>    // policy-name 策略名称 node-name 节点序号
    
  2. 配置策略节点的匹配规则

    进入策略节点视图 配置策略节点匹配规则

    if-match acl { acl-number | name acl-name }                     // 设置ACL匹配规则
    
    if-match qos-local-id local-id-value qppb-manipulation          // 设置IP报文QoS本地ID值匹配规则
    
  3. 配置策略节点的动作

    apply next-hop [ vpn-instance vpn-instance-name] { ip-address [direct] [track track-entry-number]}  // 设置下一跳为VPN隧道|静态IP地址+Track联动
    
  4. 应用策略

    当VLAN接口的类型为Super VLAN时,在该接口下发的策略路由会对Super VLAN关联的所有Sub VLAN接口生效。

    4.1 本地报文应用策略

    指导设备本身产生报文的发送

    ip local policy-based-route <policy-name>    // 对本地报文只能应用一个策略。应用新的策略前必须删除本地原来已经应用的策略。
    

    4.2 接口应用转发策略

    // 接口视图下
    ip policy-based-route <policy-name>
    

    4.3 全局应用转发策略

    将已经配置的策略应用到设备的所有接口,指导这些接口接收的所有报文的转发。

    ip global policy-based-route <policy-name>
    
  5. 策略路由显示和维护

image.png

配置举例

image.png

CEA为园区出口路由器 PEA为运营商边界设备 CEA与PEA有两条链路 规定PCA走100.1.0.0 PCB走200.2.0.0 当其中一条链路中断时 走备份链路。

CE4配置

#
 ip unreachables enable
 ip ttl-expires enable
# 创建策略路由节点0
policy-based-route G1 permit node 0
 if-match acl 3001
 apply next-hop 100.1.0.1
# 创建策略路由节点5
policy-based-route G1 permit node 5
 if-match acl 3002
 apply next-hop 200.2.0.1
# S1/0 配置IP地址与NAT
interface Serial1/0
 ip address 100.1.0.2 255.255.255.0
 nat outbound
# S2/0 配置IP地址与NAT
interface Serial2/0
 ip address 200.2.0.2 255.255.255.0
 nat outbound
# G0/1应用策略路由配置IP地址
interface GigabitEthernet0/1
 port link-mode route
 combo enable copper
 ip address 172.16.0.1 255.255.255.0
 ip policy-based-route G1
# 配置静态路由与出口路由
 ip route-static 0.0.0.0 0 100.1.0.1
 ip route-static 0.0.0.0 0 200.2.0.1
 ip route-static 192.168.0.0 16 172.16.0.2
# 配置192.168.1.0的ACL匹配规则
acl advanced 3001
 rule 0 permit ip source 192.168.1.0 0.0.0.255
# 配置192.168.2.0的ACL匹配规则
acl advanced 3002
 rule 0 permit ip source 192.168.2.0 0.0.0.255

SWA配置

#
 ip unreachables enable
 ip ttl-expires enable
#
vlan 10
#
vlan 20
#
vlan 30
#
interface Vlan-interface10
 ip address 192.168.1.254 255.255.255.0
#
interface Vlan-interface20
 ip address 192.168.2.254 255.255.255.0
# 
interface Vlan-interface30
 ip address 172.16.0.2 255.255.255.0
# 配置G1/0/1
interface GigabitEthernet1/0/1
 port link-mode bridge
 port access vlan 30
 combo enable fiber
# 配置G1/0/11
interface GigabitEthernet1/0/11
 port link-mode bridge
 port access vlan 10
 combo enable fiber
# 配置G1/0/12
interface GigabitEthernet1/0/12
 port link-mode bridge
 port access vlan 20
 combo enable fiber
# 配置出口路由
 ip route-static 0.0.0.0 0 172.16.0.1

PEA配置

#
 ip unreachables enable
 ip ttl-expires enable
#
interface Serial1/0
 ip address 100.1.0.1 255.255.255.0
#
interface Serial2/0
 ip address 200.2.0.1 255.255.255.0
#
interface GigabitEthernet0/1
 port link-mode route
 combo enable copper
 ip address 115.1.0.1 255.255.255.0

验证策略路由配置

// PCA访问Server
<H3C>tracert -a 192.168.1.1 115.1.0.2
traceroute to 115.1.0.2 (115.1.0.2) from 192.168.1.1, 30 hops at most, 40 bytes each packet, press CTRL_C to break
 1  192.168.1.254 (192.168.1.254)  0.831 ms  0.209 ms  0.188 ms
 2  172.16.0.1 (172.16.0.1)  0.420 ms  0.477 ms  0.434 ms
 3  100.1.0.1 (100.1.0.1)  0.589 ms  0.387 ms  0.561 ms
 4
<H3C>

// CEA-S1/0-shutdown PCA访问Server
<H3C>tracert -a 192.168.1.1 115.1.0.2
traceroute to 115.1.0.2 (115.1.0.2) from 192.168.1.1, 30 hops at most, 40 bytes each packet, press CTRL_C to break
 1  192.168.1.254 (192.168.1.254)  0.320 ms  0.208 ms  0.214 ms
 2  172.16.0.1 (172.16.0.1)  0.570 ms  0.436 ms  0.446 ms
 3  200.2.0.1 (200.2.0.1)  0.694 ms  0.517 ms  0.560 ms
 4
<H3C>

// CEA查看策略路由命中次数
[CEA]dis ip policy-based-route interface g0/1
Policy based routing information for interface GigabitEthernet0/1:
Policy name: G1
  node 0 permit:
    if-match acl 3001
    apply next-hop 100.1.0.1
  Matched: 15
  node 5 permit:
    if-match acl 3002
    apply next-hop 200.2.0.1
  Matched: 0
Total matched: 15
[CEA]