☰
防火墙旁挂部署详解:策略路由引流与双机热备实践
2026/10/2 23:31:33 网站建设 项目流程

聊到防火墙部署,圈里一直有个争论:到底是老老实实串联在链路上,还是把防火墙“挂”到旁边?做过几年网络项目的人应该都有体会,串联部署遇到割接、扩容、故障的时候是真的难受,业务一断领导电话就打过来了。旁挂组网,简单说就是防火墙不占用原有数据链路,通过策略路由把需要安全检查的流量引到防火墙上过一遍,检查完再还回原链路。它最大的价值是“来去自如”——上线时不用大动干戈,下线时业务也不受影响。这篇文章我会把这套组网方案的原理、配置代码、踩坑笔记一次讲透,不管你是正在做网络规划的工程师,还是刚入行想搞懂旁挂原理的新人,都能找到能落地的参考。

1. 为什么要把防火墙挂在旁边:旁挂组网到底在挂什么

很多人在第一次听到“旁挂”的时候,脑子里会冒出一个疑问:防火墙不挡在流量中间,那它还怎么保护网络?这个问题问得一点不冤。传统的防火墙部署方式确实都是串联,要么做网关模式,要么做透明桥接模式,反正数据必须穿墙而过。但实际干过运维的人都懂,串联听上去安全,用起来能让人掉不少头发。

1.1 串联部署的三个痛点,逼出了旁挂这个方案

先说网关模式,防火墙直接充当三层网关,终端和服务器把网关指向防火墙。这种架构在小网络里很清爽,但到了中大型网络就尴尬了:核心交换机上跑着一堆动态路由、VRRP、QoS策略,你总不能为了插一台防火墙,把整个三层的活都交给防火墙来干吧?再说透明模式,防火墙像一根线一样串在交换机之间,设备本身不做路由,但所有二层流量都必须经过它。这种模式部署的时候倒是不用改IP,可一旦防火墙升级、重启、硬件故障,整条链路直接瘫痪。

总结下来,串联部署至少有三个绕不开的痛点。第一个是割接风险高,无论是新装防火墙还是替换旧设备,都要在业务链路上动刀,光是申请变更窗口、准备回退方案就够写一沓纸了。第二个是扩展性差,网络带宽从千兆升万兆、链路从单条变多条、出口从单运营商换双运营商,凡是链路拓扑一动,防火墙的位置就得跟着重新规划。第三个是单点故障,串联模式下防火墙就是链路中的独木桥,设备宕机、软件bug、电源损坏,任何一个意外都会让整段业务跟着瘫痪,而且排查起来压力极大。

旁挂组网就是冲着这三个痛点来的。它的思路是:防火墙不抢占原有链路位置,而是作为一台旁路检查设备,需要保护的业务流量被“借道”送往防火墙,检查完毕再回注到原来的转发路径。业务的主路径始终在交换机上,防火墙只在逻辑上插了一脚。这样一来,线上割接变成了一条策略的增删改,回退也只是一条命令的事情。

1.2 旁挂组网的常见形态,三种主流玩法

第一种是二层透明旁挂。防火墙配置为透明模式,通过二层的手段把需要检查的VLAN流量引到防火墙上处理。这种模式适合不想改动任何IP地址、业务地址段已经固定的老网络,但二层引流的配置相对繁琐,而且对交换机流量镜像、VLAN重定向等功能有依赖,实际项目里用得不算多。

第二种是三层路由旁挂,这也是最主流、最实用的方案。防火墙接口配置IP地址,核心交换机上通过策略路由把匹配到的流量重定向到防火墙,防火墙检查完再通过路由把报文回注给交换机,由交换机继续正常转发。本次的配置实例就以这种形态来讲解,因为它的思路最清晰,也最容易迁移到不同厂商的设备上。

第三种是单臂旁挂,可以理解为三层旁挂的精简版。防火墙只用一个物理接口接入核心交换机,通过子接口来区分内、外方向,适合防火墙接口资源紧张、临时上线一台设备做安全检查的场景。单臂方案配置灵活,但所有进出流量都挤在一个物理接口上,带宽和性能容易成为瓶颈。

1.3 一张表选对串联还是旁挂

很多工程师在方案阶段纠结“串联好还是旁挂好”,其实就是没把需求理清楚。我根据自己的项目经验,整理了一个对比维度表,可以直接拿去做技术选型参考。

对比维度串联部署(网关/透明)旁挂部署(策略路由引流)
上线割接影响必须中断链路或切换网关,影响大只需配置引流策略,影响极小
设备故障影响防火墙故障即业务中断可通过快速回退恢复,bypass灵活
流经防火墙的流量所有流量全部经过仅匹配策略的流量经过
网络架构复杂度简单直接,容易理解需要理解策略路由、回注等概念
性能瓶颈防火墙成为唯一瓶颈可精确控制检查范围,减轻压力
适合场景小型网络、边界出口、新建网络中大型网络、高可用要求、已有架构改造

从这个表能看出来,旁挂最大的优势是“灵活”,但代价是架构理解成本更高。小型网络或者边界出口这种“天生就要过防火墙”的位置,串联依然是最合适的选择。而中大型内网、服务器区防护、需要双机热备的关键业务,旁挂往往更能兼顾安全和可用性。

2. 旁挂组网的核心逻辑:引流、检查、回注

很多人对旁挂组网的印象停留在“有一条策略路由把流量指向防火墙”,真到配置的时候才发现,里面牵扯的细节远比想象中多。旁挂能不能跑通,核心不在于防火墙本身,而在于流量怎么被引进去、检查完怎么送回来、来回路径是否一致。这三个环节只要有一个出错,业务就会表现为各种诡异的“通一半、时通时断”。

2.1 策略路由是旁挂的“心脏”

先拿一个生活化的场景做类比。你开车去商场,平时走的都是城市主干道,但今天主干道前方设了安检点,交警把你引导到旁边的检查站,检查完再从检查站开回主干道,继续去商场。策略路由在这个例子里就是“交警”的角色,它不管你原本的路由表是怎么写的,而是根据你定义的规则,强行指定某些流量必须走某条特定路径。

在交换机上,策略路由通常由三部分构成:流分类,用来匹配“哪些流量需要被引导”;流行为,用来定义“匹配到的流量下一步怎么处理”,旁挂场景里一般就是重定向到防火墙的接口IP;流策略,把流分类和流行为绑定起来,再应用到一个具体的接口和方向上。这里有个非常关键的细节:策略路由应用在业务网关接口的inbound方向,也就是报文从终端进入交换机、准备做三层转发的那一刻。这样交换机在决定“这个包该往哪送”之前,就已经被策略路由截胡,改判给了防火墙。

搞清楚策略路由的应用方向非常重要。我见过不少同行把策略路由配好,ACL也匹配对了,但忘记了绑定接口或者方向弄反,结果策略路由一点效果都没有。判断方法也简单,执行display traffic policy applied-record,看看策略是否成功下发;再执行display acl,看ACL的匹配计数是不是在增长。这两个命令基本能定位90%的“引流没生效”问题。

2.2 来回路径不一致,是新手最容易踩的坑

旁挂部署最大的坑,不是流量引不过去,而是流量引过去了,防火墙却看不见回包。现代防火墙几乎都是状态检测机制:当内网用户向服务器发起TCP连接时,防火墙看到SYN报文会建立一条会话,后续所有报文都要匹配这条会话才能通过。如果回包走了另一条路径,没有经过防火墙,防火墙就等不到SYN-ACK,会话状态一直停在半开状态,结果就是用户端反复重传,页面转圈,最后超时。

为什么回包会绕开防火墙?因为大多数旁挂方案一开始只做了单向引流——把用户访问服务器的去程流量用策略路由指向防火墙,但服务器返回的流量从服务器网关出去时,并没有被强制送往防火墙。内网三层交换机原本就知道服务器网段的路由,回包直接就转给用户了。于是防火墙只看到了请求,没看到响应,状态检测自然就过不了。

解决办法说起来也简单:做双向引流。也就是说,不仅在用户侧网关接口上配置策略路由把去程流量引给防火墙,还要在服务器侧网关接口上配置对应的策略路由,把回程流量也引给防火墙。让防火墙完整地看到一次会话的来和回,状态检测才能正常建立会话。这个“双向”的思路,是旁挂组网和串联组网最本质的区别,也是很多新手从串联思维转换过来时最不适应的地方。

2.3 回注、黑洞路由和ARP细节一个都不能省

流量被防火墙检查之后,还有一个“回注”的动作。所谓回注,就是防火墙把处理完的报文再送回交换机,由交换机继续按正常路由转发。防火墙怎么知道该把报文送到哪里?靠的是路由表。通常做法是在防火墙上配置一条默认路由,下一跳指向核心交换机的互联接口IP,这样防火墙能把所有需要转发的报文都送回交换机,再由交换机根据目标地址做最终投递。

回注这块还有一个容易忽略的细节:交换机的策略路由只会在匹配的方向、匹配的接口上生效,防火墙回注给交换机的报文,交换机在正常转发时不会再次把它陷入策略路由的循环里。因为策略路由是定义在用户侧网关接口或服务器侧网关接口的inbound方向的,报文从防火墙回到交换机互联接口后,是从Vlanif100走三层转发,不会再触发用户VLAN上的PBR。理解了这一点,就不会担心“流量会不会在交换机和防火墙之间死循环”的问题了。

ARP同样不能忽略。策略路由的重定向下一跳是防火墙接口的IP地址,交换机要把报文转发到防火墙,必须知道这个IP对应的MAC地址。如果防火墙接口被安全策略拦了ARP请求,或者接口down了,策略路由就会匹配但转发失败。所以配置完成后一定要检查display arp,确认交换机已经学习到防火墙的MAC地址。我在项目里甚至遇到过防火墙接口的service-manage ping忘开,导致想测试连通性都ping不通的情况,这个细节虽然小,但排查起来很费时间。

3. 整套可复用的旁挂部署配置(华为USG+交换机为例)

理论讲再多,不如直接给一套能照着敲的配置。下面我用华为USG系列防火墙加一台华为核心交换机的组合,演示一个典型的三层旁挂场景。这个拓扑不复杂,但它覆盖了引流、回注、双向路径、双机热备这些核心环节,实际项目里能覆盖到七八成需求。如果你用的是华三、锐捷、深信服等设备,命令风格略有差异,但配置思路可以完全照搬。

3.1 拓扑与地址规划

先交代一下组网背景。内网有用户区和服务区,用户区VLAN10,网段192.168.10.0/24,网关在核心交换机上,地址为192.168.10.254;服务器区VLAN20,网段192.168.20.0/24,网关同样在核心交换机上,地址为192.168.20.254。核心交换机与防火墙之间规划一个互联VLAN100,网段为1.1.1.0/24,交换机侧接口IP是1.1.1.2,防火墙侧接口IP是1.1.1.1。

这次要做的事情,是把“用户访问服务器区”的流量引到防火墙做安全检查。具体来说,在用户侧网关Vlanif10上,对所有源地址为192.168.10.0/24的流量做策略路由,重定向到防火墙1.1.1.1;在服务器侧网关Vlanif20上,对所有源地址为192.168.20.0/24的流量做策略路由,同样重定向到防火墙1.1.1.1。这样一来一回,防火墙就能看到完整会话。

设备接口/网段IP地址用途
核心交换机Vlanif10192.168.10.254/24用户网关
核心交换机Vlanif20192.168.20.254/24服务器网关
核心交换机Vlanif1001.1.1.2/24与防火墙互联
防火墙GE1/0/01.1.1.1/24与交换机互联
防火墙GE1/0/2心跳线双机热备专用

3.2 交换机侧配置全过程

交换机侧的配置可以分成四步。第一步创建VLAN和Vlanif接口,把防火墙互联口划进VLAN100;第二步配置ACL匹配需要引流的业务;第三步配置流分类、流行为、流策略;第四步把流策略应用到对应的Vlanif接口的inbound方向。

# 第一步:VLAN与接口 vlan batch 10 20 100 # 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 Vlanif100 ip address 1.1.1.2 255.255.255.0 # interface GigabitEthernet0/0/1 port link-type access port default vlan 100

第二步和第三步是策略路由的核心。这里要注意,ACL需要分别针对用户去程流量和服务器回程流量各写一条。去程ACL匹配源192.168.10.0/24,回程ACL匹配源192.168.20.0/24。两边都用策略路由重定向到1.1.1.1。

# 第二步:ACL匹配业务流量(去程) acl number 3001 rule 5 permit ip source 192.168.10.0 0.0.0.255 # # 第二步:ACL匹配业务流量(回程) acl number 3002 rule 5 permit ip source 192.168.20.0 0.0.0.255 # # 第三步:流分类、流行为、流策略(去程) traffic classifier c_to_fw if-match acl 3001 # traffic behavior b_to_fw redirect ip-nexthop 1.1.1.1 # traffic policy p_to_fw classifier c_to_fw behavior b_to_fw # # 第三步:流分类、流行为、流策略(回程) traffic classifier c_back_fw if-match acl 3002 # traffic behavior b_back_fw redirect ip-nexthop 1.1.1.1 # traffic policy p_back_fw classifier c_back_fw behavior b_back_fw

第四步就是在用户侧网关和服务器侧网关的inbound方向分别应用对应的策略路由。这一步最容易犯的错就是方向写反或者漏绑接口,要特别仔细。

# 第四步:应用策略路由到接口 interface Vlanif10 traffic-policy p_to_fw inbound # interface Vlanif20 traffic-policy p_back_fw inbound

配置完以后,记得查看一下ACL的匹配计数是否在增长。如果用户区有真实流量访问服务器,3001和3002两个ACL的计数都应该不断往上跳,否则说明策略路由没有正确触发,需要回头检查方向和匹配条件。

3.3 防火墙侧配置全过程

防火墙侧相对简单,核心就三件事:接口IP、安全区域、回注路由、安全策略。接口GE1/0/0配置1.1.1.1/24,并开启ping和HTTPS管理权限,方便调试。接口划入trust区域,因为从旁挂结构看,这个接口连接的核心交换机既承载用户流量也承载服务器流量,两边都属于内网可信区域。

# 接口IP与管理 interface GigabitEthernet1/0/0 ip address 1.1.1.1 255.255.255.0 service-manage ping permit service-manage https permit # # 安全区域 firewall zone trust add interface GigabitEthernet1/0/0 # # 回注路由:所有流量送回交换机 ip route-static 0.0.0.0 0.0.0.0 1.1.1.2

安全策略方面,最稳妥的写法是只放行用户区到服务器区的业务端口,其余一律拒绝。这里以HTTP和HTTPS为例,配置一条放行策略。如果项目里还要放行数据库端口、SSH、远程桌面等,按需追加service即可。

# 安全策略 security-policy rule name permit_user_to_server source-zone trust destination-zone trust source-address 192.168.10.0 24 destination-address 192.168.20.0 24 service https service http action permit

这里有一个很容易忽略的安全策略细节:在华为USG上,流量从trust区域进、又从trust区域出,由于源和目的都在同一个安全区域,默认情况下同区域互访一般是放行的。但如果防火墙策略被改过,或者默认规则被收紧,就需要明确放行。所以最保险的做法是我上面这样,把源、目的、服务都写清楚,避免依赖默认行为。

3.4 旁挂场景下的双机热备怎么搭

旁挂组网天然适合双机热备,因为业务主路径在交换机上,防火墙只是旁路检查,双机切换对交换机的影响可以做得非常小。常见做法是两台防火墙组成HRP双机,接口上跑VRRP,对外提供一个虚拟IP,交换机上的PBR重定向下一跳就直接写这个虚拟IP,比如1.1.1.10。这样主防火墙故障时,备防火墙接管虚拟IP,会话从主备同步表里恢复,交换机侧完全无感知。

配置思路大致如下:两台防火墙之间用GE1/0/2做心跳线互联,配置HRP,然后在业务接口上配置VRRP。主设备VRRP状态为active,备设备为standby,虚拟IP指向1.1.1.10。这样交换机PBR里redirect ip-nexthop只需指向1.1.1.10,无需关心哪台防火墙在干活。

# 主防火墙 hrp interface GigabitEthernet1/0/2 remote 1.1.1.2 hrp enable # interface GigabitEthernet1/0/0 vrrp vrid 1 virtual-ip 1.1.1.10 active # # 备防火墙 hrp interface GigabitEthernet1/0/2 remote 1.1.1.1 hrp enable # interface GigabitEthernet1/0/0 vrrp vrid 1 virtual-ip 1.1.1.10 standby

双机旁挂的注意点有两个。一是心跳线必须独立于业务链路,别把两条防火墙的互联口划在同一个故障域里,否则一旦交换机侧出问题,心跳和业务全断,双机就白做了。二是会话同步要开,HRP会把主设备的会话表实时备份到备设备,这样切换时已经建立的连接不会断,用户几乎没有感知。如果你只是做了VRRP没做会话同步,切换后所有长连接全部重连,体验会很糟糕。

4. 实战中碰到的问题与排查思路

旁挂组网配置本身不难,真正考验人的是出了问题之后的排查思路。我把自己在项目里经常碰到的几类问题整理了一下,按现象、原因、排查步骤、解决办法的顺序来说。这些问题基本覆盖了旁挂方案上线初期的绝大多数故障,照着这个思路排查,可以少走很多弯路。

4.1 引流没生效:策略路由打了但流量不动

这是最让人抓狂的问题之一:策略路由明明配置了,但用户访问服务器就像什么都没发生一样,防火墙日志里一条记录都没有。第一步先看策略路由到底有没有下发成功,执行display traffic policy applied-record,确认策略是应用状态而不是配置错误未生效。第二步看ACL匹配计数,执行display acl 3001,看计数是否在增长。如果计数一直是零,说明流量根本没有匹配到ACL,问题出在匹配条件或者应用方向上。

我遇到过好几次看似诡异、其实很简单的案例:ACL里source写反了,把192.168.20.0/24当成用户网段写进了去程ACL;或者策略路由绑定到了Vlanif10的outbound方向,而实际流量是从inbound进入的。这两种情况都表现为策略路由不生效。排查的时候别急着怀疑设备,先冷静把ACL条件、接口、方向三项核对一遍,往往能省下一大堆时间。

还有一种情况是PBR下一跳ARP不通。交换机的重定向下一跳是1.1.1.1,但display arp发现1.1.1.1的MAC一直是Incomplete,说明交换机根本没能学到防火墙的MAC。这时候要检查防火墙接口是否up、互联链路是否正常、接口是否被安全策略禁了ARP回应。旁挂组网里,ARP问题最常见的原因就是防火墙接口的安全区域没配或者接口up但管理协议没开。

4.2 流量进了防火墙,但业务还是不通

策略路由生效了,防火墙也看到大量的报文,但用户访问服务器还是超时。这时候先别急着改策略,先看会话表。在防火墙执行display firewall session table,查看用户IP到服务器IP之间有没有正常会话。如果只有请求方向的报文,看不到响应报文,说明这是一条“半程会话”,问题几乎可以锁定在回包没有走防火墙。

解决办法就是前面反复强调的双向引流:在服务器侧网关Vlanif20的inbound方向也配置一条PBR,把源地址为192.168.20.0/24的流量重定向到防火墙。很多工程师习惯先做单向引流,测试通了再决定要不要加回程引流,但这种做法在状态检测防火墙上是行不通的,必须一开始就把回程规划进去。

如果双向引流都已经配置好了,业务还是不通,那就要看防火墙的安全策略。在防火墙管理界面的“策略命中次数”里,查看permit策略和deny策略的命中数。如果deny策略命中数在涨,说明报文被安全策略拦了,按业务需求放行相应端口就行。还有一种隐蔽情况是SIP等特殊协议,防火墙开启了ALG后,会修改SIP报文的SDP内容,导致语音流媒体走偏。很多项目里防火墙默认开启SIP ALG,如果旁挂的是语音业务,经常会出现注册成功但呼叫不通的怪问题,解决办法是在防火墙上针对SIP应用关闭ALG或调整检测方式。

4.3 防火墙宕机后如何快速恢复业务

旁挂组网最担心的问题,就是防火墙宕机那一刻。因为业务流量被策略路由强行指向防火墙,防火墙一挂,流量送到一个不存在的下一跳,业务自然就断了。很多人以为旁挂比串联安全,防火墙宕机不影响业务,这是误解。旁挂确实比串联容易恢复,但前提是你准备好了应急手段。

最有效的应急手段是“提前写好回退脚本”。在交换机上,把两条PBR的卸载命令提前整理好,发生故障时只需要执行两条命令就能让流量恢复直连。例如在Vlanif10和Vlanif20下分别执行undo traffic-policy inbound,让业务流量立即回到正常路由表转发路径。我在给客户做旁挂项目的时候,一定会把这几条命令写进交付文档,并明确标注“应急切换专用”。防火墙恢复后再把策略路由重新应用回去即可。

如果你想更加自动化,可以配置NQA联动或者写自动化脚本定时探测防火墙接口的连通性,探测失败自动执行undo命令。不过这个要结合现网的运维平台来做,手动脚本在大型网络里要谨慎,避免误判导致策略反复抖动。再强调一遍:旁挂组网的核心价值是“可快速回退”,而不是“永不故障”,这个定位要想清楚。

4.4 ALG、黑白名单、会话超时这些容易忽略的点

除了上面几个大问题,旁挂方案里还有一些零碎但容易“咬人”的细节。第一是黑白名单,当需要临时放行某段IP时,直接在防火墙上加一条白名单策略放行即可,但要记得设定临时策略的有效时间或纳入变更记录,避免临时策略变成长期隐患。

第二是会话超时,旁挂路径上所有流量都要经过防火墙,如果业务存在大文件传输、数据库长连接、WebSocket长连接等场景,防火墙的会话老化时间默认值可能不够,导致连接中途被切断。可以根据业务类型调整对应协议的老化时间,比如TCP默认老化时间不够时适当调大。

第三是时间同步。防火墙的NTP一定要配好,不然日志、会话时间戳对不上,排查问题的时候看会话建立时间会很痛苦。第四是日志磁盘空间,旁挂部署模式下,防火墙日志量巨大,特别是开了审计策略之后,磁盘可能两三天就满了。建议提前规划日志存储,要么外接日志服务器,要么定期清理归档,别等防火墙因为磁盘满而出现性能问题。

5. 写在最后:这套方案怎么用出价值

旁挂组网是一个典型的“思路大于配置”的方案。很多人学这个技术,上来就敲命令,敲完发现不通就开始怀疑设备,但其实问题的根源往往在流量模型没想清楚:哪些流量要过墙、去程怎么引、回程怎么走、防火墙挂了怎么恢复,这四个问题想透了,旁挂方案就成功了一大半。

我在实际项目中有一个习惯,交付旁挂方案的时候一定会附带一份“回退手册”,写清楚防火墙故障时如何在交换机上一句话恢复业务。这个手册在大多数时候用不上,但一旦用上,往往就是在核心业务出大故障的深夜。那时候能快速恢复业务,远比“配置得多花哨”更有价值。

如果你打算通过模拟器练习,完全可以用ensp复现这套拓扑:一台S5700交换机、一台USG6000V防火墙、两台PC,配上我上面给的配置改改IP就能跑通。建议动手之前先把Vlanif10和Vlanif20上的策略路由去掉,用普通路由先验证业务互通,再逐步加上引流,这样出了问题能清晰地判断是网络本身的问题还是旁挂引入的问题。

旁挂组网后续还可以做很多扩展,比如把负载均衡、WAF等安全设备用同样的思路接入,形成一个旁路安全资源池。毕竟对一个网络工程师来说,方案不怕旧,怕的是关键时刻拎不清流量怎么走、业务怎么保。希望这篇东西能给你一点实实在在的帮助。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询