ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

华为路由器策略路由实战:本地策略与接口策略详解

华为路由器策略路由实战:本地策略与接口策略详解 1. 策略路由当标准路由表“不够用”时在网络工程师的日常里标准的路由表Routing Table就像是城市里的主干道地图它告诉数据包“去往某个目的地走哪条路最快”。这条“路”的选择通常只基于一个最简单的原则目的IP地址。数据包只看它要去哪里然后选择去往那个目的地的最优路径通常是管理距离最小、度量值最优的。这在绝大多数场景下都工作得很好简单、高效、稳定。但现实世界总是更复杂一些。你有没有遇到过这样的需求公司有两条互联网出口一条是便宜的普通宽带一条是昂贵但低延迟的专线。你希望所有员工的网页浏览、邮件走普通宽带但所有视频会议流量比如Teams、Zoom必须走专线以保证质量。服务器需要同时服务于内网用户和互联网用户。你希望来自内网的数据回包走内网高速链路而来自互联网的数据回包走防火墙的安全链路。在一个复杂的网络环境中你需要基于数据包的来源不仅仅是目的地、协议类型甚至应用端口号来灵活地引导流量。当“只看目的地”这条铁律无法满足这些精细化的流量调度需求时策略路由就该登场了。它本质上是一种“越级”指挥权允许网络设备在查询标准路由表之前先根据管理员定义的、更丰富的策略条件如源IP、目的IP、协议、端口、数据包大小等来决定数据包的下一跳或出接口。它打破了传统路由的单一决策维度实现了基于策略的、更智能的流量工程。简单来说标准路由回答的是“去哪里怎么走”而策略路由回答的是“谁、用什么、要去哪里、应该怎么走”。后者显然能实现更精细、更符合业务逻辑的控制。在主流网络设备如Cisco、华为、H3C等的实现中策略路由通常有两种主要的应用“切入点”也就是我们标题中提到的本地策略和接口策略。理解这两者的区别和应用场景是玩转策略路由的关键第一步。很多人配置策略路由不生效第一步就错在了应用对象上。2. 核心概念拆解本地策略路由 vs. 接口策略路由虽然都叫“策略路由”但“本地策略”和“接口策略”生效的时机、处理的对象以及应用场景有本质区别。我们可以用一个形象的比喻来理解接口策略路由好比是高速公路的入口收费站。所有想要从某个特定入口网络接口进入高速公路路由器的车流数据包在进入时就必须接受检查。收费站根据车辆类型小车、货车、目的地本地、外地等策略决定将其引导至不同的车道下一跳。它处理的是**“过路”的流量**即穿越本设备转发的流量。本地策略路由好比是交通指挥中心内部的调度规则。指挥中心自己也有车辆路由器自身产生的数据包需要发出比如去汇报路况、去其他中心协调。这些“自产”的车辆在出发前不经过任何公共收费站而是由内部调度员根据一套特殊规则本地策略来决定走哪条路。它处理的是**“本地产生”的流量**。下面我们从技术层面进行详细对比。2.1 接口策略路由对“过境”流量的精细化调度接口策略路由在Cisco体系中常称为“PBR”在华为/华三体系中常称为“流量策略”或“策略路由”。它的核心思想是在数据包从设备的某个入接口进入后、查询全局路由表之前先匹配一套策略如果匹配成功则按策略指示转发如果匹配失败则 fallback 到查询标准路由表。工作流程如下数据包从接口如GigabitEthernet0/0/1进入路由器。路由器检查该接口是否应用了接口策略路由。如果应用了则提取数据包的源IP、目的IP、协议、端口、DSCP值等字段与策略中定义的“流分类”或“ACL”进行匹配。如果匹配成功则按照策略中定义的“流行为”执行动作通常是设置下一跳IP地址或出接口然后直接转发不再查询全局路由表。如果匹配失败或者策略路由中配置的下一跳不可达则数据包会退回标准转发流程去查询全局路由表决定路径。配置逻辑与关键命令以华为设备为例接口策略路由的配置通常包含三个部分流分类、流行为、流策略最后将流策略应用到接口的入方向。# 1. 定义流分类识别感兴趣的流量 acl number 3000 rule 5 permit ip source 192.168.1.0 0.0.0.255 destination 10.1.1.0 0.0.0.255 # 匹配从192.168.1.0/24去往10.1.1.0/24的流量 traffic classifier VOICE operator or # 创建一个名为VOICE的流分类 if-match acl 3000 # 关联ACL 3000 # 2. 定义流行为对匹配的流量执行什么动作 traffic behavior VOICE-PATH redirect ip-nexthop 202.96.128.1 # 强制将流量重定向到下一跳202.96.128.1 # 3. 定义流策略将流分类和流行为绑定 traffic policy PBR-VOICE classifier VOICE behavior VOICE-PATH # 如果流量匹配VOICE分类则执行VOICE-PATH行为 # 4. 在接口的入方向应用流策略 interface GigabitEthernet0/0/1 traffic-policy PBR-VOICE inbound # 关键在入方向应用策略核心应用场景双出口负载分担与选路这是最经典的场景。内网用户访问不同运营商的服务器让其从对应的运营商出口出去实现“电信走电信联通走联通”。基于应用的流量调度如前所述让视频会议走高质量链路普通上网走经济链路。安全策略引流将所有去往特定服务器如Web服务器的流量先引导至防火墙或入侵检测设备进行安全检查再绕回正常路径。实操心得配置接口PBR时最容易犯的错误就是忘记在接口的inbound方向应用策略。策略路由是对“进入”的流量做策略所以必须在流量进入设备的那个接口上应用。另一个常见坑是下一跳地址不可达。如果策略中指定的下一跳IP地址设备本身没有到达该IP的路由即使是默认路由策略路由就会失效流量会回退到标准路由。因此务必确保设备有到达策略下一跳的路由。2.2 本地策略路由控制“设备自身”的流量出口本地策略路由处理的对象完全不同它只作用于路由器或三层交换机自身CPU产生的数据包。这些数据包包括路由器发起的Telnet、SSH、SNMP、NTP、Syslog等管理流量。路由器产生的路由协议报文如OSPF的Hello包、BGP的Update包。路由器ping/traceroute其他设备时产生的ICMP报文。设备上配置的IP SLA探针发送的测试报文。为什么需要控制本地流量考虑一个双出口路由器两个出口分别连接电信和联通。它的管理IP比如Loopback0: 1.1.1.1需要能被两个运营商网络的管理员访问。如果你希望所有从路由器主动发起的SSH连接例如你去管理远端设备都从联通出口出去而SNMP Trap报文都从电信出口出去标准路由表是做不到的因为它只为1.1.1.1这个源地址选择一条最优路径。这时就必须用到本地策略路由。工作流程如下路由器CPU准备发送一个数据包例如一个ping包。在包被送出之前系统会检查是否配置了本地策略路由。如果配置了则用这个数据包的属性源IP、目的IP、协议等去匹配本地策略。如果匹配成功则按照策略设置下一跳或出接口然后从指定接口发出。如果匹配失败则按照全局路由表为这个数据包选择出口。配置逻辑与关键命令以华为设备为例本地策略路由的配置不关联具体接口而是通过本地策略路由命令在系统视图下全局配置并通过策略来调用。# 1. 同样需要先定义ACL来匹配本地流量 acl number 3001 rule 5 permit ip source 1.1.1.1 0 destination 8.8.8.8 0 # 匹配从设备自身1.1.1.1去往8.8.8.8的流量 acl number 3002 rule 5 permit udp source 1.1.1.1 0 destination any # 匹配所有从1.1.1.1发出的UDP流量如SNMP Trap # 2. 创建策略路由节点 policy-based-route LOCAL-PBR permit node 10 # 创建名为LOCAL-PBR的策略节点10为允许 if-match acl 3001 # 如果匹配ACL 3001 apply ip-address next-hop 202.96.128.1 # 则设置下一跳为202.96.128.1电信出口 policy-based-route LOCAL-PBR permit node 20 if-match acl 3002 apply ip-address next-hop 210.72.128.1 # 则设置下一跳为210.72.128.1联通出口 # 3. 在系统视图下应用本地策略路由 ip local policy-based-route LOCAL-PBR # 关键这条命令使策略对本地流量生效核心应用场景管理流量的出口控制确保设备的管理流量SSH、SNMP从指定安全、稳定的链路发出。路由协议报文的路径控制在多出口场景下控制OSPF、BGP等协议报文从哪个接口发出以影响邻居关系的建立和路由的学习。网络质量探测使用IP SLA如ICMP Echo、UDP Jitter探测不同出口路径的质量时需要本地策略来确保探测报文从指定的出口发出并从对应的入口返回这样才能真实反映该路径的状况。踩坑实录本地策略路由的一个大坑是对某些“特殊”本地流量无效。例如在华为设备上ping命令默认使用的源地址是出接口的IP而不是你指定的源IP如ping -a 1.1.1.1 8.8.8.8。如果你在ACL中匹配的是源IP1.1.1.1但ping没用-a参数指定那么该流量就不会被本地策略匹配到。另一个常见问题是策略顺序。策略节点node是按数字从小到大执行的一旦匹配就不再执行后续节点。如果配置了node 5匹配所有流量并走默认出口那么后面更精细的node 10、node 20就永远不会生效。务必把最精确的匹配条件放在前面。3. 典型实战华为路由器双出口策略路由配置详解结合网络热词“华为路由器双出口配置策略路由”我们来构建一个完整的实战场景并分别配置接口策略和本地策略。场景描述某公司网络拓扑如下一台华为AR路由器作为网关。内网接口G0/0/0 IP: 192.168.1.1/24 连接内部办公网段192.168.1.0/24。出口1: G0/0/1 IP: 202.96.128.2/30 网关: 202.96.128.1 连接电信网络。出口2: G0/0/2 IP: 210.72.128.2/30 网关: 210.72.128.1 连接联通网络。路由器有一个Loopback0地址: 1.1.1.1/32用于设备管理。业务需求接口策略需求内网用户192.168.1.0/24访问电信网络目的IP属于202.96.0.0/16时强制从电信出口202.96.128.1出去访问联通网络目的IP属于210.72.0.0/16时强制从联通出口210.72.128.1出去访问其他公网如8.8.8.8时默认从电信出口出去。本地策略需求路由器自身发出的管理流量源IP为1.1.1.1访问任何目的地都从联通出口出去因为联通链路更稳定便于远程运维。3.1 基础网络与路由配置首先完成基本的接口IP和默认路由配置。注意我们配置两条默认路由但通过调整优先级Preference来设定主备。sysname AR-Gateway # interface GigabitEthernet0/0/0 ip address 192.168.1.1 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 202.96.128.2 255.255.255.252 # interface GigabitEthernet0/0/2 ip address 210.72.128.2 255.255.255.252 # interface LoopBack0 ip address 1.1.1.1 255.255.255.255 # # 配置默认路由电信出口为主优先级60联通出口为备优先级70 ip route-static 0.0.0.0 0.0.0.0 202.96.128.1 preference 60 ip route-static 0.0.0.0 0.0.0.0 210.72.128.1 preference 703.2 配置接口策略路由实现需求1我们需要在内网接口G0/0/0的入方向应用策略对进入的流量进行分类和重定向。# 1. 创建ACL定义流量匹配规则 acl number 3000 rule 5 permit ip source 192.168.1.0 0.0.0.255 destination 202.96.0.0 0.0.255.255 # 去往电信网络 rule 10 permit ip source 192.168.1.0 0.0.0.255 destination 210.72.0.0 0.0.255.255 # 去往联通网络 # acl number 3001 rule 5 permit ip source 192.168.1.0 0.0.0.255 # 匹配所有内网源IP用于默认路由情况 # # 2. 创建流分类 traffic classifier to-CT operator or if-match acl 3000 rule 5 # 匹配ACL 3000的第5条规则去电信 traffic classifier to-CU operator or if-match acl 3000 rule 10 # 匹配ACL 3000的第10条规则去联通 traffic classifier default-class operator or if-match acl 3001 # 匹配所有内网流量 # # 3. 创建流行为 traffic behavior redirect-to-CT redirect ip-nexthop 202.96.128.1 traffic behavior redirect-to-CU redirect ip-nexthop 210.72.128.1 traffic behavior use-default # 注意这里不配置动作意味着匹配此分类的流量将不执行重定向而是fallback到查询全局路由表即走主默认路由 # # 4. 创建流策略并绑定 traffic policy PBR-DUAL-WAN classifier to-CT behavior redirect-to-CT # 去电信的走电信出口 classifier to-CU behavior redirect-to-CU # 去联通的走联通出口 classifier default-class behavior use-default # 其他流量走标准路由表主默认路由 # # 5. 在内网接口入方向应用策略 interface GigabitEthernet0/0/0 traffic-policy PBR-DUAL-WAN inbound配置解析与验证当内网用户访问202.96.1.1时数据包从G0/0/0进入匹配to-CT分类被重定向到下一跳202.96.128.1从G0/0/1发出。当访问210.72.1.1时匹配to-CU分类被重定向到210.72.128.1从G0/0/2发出。当访问8.8.8.8时首先尝试匹配to-CT和to-CU均失败。然后匹配default-class成功执行use-default行为即无动作于是数据包进入标准转发流程查询路由表匹配主默认路由优先级60从电信出口202.96.128.1发出。可以使用display traffic-policy applied-record查看策略应用情况用display traffic-policy statistics interface GigabitEthernet 0/0/0 inbound查看策略匹配的报文统计这是验证策略是否生效最直接的方法。3.3 配置本地策略路由实现需求2接下来配置本地策略控制路由器自身流量。# 1. 创建ACL匹配本地管理流量源为Loopback0 IP acl number 3100 rule 5 permit ip source 1.1.1.1 0 # # 2. 创建本地策略路由 policy-based-route LOCAL-MGMT permit node 10 description For-Local-Management-Traffic if-match acl 3100 apply ip-address next-hop 210.72.128.1 # 所有管理流量强制走联通出口 # # 3. 应用本地策略路由 ip local policy-based-route LOCAL-MGMT配置解析与验证此后当管理员从路由器使用ping -a 1.1.1.1 8.8.8.8或ssh -a 1.1.1.1 远程服务器时产生的数据包源IP是1.1.1.1匹配ACL 3100被本地策略捕获强制设置下一跳为210.72.128.1从而从联通出口G0/0/2发出。可以使用display ip local policy-based-route查看本地策略的配置和统计信息。通过ping -a 1.1.1.1 8.8.8.8并同时在两个出口抓包可以验证ICMP请求报文确实是从联通出口发出的。4. 高级议题与排错指南掌握了基础配置后在实际网络中部署策略路由还会遇到一些更复杂的情况和棘手的故障。4.1 策略路由与NAT的协同与冲突在出口网关场景策略路由常常和NAT网络地址转换一起使用。这里有一个至关重要的顺序问题是先做策略路由还是先做NAT在华为设备上数据包处理流程通常是接口ACL/策略路由 - NAT - 安全策略/路由表查询。这意味着数据包进入接口先匹配接口上应用的策略路由PBR。策略路由决策后数据包进行NAT转换源IP被替换为公网IP。转换后的数据包再根据其新的目的IP查询路由表如果策略路由未指定出接口或下一跳不可达或者直接根据策略路由的指示从指定接口发出。冲突案例假设策略路由基于内网源IP192.168.1.100将流量导向出口A但NAT策略将所有内网IP都转换为出口A接口的IP。这通常没问题。但如果策略路由是基于目的IP将流量导向出口B而NAT策略只配置在出口A的接口上那么问题就来了数据包被策略路由指向出口B但到了出口B接口时发现没有配置对应的NAT规则导致源IP无法转换数据包可能被丢弃或无法正确路由回来。解决方案对称配置NAT确保每个出口接口上都配置了正确的NAT策略将内网地址转换为该出口接口的IP或对应的地址池。使用NAT Server时注意如果做了策略路由指向内部服务器的流量可能被错误地重定向。需要配置更精确的ACL在策略路由中排除这些流量或者使用no-nat等命令在特定流上禁用NAT。4.2 策略路由的失效场景与排查思路策略路由配置了却不生效是运维中最常见的问题。下面是一个系统性的排查链路检查策略是否被正确应用命令display traffic-policy applied-record和display ip local policy-based-route。确认策略名称正确并且接口策略确实应用在了目标接口的inbound方向。检查流量是否匹配了分类规则这是最高频的故障点。使用display traffic-policy statistics interface 接口 inbound查看计数是否在增加。如果计数为0说明流量根本没有命中你的ACL或分类规则。你需要复核ACL规则源/目的IP、通配符掩码是否正确规则是permit还是deny确认流量特征你测试的流量其真实的源IP、目的IP、协议端口号是什么是否和你想象的一致例如你测试ping 8.8.8.8但策略匹配的是TCP 80端口当然不生效。使用packet-capture抓包在应用策略的接口入方向抓包是验证流量真实特征的金标准。检查策略动作的下一跳或出接口是否有效策略路由指定的下一跳IP地址路由器必须能解析到其MAC地址即ARP表里有对应条目。使用display arp | include 下一跳IP检查。如果下一跳不可达例如连接下一跳的直连接口down了策略路由会失效流量回退到标准路由。可以配置多个apply动作实现负载分担或主备例如apply ip-address next-hop 202.96.128.1 210.72.128.1。检查是否存在更优先的转发策略策略路由的优先级低于某些特定转发方式。例如如果接口上配置了MQC模块化QoS命令行重定向其优先级可能高于策略路由。需要检查完整的接口配置。对于本地策略路由某些系统内部的高优先级流量如某些路由协议报文可能不受其控制。检查路由表的影响记住策略路由优先于路由表查询。但如果策略路由动作是redirect ip-nexthop且下一跳不可达或者动作是redirect interface但接口没有IP地址或状态down流量会回退到查询路由表。使用tracert或debug ip packet谨慎使用可以观察数据包的实际转发路径。4.3 策略路由的进阶应用基于DSCP或用户组的策略除了基于五元组源/目IP、端口、协议策略路由还可以基于更高级的条件基于DSCP/TOS值在QoS体系中我们可以通过MQC为特定流量标记DSCP值。然后在策略路由的流分类中使用if-match dscp来匹配这些标记从而实现基于应用服务等级的选路。例如将DSCP为EF加速转发值46的语音流量引导至高质量链路。traffic classifier VOICE-DSCP if-match dscp ef # 匹配DSCP值为EF46的流量结合用户认证在园区网中可以与认证系统如RADIUS联动。当用户认证成功后RADIUS服务器可以下发动态的ACL或策略路由参数到接入设备如交换机为该用户的流量实施个性化的策略路由。这实现了基于用户身份而非IP地址的精细控制。策略路由是一个强大而灵活的工具它将网络从被动的、基于目的地的路径选择转变为主动的、基于业务策略的流量调度。理解本地策略与接口策略的根本区别是正确运用它的基石。而在实战中清晰的排查思路和对数据包转发流程的深刻理解则是解决各种诡异问题的钥匙。下次当标准路由让你感到束手束脚时不妨想想策略路由它很可能就是你要找的那把“瑞士军刀”。
返回列表