通过流策略实现策略路由(重定向到不同的下一跳)
本篇文章来源于网络 通过流策略实现策略路由(重定向到不同的下一跳)
组网图形
策略路由简介
- 传统的路由转发原理是首先根据报文的目的地址查找路由表,然后进行报文转发。但是目前越来越多的用户希望能够在传统路由转发的基础上根据自己定义的策略进行报文转发和选路。策略路由PBR(Policy-Based Routing)就是一种依据用户制定的策略进行数据转发的机制。
- 在S系列交换机上,策略路由通过重定向实现,通过配置策略路由可以将到达接口的符合流分类规则的三层报文重定向到指定的下一跳地址。
- 在某些需要指定特定的数据流走特定的下一跳的场景下可以使用策略路由实现,例如使不同的数据流通过不同的链路进行发送,提高链路的利用效率;将数据流引流到防火墙等安全设备,进行安全过滤;在满足业务服务质量的前提下,选择费用较低的链路传输业务数据,从而降低企业数据服务的成本。
组网需求
- 如图1所示,公司用户通过Switch双归属到外部网络设备。其中,一条是高速链路,网关为10.1.20.1/24;另外一条是低速链路,网关为10.1.30.1/24。
- 公司内网有两个网段192.168.1.0/24和192.168.2.0/24。192.168.1.0/24网段主要是服务器区,对链路带宽要求比较高,所以网管决定该网段走高速链路出去;剩余的192.168.2.0/24网段主要用作公司员工上网,上网的话只能走低速链路出去。
配置思路
- 1.创建VLAN并配置各接口,配置路由实现公司和外部网络互通。
- 2.配置ACL规则,分别匹配192.168.1.0和192.168.2.0网段的数据流。
- 3.配置流分类,匹配规则为上述ACL规则,使设备可以对报文进行区分。
- 4.配置流行为,使满足不同ACL规则的数据流走不同的链路,需要注意先把内网互访的数据流放行。
- 5.配置流策略,绑定上述流分类和流行为,并应用到Switch设备的GE0/0/3接口的入方向,实现策略路由。
操作步骤
- 1.创建VLAN并配置各接口,实现基本的互联互通
# 在SwitchA上创建VLAN10和VLAN20。
1
2
3
|
<HUAWEI> system-view [HUAWEI] sysname SwitchA [SwitchA] vlan batch 10 20 |
# 配置SwitchA各接口的所属VLAN,连接终端PC的接口配置为Access类型,连接Switch的接口配置为Trunk类型。
1
2
3
4
5
6
7
8
9
10
11
12
|
[SwitchA] interface gigabitethernet 0/0/1 [SwitchA-GigabitEthernet0/0/1] port link-type access [SwitchA-GigabitEthernet0/0/1] port default vlan 10 [SwitchA-GigabitEthernet0/0/1] quit [SwitchA] interface gigabitethernet 0/0/2 [SwitchA-GigabitEthernet0/0/2] port link-type access [SwitchA-GigabitEthernet0/0/2] port default vlan 20 [SwitchA-GigabitEthernet0/0/2] quit [SwitchA] interface gigabitethernet 0/0/3 [SwitchA-GigabitEthernet0/0/3] port link-type trunk [SwitchA-GigabitEthernet0/0/3] port trunk allow-pass vlan 10 20 [SwitchA-GigabitEthernet0/0/3] quit |
# 在Switch上创建VLAN10、VLAN20、VLAN100、VLAN200。
1
2
3
|
<HUAWEI> system-view [HUAWEI] sysname Switch [Switch] vlan batch 10 20 100 200 |
# 配置Switch各接口的所属VLAN,连接SwitchA的接口配置为Trunk类型,连接外部网络设备的接口配置为Access类型。
1
2
3
4
5
6
7
8
9
10
11
12
|
[Switch] interface gigabitethernet 0/0/1 [Switch-GigabitEthernet0/0/1] port link-type access [Switch-GigabitEthernet0/0/1] port default vlan 100 [Switch-GigabitEthernet0/0/1] quit [Switch] interface gigabitethernet 0/0/2 [Switch-GigabitEthernet0/0/2] port link-type access [Switch-GigabitEthernet0/0/2] port default vlan 200 [Switch-GigabitEthernet0/0/2] quit [Switch] interface gigabitethernet 0/0/3 [Switch-GigabitEthernet0/0/3] port link-type trunk [Switch-GigabitEthernet0/0/3] port trunk allow-pass vlan 10 20 [Switch-GigabitEthernet0/0/3] quit |
# 在Switch上配置VLANIF10和VLANIF20作为用户网关,并配置IP地址分别为192.168.1.1/24和192.168.2.1/24。
1
2
3
4
5
6
|
[Switch] interface vlanif 10 [Switch-Vlanif10] ip address 192.168.1.1 24 [Switch-Vlanif10] quit [Switch] interface vlanif 20 [Switch-Vlanif20] ip address 192.168.2.1 24 [Switch-Vlanif20] quit |
# 在Switch上配置VLANIF100和VLANIF200用于和外部网络设备互联,并配置IP地址分别为10.1.20.2/24和10.1.30.2/24。
1
2
3
4
5
6
|
[Switch] interface vlanif 100 [Switch-Vlanif100] ip address 10.1.20.2 24 [Switch-Vlanif100] quit [Switch] interface vlanif 200 [Switch-Vlanif200] ip address 10.1.30.2 24 [Switch-Vlanif200] quit |
# 在Switch上配置两条缺省路由,下一跳分别指向两个外部网络设备。
1
2
|
[Switch] ip route- static 0.0.0.0 0 10.1.20.1 [Switch] ip route- static 0.0.0.0 0 10.1.30.1 |
完成以上配置步骤以后,内网能够正常访问外网了,但是不能保证192.168.1.0/24网段用户的数据走高速链路,192.168.2.0/24网段的数据走低速链路,要实现这个需求需要继续完成下面的配置步骤。
- 2.配置ACL规则
# 在Switch上创建编码为3000、3001、3002的高级ACL。
1
2
3
4
5
6
7
8
9
10
|
[Switch] acl 3000 //主要用于匹配内网两个网段之间互访的数据流,这部分数据流不需要做重定向,如果不配置这一步会导致内网之间互访的流量也被重定向,从而导致内网互访不通。 [Switch-acl-adv-3000] rule permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255 [Switch-acl-adv-3000] rule permit ip source 192.168.2.0 0.0.0.255 destination 192.168.1.0 0.0.0.255 Switch-acl-adv-3000] quit [Switch] acl 3001 //匹配内网192.168.1.0/24网段的用户数据流 [Switch-acl-adv-3001] rule permit ip source 192.168.1.0 0.0.0.255 [Switch-acl-adv-3001] quit [Switch] acl 3002 //匹配内网192.168.2.0/24网段的用户数据流 [Switch-acl-adv-3002] rule permit ip source 192.168.2.0 0.0.0.255 [Switch-acl-adv-3002] quit |
- 3.配置流分类
在Switch上创建流分类c0、c1、c2,匹配规则分别为ACL 3000、ACL 3001和ACL 3002。
1
2
3
4
5
6
7
8
9
|
[Switch] traffic classifier c0 operator or [Switch-classifier-c0] if -match acl 3000 [Switch-classifier-c0] quit [Switch] traffic classifier c1 operator or [Switch-classifier-c1] if -match acl 3001 [Switch-classifier-c1] quit [Switch] traffic classifier c2 operator or [Switch-classifier-c2] if -match acl 3002 [Switch-classifier-c2] quit |
- 4.配置流行为
# 在Switch上创建流行为b0、b1、b2,对于b0只配置permit的动作,对于b1和b2分别指定重定向到10.1.20.1和10.1.30.1的动作。
1
2
3
4
5
6
7
8
9
|
[Switch] traffic behavior b0 [Switch-behavior-b0] permit [Switch-behavior-b0] quit [Switch] traffic behavior b1 [Switch-behavior-b1] redirect ip-nexthop 10.1.20.1 [Switch-behavior-b1] quit [Switch] traffic behavior b2 [Switch-behavior-b2] redirect ip-nexthop 10.1.30.1 [Switch-behavior-b2] quit |
- 5.配置流策略并应用到接口上
# 在Switch上创建流策略p1,将流分类和对应的流行为进行绑定。
1
2
3
4
5
|
[Switch] traffic policy p1 [Switch-trafficpolicy-p1] classifier c0 behavior b0 [Switch-trafficpolicy-p1] classifier c1 behavior b1 [Switch-trafficpolicy-p1] classifier c2 behavior b2 [Switch-trafficpolicy-p1] quit |
# 将流策略p1应用到Switch的GE0/0/3的入方向上。
1
2
3
|
[Switch] interface gigabitethernet 0/0/3 [Switch-GigabitEthernet0/0/3] traffic-policy p1 inbound [Switch-GigabitEthernet0/0/3] return |
- 6.验证配置结果
# 查看ACL规则的配置信息。
1
2
3
4
5
|
<Switch> display acl 3000 Advanced ACL 3000, 2 rule Acl's step is 5 rule 5 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255 (match-counter 0) rule 10 permit ip source 192.168.2.0 0.0.0.255 destination 192.168.1.0 0.0.0.255 (match-counter 0) |
1
2
3
4
|
<Switch> display acl 3001 Advanced ACL 3001, 1 rule Acl's step is 5 rule 5 permit ip source 192.168.1.0 0.0.0.255 (match-counter 0) |
1
2
3
4
|
<Switch> display acl 3002 Advanced ACL 3002, 1 rule Acl's step is 5 rule 5 permit ip source 192.168.2.0 0.0.0.255 (match-counter 0) |
# 查看流分类的配置信息。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<Switch> display traffic classifier user-defined User Defined Classifier Information: Classifier: c2 Operator: OR Rule(s) : if -match acl 3002 Classifier: c0 Operator: OR Rule(s) : if -match acl 3000 Classifier: c1 Operator: OR Rule(s) : if -match acl 3001 Total classifier number is 3 |
# 查看流策略的配置信息。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<Switch> display traffic policy user-defined p1 User Defined Traffic Policy Information: Policy: p1 Classifier: c0 Operator: OR Behavior: b0 Permit Classifier: c1 Operator: OR Behavior: b1 Permit Redirect: no forced Redirect ip-nexthop 10.1.20.1 Classifier: c2 Operator: OR Behavior: b2 Permit Redirect: no forced Redirect ip-nexthop 10.1.30.1 |