首页 / 资讯中心 / 文章详情

基于VLAN的策略路由:原理、配置与多出口选路实战

基于VLAN的策略路由:原理、配置与多出口选路实战 ★ FEATURED ARTICLE
我们常遇到这种需求某个园区网络做了VLAN划分用户、服务器、办公区各占一个VLAN本来一切正常突然有一天业务部门说“研发网访问合作方系统太卡”或者领导要求“财务VLAN必须走专线出口其他VLAN走常规宽带”。这时候单纯靠静态路由或动态路由解决不了你需要的就是基于VLAN的策略路由。它不是新概念但很多人第一次接触时容易把“策略路由”和“路由策略”搞混配置时一不留神就掉坑里。这篇文章我会把原理、设计思路、实操步骤和踩坑记录一次讲透适合刚接触企业网络的新手也能给需要落地多出口选路的运维同行一个参考模板。1. 从需求到思路为什么非要用“基于VLAN的策略路由”1.1 VLAN划分带来的“偏科”问题VLAN解决的是二层隔离和广播域收敛但到了三层转发默认只能按目标IP查路由表。比如我有三个VLANVLAN 10走192.168.10.0/24VLAN 20走192.168.20.0/24VLAN 30走192.168.30.0/24三个网段的网关都在核心交换机上。如果只有一个出口、一条默认路由所有VLAN的流量行为完全一致没有任何问题。但一旦出口变多问题就来了。假设有两条出口线路一条到运营商A一条到运营商B。财务系统要求必须走运营商A的专线因为业务系统部署在对面机房的私有IP段研发访问外部云服务时想要延迟低需要走运营商B办公区则无所谓默认路由出去就行。标准路由表只看目的地址而这三个VLAN访问同一个公共目的地比如8.8.8.8当然实际是某公共DNS时路由表只能给出唯一的一条路径不可能同时满足“同一个目的不同源走不同下一跳”。谁先匹配谁就赢了做不到精细化分流。这时候就需要策略路由介入。策略路由的匹配条件不只有目的地址还能结合源地址、报文大小、应用协议、甚至入接口和VLAN信息来定义不同的转发路径。而“基于VLAN的策略路由”说白了就是把策略路由的作用范围限定在某个VLAN或者明确匹配某个VLAN流量让这个VLAN的流量走一条专有路径而不是和其他VLAN混在一起走默认路由。1.2 典型场景多出口选路其实只是最基础的一种最常见的场景就是刚才说的多出口选路。某公司有两条宽带一条是普通商用宽带一条是点对点专线。专线费用高、带宽有限必须把最重要的业务流量比如财务、核心生产放到专线上把视频下载、日常网页浏览这些流量丢到普通宽带上。如果把策略路由直接挂在物理接口上那么同一个物理接口下的所有VLAN流量都会受影响除非你额外匹配源地址。所以在VLANIF接口上应用策略路由天然地就把策略范围限定到了一个VLAN配置更直观维护也不容易乱。除了多出口选路还有一类场景是安全隔离与合规要求。比如某实验室VLAN要求所有流量必须经过审计设备而办公VLAN不需要。传统做法是在OSI七层架构里串联硬件设备但那会改变物理拓扑一旦审计设备故障整网瘫痪。用基于VLAN的策略路由只需要策略路由把该VLAN的下一跳指向审计设备其他VLAN不受影响。故障时还可以快速切换策略把流量跳回原路径比改物理连线方便得多。另外在虚拟化环境或云化园区里基于VLAN的策略路由常被用来实现“租户选路”。多个租户VLAN共享同一基础网络但不同租户有不同服务水平要求。策略路由结合VLAN能让不同租户的流量走各自的服务链。本质上就是“分流”二字但分流条件从目的地址扩展到了VLAN身份这影响的是整个网络的路径规划方式。1.3 所谓的“基于VLAN”到底是挂在接口上还是匹配VLAN标签很多刚接触的人会混淆“基于VLAN的策略路由”和“基于接口的策略路由”。实际上VLAN是二层概念策略路由是三层的转发策略。在三层设备上每个VLAN对应一个VLANIF三层接口所有属于该VLAN的终端流量都会以该VLANIF作为网关。因此在VLANIF接口上应用策略路由就是最标准的“基于VLAN的策略路由”。另一种实现是在二层接口或VLAN域上配置流分类匹配VLAN ID后执行redirect动作这常见于接入交换机。它是在二层转发前把流量重定向到某个三层网关或下一跳本质上也是一种基于VLAN的策略路由但处理层级更低。我后面讲的实操以第一种VLANIF接口应用方式为主原因是它在三层设备核心交换机或路由器上最通用理解起来也最简单每个VLAN一个门在门上贴一张规则表从这个门进来的流量先查规则表规则命中就走指定路径未命中就按正常路由表走。2. 关键原理拆解它到底在转发路径上做了什么2.1 策略路由的三大组成要素策略路由本身一般由三部分组成匹配条件、执行动作、优先级/编号。基于VLAN的策略路由只是把匹配条件细化到了VLAN维度或者把应用位置限定到了VLANIF接口基本骨架不变。匹配条件最常见的是ACL。ACL可以匹配源IP、目的IP、协议端口、分片信息等。因为我们做的是基于VLAN很多人会直接问能不能用ACL匹配VLAN ID标准ACL不行扩展ACL一般也不直接支持二层VLAN字段但有些厂商的流策略支持“if-match vlan-id”。更通用的做法是用源IP网段来关联VLAN因为每个VLAN对应一个独立网段规划时只要保证一一对应匹配源IP就能锁定VLAN。执行动作最常见的是设置下一跳set ip next-hop或出接口set interface。这决定了流量重新查路由时强制使用的路径。也可以是设置IP优先级、隧道封装、重定向到虚拟路由转发实例甚至直接丢弃。优先级或编号在策略规则中用来保证顺序匹配。策略路由通常从上到下依次匹配第一条命中了就不再查看后面的规则。这一点和ACL类似配置时一定要把更精确、更特殊的规则放前面。2.2 数据包在转发路径上的额外一跳在不启用策略路由时一个从VLAN 10进入三层设备的报文查询流程是到达VLANIF10接口二层终结后三层根据目的IP查路由表找到下一跳和出接口然后转发。这个流程链路很短性能开销主要都在路由表查找上。启用策略路由后流程变成报文到达VLANIF10接口先检查接口是否应用了策略路由。如果应用了则对报文执行策略匹配如果匹配到某条规则就按规则中的动作调整比如改变下一跳或出接口、修改优先字段然后以调整后的参数再进入路由查询最终确定出接口和下一跳。所以策略路由不是完全绕过路由表只是在你查路由表之前强行改变了“想去哪儿”的参数。一定要记住这个细节策略路由不是直接把报文从指定下一跳扔出去它只是修改了路由查询时的决策因子最终还是要有路由可达性的保证。如果策略路由指定的下一跳你不知道怎么去那报文照样会丢。很多人在配置完成后发现流量不通排查半天最后发现设备上没有到达策略指定下一跳的路由。2.3 VLAN策略路由与全局策略路由的优先级关系如果设备同时配置了全局策略路由和基于接口的策略路由那么入接口的策略路由优先于全局策略路由。这是比较容易被忽视的细节。全局策略路由通常通过“策略路由本地”或“全局分流”方式影响该设备接收的所有流量但接口策略路由的绑定级别更高因为它在进入接口时直接被调用。实际项目中遇到的情况是核心交换机上做了一个全局策略路由希望把所有网段的某些流量都送到清洗设备结果某个VLAN因为在VLANIF接口上配置了自己的策略路由导致全局策略根本不生效。这个不是故障而是设计冲突。解决方案是在全局策略里对该VLAN流量放行或者将VLAN策略路由的匹配条件做更细粒度的补充让两者配合而不是对抗。2.4 与路由策略的区别千万别混为一谈“策略路由”和“路由策略”名字只差一个词但方向完全不同。路由策略作用于路由协议它影响的是路由表表项是否被接收、发布、修改优先级策略路由作用于数据转发平面的报文它影响的是一个具体报文走哪条路。基于VLAN的策略路由属于后者它不改变路由表只是改变某些报文的转发路径。你可以在不添加任何路由表项的前提下只通过策略路由让VLAN 10的流量走到指定下一跳。这个区别在做设计评审时经常被问先把概念理清。3. 实操一个双出口园区网络的全程配置3.1 拓扑规划与需求定义先给一个具体例子。某公司园区网有一台核心交换机三层下挂三台接入交换机。VLAN 10是研发部网段192.168.10.0/24VLAN 20是办公部网段192.168.20.0/24VLAN 30是财务部网段192.168.30.0/24。核心交换机连接两个外部出口路由器出口A对应运营商甲下一跳是100.64.0.1出口B对应运营商乙下一跳是100.65.0.1。需求如下研发VLAN 10访问互联网的所有流量走出口B因为出口B带宽大、延迟低财务VLAN 30访问互联网的所有流量走出口A因为出口A有专线连接银行/税务系统办公VLAN 20无特殊要求走默认路由我设为走出口A三个VLAN之间可以互相访问不受策略路由限制。默认路由我打算指向出口A即100.64.0.1这样办公和未匹配到的流量都走A。然后给VLAN 10配一个策略路由指定其所有流量下一跳100.65.0.1。VLAN 30的流量不需要特别设置因为默认就是出口A但为了展示“基于VLAN放行/阻断”的用法我们也可以给VLAN 30配一条策略路由动作是设置下一跳100.64.0.1这样即便将来默认出口切换到了B财务流量仍会走A。3.2 关键配置步骤与命令解析我下面给出的命令采用类似主流企业级网络OS的语法不同品牌可能略有差异但思路一致。正式操作前建议先在测试环境熟悉命令遇到差异对照手册微调即可。第一步配置VLAN和VLANIF接口。vlan batch 10 20 30 # interface Vlanif10 ip address 192.168.10.254 255.255.255.0 # interface Vlanif20 ip address 192.168.20.254 255.255.255.0 # interface Vlanif30 ip address 192.168.30.254 255.255.255.0这里有个习惯VLANIF接口地址就是终端主机的网关地址。一定要保证终端配置的网关和VLANIF地址在同一网段否则主机能通二层但出不了三层。第二步配置ACL用于匹配VLAN 10流量。acl number 3010 rule 5 permit ip source 192.168.10.0 0.0.0.255有些设备用通配符掩码有些人写成反掩码0.0.0.255就表示忽略最后8位正好匹配一个C段。如果你还想针对更细的流量比如只匹配VLAN 10访问某个公网IP的流量可以再添加目的地址条件。我这里为了演示先匹配整个VLAN 10源地址。第三步定义策略路由。policy-based-route pbr_vlan10 permit rule 10 if-match acl 3010 apply ip-nexthop 100.65.0.1注意规则序号10表示匹配顺序。如果后面还要再增加其他规则同样用不同序号即可。动作有permit/deny这里不能把deny理解为丢弃流量在策略路由中deny更多表示“不执行该策略中的动作继续按默认路由转发”这个概念和ACL的deny不太一样。实际配置前最好查一下所用设备对deny的定义。第四步在VLANIF10接口下应用策略路由。interface Vlanif10 policy-based-route pbr_vlan10这一步就是把策略路由“贴”到VLAN 10的三层入口上。配置生效后从VLAN 10进入核心交换机的所有IPv4单播流量都会先匹配pbr_vlan10策略然后按规则执行。第五步配置出口路由器的互联地址和回程路由。交换机到两个出口路由器的链路需要配置物理接口地址比如GigabitEthernet0/0/1接出口AIP为100.64.0.2/30GigabitEthernet0/0/2接出口BIP为100.65.0.2/30。同时需要在核心交换机上配置到达两个运营商出口的静态路由ip route-static 0.0.0.0 0.0.0.0 100.64.0.1 ip route-static 100.65.0.0 30 100.65.0.1第一条默认路由走出口A第二条是到出口B网关所在网段的路由。你可能会问为什么还要单独写第二条因为策略路由虽然把VLAN10的下一跳改成了100.65.0.1但报文在转发时依然需要确认到达100.65.0.1的路由是可达的。如果设备上完全没有到100.65.0.1直连或静态路由策略路由就会失效VLAN10的流量就被丢弃了。3.3 验证与调优技巧配置完成后先在交换机上查看策略路由的应用状态display policy-based-route正常会看到接口Vlanif10已经应用了pbr_vlan10且匹配计数在增长。然后从VLAN 10里找一台终端tracert到公网某个IP比如1.2.4.8观察第一跳是否经过100.65.0.1。如果经过说明策略路由生效。VLAN 20的终端tracert第一跳应该是100.64.0.1且不经过策略路由。另一个常用验证方法是抓包。在核心交换机和出口B之间的链路上抓包能看到VLAN10的源IP报文出现在这个链路上。如果完全没有可能是策略路由的ACL匹配条件写错了或者VLANIF接口下没应用成功。调优方面有一个特别实用的理念不要把所有VLAN的精细策略都堆到一个策略里。比如VLAN 10、20、30各有各的要求建议每个VLAN单独定义一个策略路由应用到自己对应的VLANIF接口而不是建一个大的全局策略去匹配所有源IP。这样做的最大好处是故障隔离VLAN10策略写错了只影响VLAN10不会把整个网络拖下水。而且后续排障时看看是哪个接口应用了哪个策略一目了然。4. 影响范围分析与设计边界4.1 对路由表与转发路径的影响范围基于VLAN的策略路由并不会修改路由表本身它只在报文转发过程中干预路径选择。但它的影响范围却远超“某一个VLAN”本身。策略路由指定的下一跳或出接口必须是设备上可达的。如果你的策略把VLAN10的下一跳指向100.65.0.1但去往100.65.0.1的路径上也包含了VLAN10的流量要注意环路风险。比如出口B的网关路由器它的回程路由通过核心交换机再接回到VLAN10那么VLAN10访问互联网的报文到了出口B后回程流量还是会回到核心交换机然后再匹配策略路由又送到了出口B形成一个逻辑环路流量反复踢皮球。这个影响范围通常涉及整个三层路径设计而不仅仅是源VLAN。所以做影响分析时我会先画一张简图把策略路由指定的下一跳、对应出接口、回程路由路径都标出来看是否存在环路或非对称路由。非对称路由在某些环境没问题但在有状态防火墙比如出口的防火墙开启会话状态时会导致丢包因为报了会话表项只能在一个方向建立回流走了另一个路径时状态不匹配结果被防火墙拦截。4.2 对安全策略与访问控制的影响策略路由让某些VLAN的流量绕过了原有安全设备的串联路径。比如原来所有流量都会经过防火墙做安全过滤防火墙部署在核心和出口A之间现在VLAN10被策略路由指向出口B那么VLAN10的流量就不再经过防火墙了。这可能是你想要的省带宽也可能是一个严重的安全隐患。如果你本意是希望所有VLAN都过防火墙但VLAN10因为策略路由走了旁路那就等于这个VLAN被裸奔了。解决方案有两种。一种是在策略路由的执行动作里增加“重定向到安全设备”的路径另一种是从接入层或核心层做二层重定向。无论如何在做影响范围分析时必须把安全设备的位置放进拓扑里重新审视。4.3 对设备性能与流量监测的影响策略路由的匹配是基于每报文的。当大量报文进入VLANIF接口时设备需要额外执行一次ACL匹配和策略查找。在低端接入交换机上做复杂的策略路由可能会消耗CPU或处理芯片资源造成转发性能下降。如果是高端核心交换机多数支持硬件转发ACL影响不大。但仍需注意不要让策略路由的规则数量过多且匹配复杂度太高比如每条规则里有大段端口范围或深层包检测否则硬件表项资源会被迅速耗尽。流量监测的影响也很大。很多网管系统通过NetFlow或sFlow采集流量然后按接口做统计。如果你在核心交换机上部署了基于VLAN的策略路由某些接口上的流量分布会发生变化原先走出口A的VLAN10流量现在走了出口B出口A的统计流量下降出口B上升。如果监控平台没有同步更新策略逻辑你可能会误判某条线路利用率过高/过低。建议部署策略路由后同步调整监控系统的接口分组和报表模板。4.4 VLAN间互访的边界策略路由会干扰吗很多人担心一个问题我已经把VLAN10的策略路由设置为所有匹配源IP的流量都走出口B那VLAN10访问VLAN20192.168.20.0/24的流量怎么办会不会也被强制送到出口B这里需要注意策略路由匹配的目的地址范围。如果ACL规则只是匹配源IP没有匹配目的IP那么所有从VLAN10进来的、源IP为192.168.10.0/24的流量都会匹配包括去往VLAN20的流量。此时策略就会把VLAN10到VLAN20的下一跳改成100.65.0.1而这个下一跳根本到达不了VLAN20网段结果是VLAN10无法访问VLAN20。这就是一个典型的设计边界问题。解决方式有两种一是在ACL中限定需要走出口B的目的网段。比如只匹配目的IP为任意公网地址而放行私有网段。但“任意公网地址”不好用一条标准ACL表达因为公网地址太多更稳妥的办法是利用“目的IP不能是私有网段”的逻辑但ACL没有内置这样的判断需要手动添加拒绝或放行规则先放行私网互访网段再匹配其余流量。acl number 3010 rule 5 permit ip source 192.168.10.0 0.0.0.255 destination 192.168.0.0 0.0.255.255 rule 10 permit ip source 192.168.10.0 0.0.0.255 destination 10.0.0.0 0.255.255.255 rule 15 permit ip source 192.168.10.0 0.0.0.255 destination 172.16.0.0 0.240.255.255 rule 20 deny ip source 192.168.10.0 0.0.0.255思路是把需要保持正常路由转发的私网目的地址先用permit规则接管让这些报文不进入后续的set nexthop动作然后再用deny规则对剩余源IP匹配的流量目的是公网应用set nexthop。这里“deny”在策略路由中表示不执行策略动作按普通路由转发但我的例子需要再想想如果第一条、第二条、第三条是permit且没有apply动作那么匹配之后不设置下一跳按普通路由转发第四条是deny也不设置下一跳那所有公网流量都不会被设置下一跳等于策略路由根本没有生效。这是错误的。正确做法是规则顺序上先把需要“正常转发”的私有目的地址匹配出来并将这些规则设置为不执行重定向动作有些平台称为pass然后对“除上述私有目的以外的其他流量”匹配并设置下一跳。但用ACL不容易表达“不匹配这些私网段”的简捷方法。更简单的方法是给每个VLAN单独定义两条规则优先匹配私网互访流量动作“忽略”或“不做策略”再匹配其余流量动作是set ip next-hop。如果平台不支持在规则的if-match中直接加action的灵活性就用“精确匹配公网目的IP”方式把常用的公网网段写出来这也不现实。所以在实际项目中我通常建议用“基于源VLAN的PBR 目的地址范围限定”来做而不做“除私网外所有公网”这么宽泛的匹配。因为真正需要从VLAN10走出口B的一般只是某些业务系统、某些合作网段而不是“全部公网”。需求如果是“全部公网都走B”那也简单把VLAN10访问私网的路由交给直连路由和静态路由去处理只要确保策略路由不匹配私网目的即可。可以使用高级ACL用多条规则来定义匹配目的为任意私网地址的源IP为VLAN10的报文动作“不生效”即deny然后第二条匹配源IP为VLAN10的任何报文动作apply nexthop。大多数设备的策略路由规则中deny规则就是“该报文不执行后续策略中的动作直接进入下一跳普通路由流程”所以第一条deny能放走私网互访第二条permitapply会把剩下的公网流量全部抓到指定下一跳。这个逻辑才是正确的。错误示例中的“第三条permit且无apply动作”和“第四条deny”会让匹配顺序变成先deny私网后permit公网但实际上第3条permit无动作就能放行第4 not match所以最终公网流量可以成功匹配第4条并set下一跳。不同平台对permit无动作的处理不一致建议用官方文档确认。我换个更清晰的示例说明正确逻辑规则10匹配源192.168.10.0/24目的私有网段192.168/16、10/8、172.16/12动作deny即不做重定向按正常路由转发 规则20匹配源192.168.10.0/24目的任意动作permit并apply下一跳100.65.0.1。这样私有互访流量命中规则10不再检查规则20按正常路由转发其他流量命中规则20强制走出口B。核心就是deny规则要放前面permitapply放后面顺序不能乱。实际操作时如果平台不支持ACL中直接写多目的网段我可能会选择在策略路由的if-match中通过多个ACL条目组合或者直接用两条ACL分别匹配私有目的然后在策略路由里顺序引用。细节不同但思路一致。4.5 与NAT之间的联动影响策略路由和NAT的交互顺序很容易踩坑。很多出口路由器上会在出接口做源地址NAT或端口PAT让内网地址可以访问公网。如果你把VLAN10的策略路由指向了出口B但出口B的NAT策略只覆盖了默认路由的流量没有把VLAN10源地址纳入NAT转换范围那么VLAN10的报文到了公网后还是私有地址回包不来表现为“能出去线路但上不了网”。排查时我记得一个经验先在核心交换机上确认策略路由是否把报文正确送到了出口B再到出口B上查看NAT转换记录。如果转换记录中只有VLAN20的流量没有VLAN10那就是NAT的ACL或接口没有包含VLAN10网段。修改出口B的NAT规则将192.168.10.0/24加入转换范围即可。如果你在核心交换机上配置了策略路由而又在核心交换机上同时做NAT那么策略路由动作和NAT执行顺序要参考设备设计。一般先NAT后路由或先路由后NAT都有必须查看具体设备的转发流程。建议把NAT集中在出口防火墙上核心交换机只负责路由和策略分流这样职责清晰排查也简单。5. 常见故障与排查手记5.1 流量没有匹配策略路由先看接口方向和ACL我见过太多次“策略路由配了但没反应”的情况。第一步要确认策略应用的方向。策略路由在VLANIF接口上通常是入方向生效。如果流量从核心交换机自身发出比如核心交换机主动发起的监控流量、SNMP、ping它不经过VLANIF的入方向策略路由自然不生效。这是很多人忽略的策略路由对“本机访问其他网络的流量”和“转发流量”处理机制可能不同需要单独配置本地策略路由。第二步检查ACL是否匹配。用一个VLAN10的主机ping一个公网地址然后在核心交换机上执行查看策略路由匹配统计的命令看看有没有匹配计数。如果计数为0说明报文还没进入策略路由的匹配环节或者ACL源IP段写错。有时终端是自动获取IP实际网段和朋友规划的不一样尤其是DHCP地址池范围超过24位时ACL只匹配了其中一段漏掉了其他段。建议直接在终端上ipconfig确认实际IP再反查ACL是否覆盖。5.2 策略匹配到了但流量不通多半是路由或NAT问题如果匹配计数一直在涨但终端ping不通公网那问题就从策略路由转移到了路径可达性和NAT。先查设备到达策略指定下一跳的路由在核心交换机上执行路由查询比如display ip routing-table 100.65.0.1。如果没有这条路由策略路由就会失效或丢包解决方案就是添加相应静态路由或路由协议引入。再查出口设备是否知道如何回包。出口B路由器上需要有一条回程路由告诉它去192.168.10.0/24的路由指向核心交换机可能是下一跳100.65.0.2。如果你只在核心交换机上配置了去往出口B方向的路径而出口B没有回程路由那么流量有去无回终端同样表现为超时。回程路由是新手最容易忘的一环。5.3 VLANIF接口配置策略后VLAN间互访失效就像我在4.4节分析的边界问题如果策略路由ACL匹配了VLAN10的所有源IP但没排除私网目的VLAN10访问VLAN20/30就会异常。症状是VLAN10的主机能ping通自己的网关但ping VLAN20网段不通而VLAN20的主机访问VLAN10却正常因为VLAN20本身没有匹配策略。这种单向不通的问题十有八九就是策略路由把私网互访流量错误重定向了。解决办法是在ACL里按正确顺序添加私网目的deny规则或者把策略匹配目的范围收窄到真正需要走外部的网段。5.4 VLAN ID在跨三层设备时“消失”了策略匹配不到有时你用的是“匹配VLAN ID”的方式而不是源IP方式结果在核心交换机上明明看到带VLAN标签的流量策略就是不匹配。这是因为三层接口收到流量后VLAN标签会在三层转发前被剥离到策略路由匹配时已看不到原始VLAN tag。很多设备在三层VLANIF接口上无法再基于VLAN标签做ACL匹配只能通过源IP或物理接口来间接对应VLAN。如果必须基于VLAN ID匹配需要使用二层流量分类或QACL在二层物理接口上匹配VLAN ID那就不再是“VLANIF接口策略路由”的范畴了。基于VLAN的策略路由本质上是基于VLAN对应的网段或三层接口不要执着于“看到VLAN ID”。5.5 策略路由和VRF叠加时留意下一跳归属在大型园区或多租户环境里可能用了VRF隔离。如果VLAN10被放入了一个VRF那么策略路由中指定的下一跳应该属于同一个VRF。不同VRF的下一跳互相不可见即使在全局路由表中有路径也不行。遇到过某项目把策略路由的下一跳配成了全局路由表地址VLAN所在VRF里没有这个下一跳结果策略规则看起来正常但流量一直丢。排查时要用VRF内部的路由表查询命令而不是只查全局表。这个问题比较高级普通场景不常见但如果你的网络里有多租户或VRF必须警惕。6. 一点个人体会与扩展建议6.1 我对“基于VLAN的策略路由”这个姿势的理解做了多年网络我越来越觉得“基于VLAN”这四个字是解决复杂需求的一把钥匙。VLAN本身是二层隔离工具但它天然定义了一个“用户群体”的边界。策略路由则是三层转发的“可编程开关”。两者结合起来就能做到给每个业务群体设置独立的转发偏好同时不破坏原有的二层隔离和三层网关结构。它比全局策略路由清晰比基于物理接口的策略路由灵活比部署一堆防火墙策略更轻量。我梳理过自己在项目中反复用到的几个原则把策略路由按VLAN拆分成独立的策略对象不要在一条策略里写太多规则私网互访流量必须单独考虑避免策略路由干扰内部访问路由可达性和回程路由要同时检查如果有NAT和安全设备优先把策略路由放在三层核心把NAT放在出口职责分离最后配置完成后一定要做全路径验证尤其要测试VLAN间互访、回程路径、会话状态。6.2 后续可以扩展的方向基于VLAN的策略路由并不复杂但它可以和其他技术组合出更强大的能力。比如结合智能选路设备或SD-WAN把VLAN作为租户标识动态选择最优路径结合服务链把指定VLAN流量依次引过审计、防病毒、负载均衡等设备结合策略模板做到对新增VLAN自动分配指定路径减少人工运维量。整体思路其实都是同一个把“源VLAN身份”作为策略决策的一个重要维度让网络流量从“统一转发”走向“差异转发”。回到最简单的使用场景只要记住一点VLAN让你把网络分成一个个“房间”策略路由让你决定每个房间的人走哪个“门”。基于VLAN的策略路由就是给每个房间的门上贴一张专属的出行指引而不是整个楼道只挂一张公共路牌。这个比喻我在给同事讲这个概念时屡试不爽。希望这篇文章能帮你在自己的网络里更从容地贴上那几张“指引”。
阅读完成 · 觉得有帮助?
咨询建站