配置接口策略路由示例
组网需求
如图1所示,VLAN10和VLAN20是企业内部的两个部门,分别通过交换机连接到RouterA的GE1/0/0和GE2/0/0。HOSTA和HOSTB是同一部门内的两台主机,IP地址分别为192.168.1.2/24和192.168.1.3/24,属于192.168.1.0/24网段;HOSTC和HOSTD是另一部门的两台主机,IP地址分别为192.168.2.2/24和192.168.2.3/24,属于192.168.2.0/24网段。
RouterA可以通过RouterA→RouterB→RouterD连接到Internet,也可以通过RouterA→RouterC→RouterD连接到Internet,现要求:
· 在两条链路都正常时,企业内部不同网段地址的报文通过不同的链路连接到Internet;
· 当一条链路发生故障时,企业内部不同网段地址的报文都走无故障的链路,避免长时间的业务中断;
· 当故障解决后,恢复报文从不同链路连接到Internet。
图1 配置接口策略路由组网图
设备 | 接口 | IP地址 |
RouterA | GE1/0/0 | 192.168.1.1/24 |
GE2/0/0 | 192.168.2.1/24 | |
GE3/0/0 | 192.168.3.1/24 | |
GE4/0/0 | 192.168.4.1/24 | |
RouterB | GE1/0/0 | 192.168.3.2/24 |
GE2/0/0 | 192.168.5.2/24 | |
RouterC | GE1/0/0 | 192.168.4.2/24 |
GE2/0/0 | 192.168.6.2/24 | |
RouterD | GE1/0/0 | 192.168.5.1/24 |
GE2/0/0 | 192.168.6.1/24 | |
GE3/0/0 | 192.168.7.1/24 |
配置思路
采用重定向联动NQA测试例的方式实现策略路由,具体配置思路如下:
1. 配置各设备接口IP地址及路由协议,使企业用户能通过RouterA访问Internet。
2. 配置NQA测试例,检测链路RouterA→RouterB→RouterD和RouterA→RouterC→RouterD是否正常。
3. 配置NQA和静态路由联动,实现当链路故障时,流量可以切换到正常链路。
4. 配置流分类,匹配规则为匹配报文的源IP地址,实现基于源地址对报文进行分类。
5. 配置流行为,即配置NQA与重定向联动,实现当NQA测试例检测到链路RouterA→RouterB→RouterD正常时,将满足规则的报文重定向到192.168.3.2/24,当NQA测试例检测到链路RouterA→RouterC→RouterD正常时,将满足规则的报文重定向到192.168.4.2/24。
6. 配置流策略,绑定上述流分类和流行为,并应用到相应的接口,实现策略路由。
操作步骤
1. 配置设备间的网络互通
# 配置各接口的IP地址,以RouterA为例。其他设备的配置与之类似,详见配置文件。
<Huawei> system-view
[Huawei] sysname RouterA
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] ip address 192.168.1.1 24
[RouterA-GigabitEthernet1/0/0] quit
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] ip address 192.168.2.1 24
[RouterA-GigabitEthernet2/0/0] quit
[RouterA] interface gigabitethernet 3/0/0
[RouterA-GigabitEthernet3/0/0] ip address 192.168.3.1 24
[RouterA-GigabitEthernet3/0/0] quit
[RouterA] interface gigabitethernet 4/0/0
[RouterA-GigabitEthernet4/0/0] ip address 192.168.4.1 24
[RouterA-GigabitEthernet4/0/0] quit
说明:
请配置SwitchA和SwitchB,使其能与RouterA互通。
# 配置各设备间的静态路由。
[RouterA] ip route-static 192.168.7.0 255.255.255.0 192.168.3.2
[RouterA] ip route-static 192.168.7.0 255.255.255.0 192.168.4.2
[RouterA] ip route-static 192.168.5.0 255.255.255.0 192.168.3.2
[RouterA] ip route-static 192.168.6.0 255.255.255.0 192.168.4.2
[RouterB] ip route-static 192.168.7.0 255.255.255.0 192.168.5.1
[RouterB] ip route-static 192.168.1.0 255.255.255.0 192.168.3.1
[RouterB] ip route-static 192.168.2.0 255.255.255.0 192.168.3.1
[RouterC] ip route-static 192.168.7.0 255.255.255.0 192.168.6.1
[RouterC] ip route-static 192.168.1.0 255.255.255.0 192.168.4.1
[RouterC] ip route-static 192.168.2.0 255.255.255.0 192.168.4.1
[RouterD] ip route-static 192.168.1.0 255.255.255.0 192.168.5.2
[RouterD] ip route-static 192.168.1.0 255.255.255.0 192.168.6.2
[RouterD] ip route-static 192.168.2.0 255.255.255.0 192.168.6.2
[RouterD] ip route-static 192.168.2.0 255.255.255.0 192.168.5.2
[RouterD] ip route-static 192.168.3.0 255.255.255.0 192.168.5.2
[RouterD] ip route-static 192.168.4.0 255.255.255.0 192.168.6.2
2. 配置NQA测试例
# 在RouterA上配置NQA测试例。
[RouterA] nqa test-instance admin vlan10
[RouterA-nqa-admin-vlan10] test-type icmp
[RouterA-nqa-admin-vlan10] destination-address ipv4 192.168.5.1
[RouterA-nqa-admin-vlan10] frequency 10
[RouterA-nqa-admin-vlan10] probe-count 2
[RouterA-nqa-admin-vlan10] start now
[RouterA-nqa-admin-vlan10] quit
[RouterA] nqa test-instance admin vlan20
[RouterA-nqa-admin-vlan20] test-type icmp
[RouterA-nqa-admin-vlan20] destination-address ipv4 192.168.6.1
[RouterA-nqa-admin-vlan20] frequency 10
[RouterA-nqa-admin-vlan20] probe-count 2
[RouterA-nqa-admin-vlan20] start now
[RouterA-nqa-admin-vlan20] quit
# 在RouterD上配置NQA测试例。
[RouterD] nqa test-instance admin vlan10
[RouterD-nqa-admin-vlan10] test-type icmp
[RouterD-nqa-admin-vlan10] destination-address ipv4 192.168.3.1
[RouterD-nqa-admin-vlan10] frequency 10
[RouterD-nqa-admin-vlan10] probe-count 2
[RouterD-nqa-admin-vlan10] start now
[RouterD-nqa-admin-vlan10] quit
[RouterD] nqa test-instance admin vlan20
[RouterD-nqa-admin-vlan20] test-type icmp
[RouterD-nqa-admin-vlan20] destination-address ipv4 192.168.4.1
[RouterD-nqa-admin-vlan20] frequency 10
[RouterD-nqa-admin-vlan20] probe-count 2
[RouterD-nqa-admin-vlan20] start now
[RouterD-nqa-admin-vlan20] quit
3. 配置NQA与静态路由联动
# 在RouterA上配置NQA与静态路由联动。
[RouterA] ip route-static 192.168.7.0 255.255.255.0 192.168.3.2 track nqa admin vlan10
[RouterA] ip route-static 192.168.7.0 255.255.255.0 192.168.4.2 track nqa admin vlan20
[RouterA] quit
# 在RouterD上配置NQA与静态路由联动。
[RouterD] ip route-static 192.168.1.0 255.255.255.0 192.168.5.2 track nqa admin vlan10
[RouterD] ip route-static 192.168.1.0 255.255.255.0 192.168.6.2 track nqa admin vlan20
[RouterD] ip route-static 192.168.2.0 255.255.255.0 192.168.5.2 track nqa admin vlan10
[RouterD] ip route-static 192.168.2.0 255.255.255.0 192.168.6.2 track nqa admin vlan20
[RouterD] quit
4. 配置流分类
# 在RouterA上创建流分类vlan10、vlan20,分别匹配源地址为192.168.1.0/24和192.168.2.0/24网段的报文。
[RouterA] acl number 2000
[RouterA-acl-basic-2000] rule 10 permit source 192.168.1.0 0.0.0.255
[RouterA-acl-basic-2000] quit
[RouterA] acl number 2001
[RouterA-acl-basic-2001] rule 20 permit source 192.168.2.0 0.0.0.255
[RouterA-acl-basic-2001] quit
[RouterA] traffic classifier vlan10
[RouterA-classifier-vlan10] if-match acl 2000
[RouterA-classifier-vlan10] quit
[RouterA] traffic classifier vlan20
[RouterA-classifier-vlan20] if-match acl 2001
[RouterA-classifier-vlan20] quit
# 在RouterD上创建流分类vlan10、vlan20,分别匹配目的地址为192.168.1.0/24和192.168.2.0/24网段的报文。
[RouterD] acl number 3000
[RouterD-acl-adv-3000] rule 10 permit ip destination 192.168.1.0 0.0.0.255
[RouterD-acl-adv-3000] quit
[RouterD] acl number 3001
[RouterD-acl-adv-3001] rule 20 permit ip destination 192.168.2.0 0.0.0.255
[RouterD-acl-adv-3001] quit
[RouterD] traffic classifier vlan10
[RouterD-classifier-vlan10] if-match acl 3000
[RouterD-classifier-vlan10] quit
[RouterD] traffic classifier vlan20
[RouterD-classifier-vlan20] if-match acl 3001
[RouterD-classifier-vlan20] quit
5. 配置流行为
# 在RouterA上创建流行为vlan10,配置NQA测试例admin vlan10与重定向到下一跳192.168.3.2/24联动,当NQA测试例检测到链路正常时,重定向生效;NQA测试例检测到链路故障时,按正常转发路径转发报文。
[RouterA] traffic behavior vlan10
[RouterA-behavior-vlan10] redirect ip-nexthop 192.168.3.2 track nqa admin vlan10
[RouterA-behavior-vlan10] quit
# 在RouterA上创建流行为vlan20,配置NQA测试例admin vlan20与重定向到下一跳192.168.4.2/24联动,当NQA测试例检测到链路正常时,重定向生效;NQA测试例检测到链路故障时,按正常转发路径转发报文。
[RouterA] traffic behavior vlan20
[RouterA-behavior-vlan20] redirect ip-nexthop 192.168.4.2 track nqa admin vlan20
[RouterA-behavior-vlan20] quit
# 在RouterD上创建流行为vlan10,配置NQA测试例admin vlan10与重定向到下一跳192.168.5.2/24联动,当NQA测试例检测到链路正常时,重定向生效;NQA测试例检测到链路故障时,按正常转发路径转发报文。
[RouterD] traffic behavior vlan10
[RouterD-behavior-vlan10] redirect ip-nexthop 192.168.5.2 track nqa admin vlan10
[RouterD-behavior-vlan10] quit
# 在RouterD上创建流行为vlan20,配置NQA测试例admin vlan20与重定向到下一跳192.168.6.2/24联动,当NQA测试例检测到链路正常时,重定向生效;NQA测试例检测到链路故障时,按正常转发路径转发报文。
[RouterD] traffic behavior vlan20
[RouterD-behavior-vlan20] redirect ip-nexthop 192.168.6.2 track nqa admin vlan20
[RouterD-behavior-vlan20] quit
6. 配置流策略并应用到接口上
# 在RouterA上创建流策略vlan10、vlan20,将流分类和对应的流行为进行绑定。
[RouterA] traffic policy vlan10
[RouterA-trafficpolicy-vlan10] classifier vlan10 behavior vlan10
[RouterA-trafficpolicy-vlan10] quit
[RouterA] traffic policy vlan20
[RouterA-trafficpolicy-vlan20] classifier vlan20 behavior vlan20
[RouterA-trafficpolicy-vlan20] quit
# 将流策略vlan10应用到接口GE1/0/0入方向,将流策略vlan20应用到接口GE2/0/0入方向。
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] traffic-policy vlan10 inbound
[RouterA-GigabitEthernet1/0/0] quit
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] traffic-policy vlan20 inbound
[RouterA-GigabitEthernet2/0/0] quit
# 在RouterD上创建流策略vlan10,将流分类和对应的流行为进行绑定。
[RouterD] traffic policy vlan10
[RouterD-trafficpolicy-vlan10] classifier vlan10 behavior vlan10
[RouterD-trafficpolicy-vlan10] classifier vlan20 behavior vlan20
[RouterD-trafficpolicy-vlan10] quit
# 将流策略vlan10应用到接口GE3/0/0入方向。
[RouterD] interface gigabitethernet 3/0/0
[RouterD-GigabitEthernet3/0/0] traffic-policy vlan10 inbound
[RouterD-GigabitEthernet3/0/0] quit
7. 验证配置结果
# 查看RouterA接口的配置信息。
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] display this
#
interface GigabitEthernet1/0/0
ip address 192.168.1.1 255.255.255.0
traffic-policy vlan10 inbound
#
return
[RouterA-GigabitEthernet1/0/0] quit
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] display this
#
interface GigabitEthernet2/0/0
ip address 192.168.2.1 255.255.255.0
traffic-policy vlan20 inbound
#
return
# 查看流策略的配置信息。
[RouterA-GigabitEthernet2/0/0] quit
[RouterA] display traffic policy user-defined
User Defined Traffic Policy Information:
Policy: vlan10
Classifier: vlan10
Operator: OR
Behavior: vlan10
Redirect:
Redirect ip-nexthop 192.168.3.2 track nqa admin vlan10
Policy: vlan20
Classifier: vlan20
Operator: OR
Behavior: vlan20
Redirect:
Redirect ip-nexthop 192.168.4.2 track nqa admin vlan20
配置接口策略路由
配置接口策略路由可以将到达接口的转发报文重定向到指定的下一跳地址。
背景信息
通过配置重定向,设备将符合流分类规则的报文重定向到指定的下一跳地址或指定接口。当重定向不生效时,用户可以选择配置将报文按原路径转发或丢弃。
包含重定向动作的流策略只能在接口的入方向上应用。
前置任务
-
配置相关接口的IP地址和路由协议,保证路由互通。
-
如果使用ACL作为接口策略路由的流分类规则,配置相应的ACL。
-
(可选)SAC特征库文件已经上传到设备,保存在设备的存储介质中。
操作步骤
-
配置流分类
-
执行命令system-view,进入系统视图。
-
执行命令traffic classifier classifier-name [ operator { and | or } ],创建一个流分类,进入流分类视图。
and表示流分类中各规则之间关系为“逻辑与”,指定该逻辑关系后:-
当流分类中有ACL规则时,报文必须匹配其中一条ACL规则以及所有非ACL规则才属于该类。
-
当流分类中没有ACL规则时,则报文必须匹配所有非ACL规则才属于该类。
缺省情况下,流分类中各规则之间的关系为“逻辑或”。
-
- 请根据实际情况配置流分类中的匹配规则。
匹配规则
命令
外层VLAN ID
if-match vlan-id start-vlan-id [ to end-vlan-id ] QinQ报文内层VLAN ID
if-match cvlan-id start-vlan-id [ to end-vlan-id ] VLAN报文802.1p优先级
if-match 8021p 8021p-value &<1-8> QinQ报文内层VLAN的802.1p优先级
if-match cvlan-8021p 8021p-value &<1-8> MPLS报文EXP优先级(AR1200系列、AR2200系列、AR3200系列)
if-match mpls-exp exp-value &<1-8> 目的MAC地址
if-match destination-mac mac-address [ mac-address-mask mac-address-mask ] 源MAC地址
if-match source-mac mac-address [ mac-address-mask mac-address-mask ] FR报文中的DLCI信息
if-match dlci start-dlci-number [ to end-dlci-number ] FR报文中的DE标志位
if-match fr-de 以太网帧头中协议类型字段
if-match l2-protocol { arp | ip | mpls | rarp | protocol-value } 所有报文
if-match any IP报文的DSCP优先级
if-match [ ipv6 ] dscp dscp-value &<1-8> 说明:如果流策略中配置了匹配DSCP,则SAE220(WSIC)和SAE550(XSIC)单板不支持redirect ip-nexthop ip-address post-nat动作。
IP报文的IP优先级
if-match ip-precedence ip-precedence-value &<1-8> 说明:不能在一个逻辑关系为“与”的流分类中同时配置if-match [ ipv6 ] dscp和if-match ip-precedence。
报文三层协议类型
if-match protocol { ip | ipv6 } 指定QoS group索引的IPSec报文
if-match qos-group qos-group-value IPv4报文长度
if-match packet-length min-length [ to max-length ] ATM报文中的PVC信息
if-match pvc vpi-number/vci-number RTP端口号
if-match rtp start-port start-port-number end-port end-port-number TCP报文SYN Flag
if-match tcp syn-flag { ack | fin | psh | rst | syn | urg }*
入接口
if-match inbound-interface interface-type interface-number 出接口
if-match outbound-interface Cellular interface-number:channel ACL规则
if-match acl { acl-number | acl-name } 说明:-
使用ACL作为流分类规则,必须先配置相应的ACL规则。
-
当使用ACL作为流分类规则匹配源IP地址时,通过在接口下的qos pre-nat配置NAT预分类功能,可以将NAT转换前的私网IP地址信息携带到出接口,即可实现基于私网IP地址的分类,从而对来自不同私网IP地址的报文提供差分服务。
ACL6规则
if-match ipv6 acl { acl-number | acl-name } 说明:-
使用ACL作为流分类规则,必须先配置相应的ACL规则。
-
当使用ACL作为流分类规则匹配源IP地址时,通过在接口下的qos pre-nat配置NAT预分类功能,可以将NAT转换前的私网IP地址信息携带到出接口,即可实现基于私网IP地址的分类,从而对来自不同私网IP地址的报文提供差分服务。
应用协议
if-match app-protocol protocol-name [ time-range time-name ] 说明:定义基于应用协议的匹配规则前,必须使能SAC功能并加载特征库。
SAC协议组
if-match protocol-group protocol-group [ time-range time-name ] 说明:-
定义基于应用协议的匹配规则前,必须使能SAC功能并加载特征库。
-
可以在SAC协议组视图中通过app-protocol protocol-name将指定应用协议加入SAC协议组。
-
- 执行命令quit,退出流分类视图。
-
配置流行为
- 执行命令traffic behavior behavior-name,创建一个流行为,进入流行为视图。
-
请根据实际需要进行如下配置:
-
执行命令redirect ip-nexthop ip-address [ vpn-instance vpn-instance-name ] [ track { nqa admin-name test-name | ip-route ip-address { mask | mask-length } } ] [ post-nat ] [ discard ],将符合流分类的报文重定向到下一跳,并配置重定向与NQA测试例或IP路由联动。
NQA(Network Quality Analysis)是网络故障诊断和定位的有效工具,路由状态则可以直接反映出目的IP是否可达,配置NQA/路由与重定向联动功能,可以在目的IP不可达时,实现链路快速切换,保障用户流量正常转发:-
当NQA/路由模块检测到目的IP可达时,按照指定的IP进行报文转发,即重定向生效。
-
当NQA/路由模块检测到目的IP不可达时,重定向不生效,如果用户未配置discard参数,系统将按原来的转发路径转发报文,否则报文将被丢弃。
说明:-
与重定向联动的NQA测试例必须为ICMP类型,具体配置请参见《Huawei AR150&AR160&AR200&AR1200&AR2200&AR3200系列企业路由器 配置指南-NQA配置》中的“配置ICMP测试”部分。
-
重定向配置对IPv6报文中的Hop-by-Hop报文不生效。
-
- (可选)当通过redirect ip-nexthop ip-address [ vpn-instance vpn-instance-name ] [ track { nqa admin-name test-name | ip-route ip-address { mask | mask-length } } ] [ post-nat ] [ discard ]命令将符合流分类的报文重定向到下一跳后,可以执行命令redirect backup-nexthop ip-address在流行为中创建将报文重定向到备份下一跳IP地址的动作。
-
执行命令redirect ipv6-nexthop ipv6-address [ track { nqa nqa-admin nqa-name | ipv6-route ipv6–address masklen } ] [ discard ],将符合流分类的IPv6报文重定向到下一跳。
-
执行命令redirect interface interface-type interface-number [ track { nqa admin-name test-name | ip-route ip-address { mask | mask-length } | ipv6-route ipv6-address mask-length } ] [ discard ],将符合流分类的报文重定向到指定接口。
说明:- 目前设备仅支持重定向到3G Cellular接口和Dialer接口(对于MPOEOA链路方式,不支持重定向到Dialer接口)。
- 与重定向联动的NQA测试例的测试类型需为ICMP。
-
- (可选)执行命令statistic enable,使能流量统计功能。
- 执行命令quit,退出流行为视图。
- 执行命令quit,退出系统视图。
-
配置流策略
-
执行命令system-view,进入系统视图。
-
执行命令traffic policy policy-name,创建一个流策略并进入流策略视图,或进入已存在的流策略视图。
-
执行命令classifier classifier-name behavior behavior-name,在流策略中为指定的流分类配置所需流行为,即绑定流分类和流行为。
- 执行命令quit,退出流策略视图。
- 执行命令quit,退出系统视图。
-
-
应用流策略
-
执行命令system-view,进入系统视图。
-
执行命令interface interface-type interface-number [.subinterface-number ],进入接口视图或子接口视图。
-
执行命令traffic-policy policy-name inbound,在接口或子接口的入方向应用流策略。
目前,接口策略路由仅支持在接口的入方向上应用。
-
检查配置结果
- 执行命令display traffic classifier user-defined [ classifier-name ],查看已配置的流分类信息。
- 执行命令display traffic behavior { system-defined | user-defined } [ behavior-name ],查看已配置的流行为信息。
-
执行命令display traffic policy user-defined [ policy-name [ classifier classifier-name ] ],查看流策略的配置信息。
-
执行命令display traffic-policy applied-record [ policy-name ],查看指定流策略的应用记录。