选择区域语言: EN CN HK

05 三层技术-IP路由配置指导

13-策略路由配置

本章节下载  (300.02 KB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/CE3000/CE3000-EI/Configure/Operation_Manual/H3C_CE3000-32F-EI_CG-Release_18xx-6W100/05/201403/822384_30005_0.htm

13-策略路由配置


1 策略路由

说明

设备未形成IRF时,适用本手册中的“独立运行模式”的情况;形成IRF后则适用本手册中的“IRF模式”的情况。有关IRF特性的详细介绍,请参见“IRF配置指导”。

 

1.1  策略路由简介

与单纯依照IP报文的目的地址查找路由表进行转发不同,策略路由是一种依据用户制定的策略进行路由转发的机制。策略路由可以基于报文的源地址等信息灵活地控制报文的发送。

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

本设备支持两种策略路由配置方式:

(1)     PBR方式(policy-based-route)

PBR方式通过ACL制定匹配规则,支持对报文的下一跳,优先级及缺省下一跳进行设置,目前只支持IPv4单播策略路由。

PBR方式支持动态修改ACL规则,以动态更新匹配规则,实现业务的灵活控制。

说明

·     PBR方式下,如果报文匹配了策略路由条件,但是配置的下一跳地址不存在,报文将继续进行普通路由的转发。

·     对于配置了缺省下一跳的情况,先进行普通路由的转发,如果无法匹配,再进行策略路由转发。

 

(2)     QoS策略方式

QoS策略方式是通过QoS策略的流分类功能来制定细致的匹配规则,并使用流行为中的重定向动作将报文按指定的目的进行转发。QoS策略方式能够实现IPv4、IPv6单播策略路由。

下面分别对两种方式的实现规则进行介绍。

1.1.1  PBR方式

1. 简介

PBR方式策略路由对于满足一定条件(ACL规则)的报文,将执行指定的操作(设置报文的优先级、设置报文的下一跳、设置报文的缺省下一跳等)。

根据作用对象的不同,策略路由可分为本地策略路由和转发策略路由:

·     本地策略路由:对设备本身产生的报文(比如本地发出的ping报文)起作用,指导其发送。

·     转发策略路由:对接口接收的报文起作用,指导其转发。

 

说明

本文所指的“接口”为三层口,包括VLAN接口、三层以太网端口等。三层以太网端口是指被配置为三层模式的以太网端口,有关以太网端口模式切换的操作,请参见“二层技术-以太网交换配置指导”中的“以太网端口配置”。

 

2. 相关概念

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

(1)     节点

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

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

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

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

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

(2)     if-match子句

本设备支持的if-match子句为if-match acl。

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

(3)     apply子句

本设备支持三种apply子句,分别为:apply ip-precedenceapply ip-address next-hopapply ip-address default next-hop

说明

执行缺省下一跳命令(apply ip-address default next-hop)的前提是,在策略路由中报文没有配置下一跳,或者配置的下一跳无效,并且报文目的IP地址在路由表中没有查到相应的路由,这时才会使用策略路由配置的缺省下一跳。

 

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

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

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

是否满足所有if-match子句

节点匹配模式

permit(允许模式)

deny(拒绝模式)

执行此节点apply子句,不再匹配下一节点

不执行此节点apply子句,不再匹配下一节点,报文将根据路由表来进行转发

不执行此节点apply子句,继续匹配下一节点

不执行此节点apply子句,继续匹配下一节点

 

说明

·     如果一个节点中没有配置任何if-match子句,则认为所有报文都满足该节点的匹配规则。

·     如果一个permit模式的节点没有配置apply子句,当报文满足此节点的所有if-match子句时,将不会执行任何动作,且不再继续匹配下一节点,报文将根据路由表来进行转发。

·     如果一个节点没有配置任何if-match子句和apply子句,则所有报文都满足该节点的匹配规则,但不会执行任何动作,且不再继续匹配下一节点,报文将根据路由表来进行转发。

 

1.1.2  QoS策略方式

QoS策略方式通过流分类来制定匹配规则,并使用“重定向到下一跳”的流行为动作,将满足流分类规则的报文向指定的路径进行转发,从而实现灵活的路由选择。

通过QoS策略方式实现的策略路由的优先级要高于普通路由,即报文先匹配流分类规则,如果匹配则按照策略路由进行转发,如果无法匹配所有流分类规则,再按照普通路由进行转发。

说明

关于QoS策略的详细介绍,请参见“ACL和QoS配置指导”中的“QoS配置”。

 

1.2  配置PBR方式的策略路由

1.2.1  PBR方式策略路由配置任务简介

表1-2 策略路由配置任务简介

配置任务

说明

详细配置

配置策略

创建策略节点

必选

1.2.2  1.

配置策略节点的匹配规则

1.2.2  2.

配置策略节点的动作

1.2.2  3.

应用策略

对本地报文应用策略

必选

用户可根据实际情况进行选择

1.2.3  1.

对接口转发的报文应用策略

1.2.3  2.

策略路由与Track联动

可选

1.2.4 

 

1.2.2  配置策略

1. 创建策略节点

表1-3 创建策略节点

操作

命令

说明

进入系统视图

system-view

-

创建策略节点,并进入策略节点视图

policy-based-route policy-name [ deny | permit ] node node-number

必选

 

2. 配置策略节点的匹配规则

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

操作

命令

说明

进入系统视图

system-view

-

进入策略节点视图

policy-based-route policy-name [ deny | permit ] node node-number

-

设置ACL匹配规则

if-match acl acl-number

可选

 

说明

if-match子句中使用ACL时,将忽略ACL规则的permit/deny动作以及time-range指定的规则生效时间段,只使用ACL中的匹配规则来匹配报文。如果使用的ACL不存在,则不匹配任何报文。

 

3. 配置策略节点的动作

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

操作

命令

说明

进入系统视图

system-view

-

进入策略节点视图

policy-based-route policy-name [ deny | permit ] node node-number

-

设置报文的优先级

apply ip-precedence value

可选

设置报文的下一跳

apply ip-address next-hop [ vpn-instance vpn-instance-name ]  ip-address [ direct ] [ track track-entry-number ] [ ip-address [ direct ] [ track track-entry-number ] ]

可选

用户可以同时配置两个下一跳:

·     应用于本地策略路由时,这两个下一跳同时有效,可以起到负载分担的作用

·     应用于接口策略路由时,第一个下一跳作为主路由,第二个下一跳作为备份路由,实现路由备份

设置报文缺省下一跳

apply ip-address default next-hop [ vpn-instance vpn-instance-name ]  ip-address [ track track-entry-number ] [ ip-address [ track track-entry-number ] ]

可选

用户可以同时配置两个缺省下一跳:

·     应用于本地策略路由时,这两个下一跳同时有效,可以起到负载分担的作用

·     应用于接口策略路由时,第一个下一跳作为主路由,第二个下一跳作为备份路由,实现路由备份

 

说明

apply ip-address next-hopapply ip-address default next-hop命令可以配置两个下一跳,配置两个下一跳后,如果需要修改已配置的下一跳,需要执行相应的undo命令删除后再重新配置。

 

1.2.3  应用策略

1. 对本地报文应用策略

通过本配置,可以将已经配置的策略应用到本地,指导设备本身产生报文的发送。

对本地报文只能应用一个策略。多次配置命令,生效的是最新的配置。

若无特殊需求,建议用户不要对本地报文应用策略。

表1-6 对本地报文应用策略

操作

命令

说明

进入系统视图

system-view

-

对本地报文应用策略

ip local policy-based-route policy-name

必选

缺省情况下,对本地报文没有应用策略

 

说明

·     如果配置时策略不存在,命令可以配置成功但不生效,当策略创建后,该配置才真正生效。

·     对本地报文应用策略时,只支持公网下一跳,下一跳不能处于VPN实例中。

 

2. 对接口转发的报文应用策略

通过本配置,可以将已经配置的策略应用到接口,指导接口接收的所有报文的转发。

对接口转发的报文应用策略时,一个接口只能应用一个策略。多次配置命令,生效的是最新的配置。

一个策略可以同时被多个接口应用。

表1-7 对接口转发的报文应用策略

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

对接口转发的报文应用策略

ip policy-based-route policy-name

必选

缺省情况下,对接口转发的报文没有应用策略

 

说明

·     如果配置时策略不存在,命令可以配置成功但不生效,当策略创建后,该配置才真正生效。

·     Tunnel接口视图下不支持此配置。

 

1.2.4  策略路由与Track联动

策略路由通过与Track联动,增强了应用的灵活性和对网络环境变化的动态感知能力。策略路由可以在配置报文的下一跳、缺省下一跳时与Track项关联,根据Track项的状态来动态地决定策略的可用性。策略路由配置仅在关联的Track项状态为Positive或Invalid时生效。

说明

关于策略路由与Track联动的的详细介绍和相关配置,请参见“可靠性配置指导”中的“Track”。

 

1.3  配置通过QoS策略实现策略路由

说明

关于配置命令作用的介绍请参见“ACL和QoS命令参考”中的“QoS策略”。

 

1.3.1  配置QoS策略

表1-8 配置QoS策略

操作

命令

说明

进入系统视图

system-view

-

定义类并进入类映射视图

traffic classifier tcl-name [ operator { and | or } ]

必选

定义匹配报文的规则

if-match match-criteria

必选

退回系统视图

quit

-

定义流行为并进入流行为视图

traffic behavior behavior-name

必选

配置流量重定向到下一跳

redirect next-hop { ipv4-add1 [ ipv4-add2 ] | ipv6-add1 [ interface-type interface-number ] [ ipv6-add2 [ interface-type interface-number ] ] } [ fail-action { discard | forward } ]

必选

退回系统视图

quit

-

定义QoS策略并进入策略视图

qos policy policy-name

必选

在策略中为类指定采用的流行为

classifier tcl-name behavior behavior-name

必选

 

说明

·     通过QoS策略方式实现IPv6策略路由时,流行为中重定向的下一跳IPv6地址不能为链路本地地址。

·     如果不配置重定向下一跳失败的处理动作,默认的处理动作是转发。

 

1.3.2  应用QoS策略

可以通过下列方式应用QoS策略:

·     基于全局应用QoS策略:简称为全局策略,QoS策略对设备上的所有流量生效。

·     基于接口应用QoS策略:简称为接口策略,QoS策略对接口接收的流量生效。

·     基于VLAN应用QoS策略:简称为VLAN策略,QoS策略对VLAN内所有接口接收的流量生效。

说明

用于策略路由的QoS策略只能应用到端口/VLAN/全局的入方向。

 

表1-9 应用全局策略

操作

命令

说明

进入系统视图

system-view

-

应用全局策略

qos apply policy policy-name global inbound

必选

 

表1-10 应用接口策略

操作

命令

说明

进入系统视图

system-view

-

进入二层以太网接口视图或端口组视图

进入二层以太网接口视图

interface interface-type interface-number

二者必选其一

进入接口视图后,下面进行的配置只在当前接口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效

进入端口组视图

port-group manual port-group-name

应用接口策略

qos apply policy policy-name inbound

必选

 

表1-11 应用VLAN策略

操作

命令

说明

进入系统视图

system-view

-

应用VLAN策略到指定的VLAN

qos vlan-policy policy-name vlan vlan-id-list inbound

必选

 

说明

VLAN策略不能应用在动态VLAN上。例如,在运行GVRP协议的情况下,设备可能会动态创建VLAN,相应的VLAN策略不能应用在该动态VLAN上。

 

1.4  策略路由显示和维护

1.4.1  PBR方式策略路由显示和维护

在完成PBR方式策略路由的配置后,在任意视图下执行display命令可以显示配置策略路由后的运行情况,通过查看显示信息验证配置的效果。

在用户视图下,用户可以执行reset命令清除策略路由的统计信息。

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

操作

命令

显示已经配置的策略

display policy-based-route [ policy-name ] [ | { begin | exclude | include } regular-expression ]

显示本地策略路由和转发策略路由的应用情况

display ip policy-based-route [ | { begin | exclude | include } regular-expression ]

显示已经应用的策略路由的设置情况

display ip policy-based-route setup { policy-name | interface interface-type interface-number [ slot slot-number ] | local [ slot slot-number ] } [ | { begin | exclude | include } regular-expression ]

 

1.4.2  QoS策略方式策略路由显示和维护

在完成QoS策略方式策略路由的配置后,在任意视图下执行display命令可以显示策略路由的运行情况,通过查看显示信息验证配置的效果。

表1-1 QoS策略方式策略路由显示和维护

操作

命令

显示用户定义QoS策略的配置信息

display traffic classifier user-defined [ tcl-name ] [ | { begin | exclude | include } regular-expression ]

显示指定端口或所有端口上策略的配置信息和运行情况

display qos policy interface [ interface-type interface-number ] [ inbound | outbound ] [ | { begin | exclude | include } regular-expression ]

显示VLAN策略信息

display qos vlan-policy { name policy-name | vlan vlan-id } [ slot slot-number ] [ inbound | outbound ] [ | { begin | exclude | include } regular-expression ]

显示全局策略信息

display qos policy global [ slot slot-number ] [ inbound | outbound ] [ | { begin | exclude | include } regular-expression ]

 

1.5  策略路由典型配置举例

1.5.1  PBR方式本地策略路由典型配置举例

1. 组网需求

通过策略路由控制Switch A产生的报文:

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

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

其中,Switch A分别与Switch B和Switch C直连。

2. 组网图

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

 

3. 配置步骤

(1)     配置Switch A

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

<SwitchA> system-view

[SwitchA] acl number 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 ip-address next-hop 1.1.2.2

[SwitchA-pbr-aaa-5] quit

# 在Switch A上应用本地策略路由。

[SwitchA] ip local policy-based-route aaa

# 配置接口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

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

<SwitchB> system-view

[SwitchB] interface vlan-interface 10

[SwitchB-Vlan-interface10] ip address 1.1.2.2 255.255.255.0

(3)     配置Switch C

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

<SwitchC> system-view

[SwitchC] interface vlan-interface 20

[SwitchC-Vlan-interface20] ip address 1.1.3.2 255.255.255.0

(4)     验证配置结果

Switch ATelnet Switch B1.1.2.2/24),结果成功。

从Switch A上Telnet Switch C(1.1.3.2/24),结果失败。

从Switch A上ping Switch C(1.1.3.2/24),结果成功。

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

1.5.2  PBR方式接口策略路由典型配置举例

1. 组网需求

通过策略路由控制从Switch A的接口Vlan-interface11接收的报文:

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

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

2. 组网图

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

 

3. 配置步骤

(1)     配置Switch A

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

<SwitchA> system-view

[SwitchA] acl number 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 ip-address next-hop 1.1.2.2

[SwitchA-pbr-aaa-5] quit

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

[SwitchA] interface vlan-interface 11

[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 AIP地址配置为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报文,策略路由设置成功。

1.5.3  通过QoS策略实现IPv4策略路由配置举例

1. 组网需求

控制从设备Switch A的GigabitEthernet1/0/1接口接收的所有报文,都转发到下一跳202.1.1.2。

2. 组网图

图1-3 配置通过QoS策略实现IPv4策略路由组网图

3. 配置步骤

# 配置访问控制列表。

<SwitchA> system-view

[SwitchA] acl number 2000

[SwitchA-acl-basic-2000] rule 0 permit source any

[SwitchA-acl-basic-2000] quit

# 配置流分类,过滤匹配ACL 2000的所有报文。

[SwitchA] traffic classifier a

[SwitchA-classifier-a] if-match acl 2000

[SwitchA-classifier-a] quit

# 配置流行为,将流量重定向到下一跳202.1.1.2。

[SwitchA] traffic behavior a

[SwitchA-behavior-a] redirect next-hop 202.1.1.2

[SwitchA-behavior-a] quit

# 配置QoS策略。

[SwitchA] qos policy a

[SwitchA-qospolicy-a] classifier a behavior a

[SwitchA-qospolicy-a] quit

# 将QoS策略应用到接口GigabitEthernet1/0/1。

[SwitchA] interface GigabitEthernet 1/0/1

[SwitchA-GigabitEthernet1/0/1] qos apply policy a inbound

4. 验证结果

完成上面的配置后,当设备Switch A收到目的IP地址为201.1.1.2的报文时,此报文会被发送到Switch C,而不会发送到Switch B,说明策略路由应用成功。

1.5.4  通过QoS策略实现IPv6策略路由配置举例

1. 组网需求

控制从设备Switch A的GigabitEthernet1/0/1接口接收的所有报文,都转发到下一跳202::2。

2. 组网图

图1-4 配置通过QoS策略实现IPv6策略路由组网图

3. 配置步骤

# 配置访问控制列表。

<SwitchA> system-view

[SwitchA] acl ipv6 number 2000

[SwitchA-acl6-basic-2000] rule 0 permit source any

[SwitchA-acl6-basic-2000] quit

# 配置流分类,过滤匹配ACL 2000的所有报文。

[SwitchA] traffic classifier a

[SwitchA-classifier-a] if-match acl ipv6 2000

[SwitchA-classifier-a] quit

# 配置流行为,将流量重定向到下一跳202::2。

[SwitchA] traffic behavior a

[SwitchA-behavior-a] redirect next-hop 202::2

[SwitchA-behavior-a] quit

# 配置QoS策略。

[SwitchA] qos policy a

[SwitchA-qospolicy-a] classifier a behavior a

[SwitchA-qospolicy-a] quit

# 将QoS策略应用到接口GigabitEthernet1/0/1。

[SwitchA] interface GigabitEthernet 1/0/1

[SwitchA-GigabitEthernet1/0/1] qos apply policy a inbound

4. 验证结果

完成上面的配置后,当设备Switch A收到目的IP地址为201::2的报文时,此报文会被发送到Switch C,而不会发送到Switch B,说明策略路由应用成功。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!