认证培训,h3c认证体系,网络工程师
丰沃创新

策略路由【网络工程师培训课堂】

  • 发布时间: 2018-3-30 9:01:36
策略路由

与单纯依照IP报文的目的地址查找路由表进行转发不同,策略路由是一种依据用户制定的策略进行路由转发的机制。策略路由可以对于满足一定条件(ACL规则等)的报文,执行指定的操作(设置报文的下一跳等)。


报文到达后,系统首先根据策略路由转发,若没有配置策略路由或配置了策略路由但找不到匹配的表项时,再根据路由表来转发报文。


目前,设备只支持转发策略路由。转发策略路由只对接口接收的报文起作用,指导其转发,对本地产生的报文不起作用。


一.策略定义

策略用来定义报文的匹配规则,以及对报文执行的操作。策略由节点组成。


一个策略可以包含一个或者多个节点。节点的构成如下:

每个节点由节点编号来标识。节点编号越小节点的优先级越高,优先级高的节点优先被执行。


每个节点的具体内容由if-match子句和apply子句来指定。if-match子句定义该节点的匹配规则,apply子句定义该节点的动作。


每个节点对报文的处理方式由匹配模式决定。匹配模式分为permit(允许)和deny(拒绝)两种。


应用策略后,系统将根据策略中定义的匹配规则和操作,对报文进行处理:系统按照优先级从高到低的顺序依次匹配各节点,如果报文满足这个节点的匹配规则,就执行该节点的动作;如果报文不满足这个节点的匹配规则,就继续匹配下一个节点;如果报文不能满足策略中任何一个节点的匹配规则,则根据路由表来转发报文。


1. if-match子句

目前,策略路由仅提供了一种if-match子句,即if-match acl,用来设置ACL匹配规则。

在一个节点中,同一类型的if-match子句最多只能有一条。


2. apply子句

目前,策略路由仅提供了一种apply子句,即apply next-hop,用来设置报文转发的下一跳。


3. 节点的匹配模式与节点的if-match子句、apply子句的关系

一个节点的匹配模式与这个节点的if-match子句、apply子句的关系如表1-1所示。


表1-1 节点的匹配模式、if-match子句、apply子句三者之间的关系


二.策略配置步骤

2.1  创建策略节点

表1-2 创建策略节点

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

表1-3 配置策略节点的匹配规则

2.3  配置策略节点的动作

表1-4 配置策略节点的动作

2.4  接口应用策略

表1-5 应用策略

2.5 策略路由显示与维护

表1-6 策略路由显示和维护


三.策略配置举例

3.1  基于报文协议类型的转发策略路由配置举例


1. 组网需求

通过策略路由控制从SWA的接口Vlan-interface1接收的报文:

指定所有TCP报文的下一跳为1.1.2.2;

其它报文仍然按照查找路由表的方式进行转发。


2. 组网图

图1-1 基于报文协议类型的转发策略路由的配置举例组网图


3. 配置步骤

(1) 配置Switch A

# 定义访问控制列表ACL 3101,用来匹配TCP报文。

<SwitchA> system-view

[SwitchA] acl advanced 3101

[SwitchA-acl-adv-3101] rule permit tcp

[SwitchA-acl-adv-3101] quit


# 定义5号节点,指定所有TCP报文的下一跳为1.1.2.2。

[SwitchA] policy-based-route aaa permit node 5

[SwitchA-pbr-aaa-5] if-match acl 3101

[SwitchA-pbr-aaa-5] apply next-hop 1.1.2.2

[SwitchA-pbr-aaa-5] quit


# 在接口Vlan-interface11上应用转发策略路由,处理此接口接收的报文。

[SwitchA] interface vlan-interface 1

[SwitchA-Vlan-interface11] ip address 10.110.0.10 255.255.255.0

[SwitchA-Vlan-interface11] ip policy-based-route aaa

[SwitchA-Vlan-interface11] quit


# 配置接口Vlan-interface10和Vlan-interface20的IP地址。

[SwitchA] interface vlan-interface 10

[SwitchA-Vlan-interface10] ip address 1.1.2.1 255.255.255.0

[SwitchA-Vlan-interface10] quit

[SwitchA] interface vlan-interface 20

[SwitchA-Vlan-interface20] ip address 1.1.3.1 255.255.255.0


(2)配置Switch B

# 配置到网段10.110.0.0/24的静态路由。

<SwitchB> system-view

[SwitchB] ip route-static 10.110.0.0 24 1.1.2.1

# 配置接口Vlan-interface10的IP地址。

[SwitchB] interface vlan-interface 10

[SwitchB-Vlan-interface10] ip address 1.1.2.2 255.255.255.0


(3) 配置Switch C

# 配置到网段10.110.0.0/24的静态路由。

<SwitchC> system-view

[SwitchC] ip route-static 10.110.0.0 24 1.1.3.1

# 配置接口Vlan-interface20的IP地址。

[SwitchC] interface vlan-interface 20

[SwitchC-Vlan-interface20] ip address 1.1.3.2 255.255.255.0


4. 证配置结果

将Host A的IP地址配置为10.110.0.20/24,网关地址配置为10.110.0.10。

从Host A上Telnet Switch B,结果成功。

从Host A上Telnet Switch C,结果失败。

从Host A上ping Switch C,结果成功。

由于Telnet使用的是TCP协议,ping使用的是ICMP协议,所以由以上结果可证明:从Switch A的接口Vlan-interface11接收的TCP报文的下一跳为1.1.2.2,接口Vlan-interface20不转发TCP报文,但可以转发非TCP报文,策略路由设置成功。