简介:一份面向企业双出口链路改造场景的网络技术方案PDF,围绕Jan16公司通过ISP-A与ISP-B接入互联网的真实项目,详细讲解在华为路由器上借助VRRP与OSPF实现出口带宽负载均衡与故障自动切换的完整配置。内容按落地顺序展开,涵盖路由器接口配置、OSPF区域规划、VRRP多备份组划分、上行链路状态监视及各业务部门计算机IP地址规划,并以开发部、市场部分配不同虚拟网关的方式,直观呈现流量分流与主备链路冗余的协同工作机制。资源共1个PDF文件,包体仅606KB,适合网络管理员、IT运维及网络技术人员阅读参考。已有150人学习下载,文档内含清晰网络拓扑、IP地址规划和设备命名规划表以及华为设备命令行配置实例,可直接用于企业网络改造或实验环境快速验证。
1. 双出口负载均衡改造:两个VRRP备份组把带宽压满
公司接入ISP-A和ISP-B两路运营商,出口路由器一主一备,这种架构在带宽需求涨上来之后几乎必然翻车:主链路拥堵,备链路闲置,业务部门天天喊卡。常见做法是VRRP把两台出口路由器组成一个虚拟网关,主设备转发流量,备份设备冷备,切换靠优先级;而这份Jan16公司的项目给出了更贴近真实生产的玩法——两个VRRP备份组,一组以R1为Master,一组以R2为Master,配合OSPF打通三条路由器的互联,再用上行接口监视在链路故障时自动降优先级,让两条链路同时干活、互相备份。需要配置华为路由器、做出口冗余和负载均衡的人,这份全流程配置解析可以直接照着抄。
2. 负载均衡的选型逻辑:为什么用两个VRRP组而不是策略路由
2.1 一张拓扑看懂双出口链路现状
先理清设备关系。R1和R2是公司出口路由器,分别接到ISP-A和ISP-B;R3模拟互联网中的一台路由器,既扛服务器地址,又作为两条ISP链路的汇聚点。公司内部PC1和PC2通过交换机SW1接到R1、R2的内网口,服务器挂在R3的G0/0/0口上,对外网段是20.20.20.0/24。
从地址规划上看,R1内网口G0/0/0是192.168.1.100/24,上联口G0/0/1是10.10.10.1/24;R2内网口G0/0/0是192.168.1.200/24,上联口G0/0/1是30.30.30.1/24;R3的三个接口分别与两台出口路由器和服务器互联。整个内网是一个192.168.1.0/24的大网段,PC1和PC2都在这个网段里,没有拆VLAN,这是这份方案能成立的前提。
这种结构下,原来的主备模式其实是浪费资源的:R1在干活时R2闲着,一旦R1挂了转R2,用户要等切换时间,带宽也没增加。改成负载均衡后,PC1走R1出口,PC2走R2出口,两台路由器的上行带宽都被用起来,任何一条链路断掉,受影响的那部分流量能自动切到另一侧。下面这张表是核心IP规划,配置时最好对着一行行敲。
| 设备 | 接口 | IP地址 | 用途 |
|---|---|---|---|
| R1 | G0/0/0 | 192.168.1.100/24 | 内网接SW1 |
| R1 | G0/0/1 | 10.10.10.1/24 | 上行接R3,模拟ISP-A |
| R2 | G0/0/0 | 192.168.1.200/24 | 内网接SW1 |
| R2 | G0/0/1 | 30.30.30.1/24 | 上行接R3,模拟ISP-B |
| R3 | G0/0/0 | 20.20.20.1/24 | 接服务器 |
| R3 | G0/0/1 | 10.10.10.2/24 | 接R1 |
| R3 | G0/0/2 | 30.30.30.2/24 | 接R2 |
| PC1 | Eth0/0/1 | 192.168.1.1/24 | 开发部终端 |
| PC2 | Eth0/0/1 | 192.168.1.2/24 | 市场部终端 |
| 服务器 | Eth0/0/1 | 20.20.20.2/24 | 对外业务服务器 |
2.2 VRRP多备份组如何做到各带一半流量
VRRP本身做的事很简单:多台路由器共享一个虚拟IP,同一时刻只有Master响应这个IP的ARP请求,Backup监听Master的发包,收不到就抢占。单VRRP组只能做到主备切换,改不出负载均衡,所以这份方案的关键动作是创建了两个VRRP备份组,vrid 1和vrid 2。
项目里给开发部用的虚拟网关是192.168.1.253,放在VRRP备份组1中;给市场部用的虚拟网关是192.168.1.254,放在VRRP备份组2中。R1在备份组1里优先级设为110,R2保持默认100,所以备份组1的Master是R1;R2在备份组2里优先级设为110,R1保持默认100,所以备份组2的Master是R2。
设备本身还是那两台路由器,但逻辑上被拆成了两个“虚拟路由器”。PC1把网关指向192.168.1.253,默认就走R1出去;PC2把网关指向192.168.1.254,默认就走R2出去。这样不需要策略路由,不需要NAT分流,只要让不同部门用不同网关,流量就自然分成两路。两条链路的带宽叠加,同时互为备份,这是用VRRP做出口负载均衡最典型的姿势。
有人会问,直接用源地址策略路由不也能分流?能,但策略路由只管流量转发方向,不管对端链路是否活着,需要额外配置track和下一跳可达性探测,工作量和出错面都比VRRP大。VRRP的track机制把“上行接口是否UP”和“谁当Master”绑定在一起,链路断了优先级自动降,备份设备立刻顶上,逻辑更完整。
2.3 OSPF在出口链路里的分工
三台路由器之间跑OSPF,进程号1,全部网段放进区域0。这样做的目的不是内网路由——内网就一个192.168.1.0/24网段,静态路由其实也能写;真正的原因是上联链路动态感知。
R1和R2各自的上行口地址分属10.10.10.0/24和30.30.30.0/24,R3要把这两个网段以及服务器网段20.20.20.0/24都学到路由表里,反过来R1和R2也要把对方的出口网段学到。OSPF收敛后,R3既能从R1那侧到达内网,也能从R2那侧到达内网。当某台路由器上行接口DOWN时,VRRP切换网关,同时OSPF也能快速收敛路由,两条腿走路,避免出现“网关已经切过去,但R3的路由还指着旧路径”的割裂状态。
在同一网段内做双网关,最忌讳的是两台路由器互指默认路由却没有动态路由协议。VRRP切换的是网关,路由器的三层路由表未必跟着切。OSPF把这些网段全部通告进Area0,路由表自动收敛,tracert路径才能干净。
3. 在华为路由器上落地配置:接口、OSPF、VRRP与track
3.1 接口与基础配置:先把物理链路线打通
别急着配协议,先把设备命名和接口IP敲好。R1和R2的内网口、上联口必须和规划表完全一致,缺一个IP后面谁也ping不通。下面这段是R1的接口配置,R2、R3按同样方法补齐。
<Huawei> system-view [Huawei] sysname R1 [R1] interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0] ip address 192.168.1.100 255.255.255.0 [R1-GigabitEthernet0/0/0] undo shutdown [R1] interface GigabitEthernet 0/0/1 [R1-GigabitEthernet0/0/1] ip address 10.10.10.1 255.255.255.0 [R1-GigabitEthernet0/0/1] undo shutdown逻辑说明:sysname改设备名,避免多台设备敲错机器;接口下用ip address配置规划好的地址;undo shutdown确保接口UP,实战中很多新设备接口默认shutdown,忘了开就会卡在物理层。
R2的接口配置和R1结构一样,只是内网口是192.168.1.200,上联口是30.30.30.1。注意R2的上联口在接口视图下是GigabitEthernet 0/0/1,原文里一处写成了G0/0/2,那是笔误,物理拓扑和display信息都证明应该是G0/0/1。R3三个接口,分别配20.20.20.1、10.10.10.2、30.30.30.2。所有接口配完后,建议先ping对端直连接口,确认链路层通了再进入OSPF步骤。
3.2 OSPF协议部署:把所有网段送进Area0
OSPF在这里负责打通三台路由器的可达性。进程号统一用1,区域统一用0,避免不同进程号导致邻居建不起来。R1通告两个网段,R2通告两个网段,R3通告三个网段,一个都不能少。
[R1] ospf 1 [R1-ospf-1] area 0 [R1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0] network 10.10.10.0 0.0.0.255R2的OSPF配置:
[R2] ospf 1 [R2-ospf-1] area 0 [R2-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0] network 30.30.30.0 0.0.0.255R3的OSPF配置:
[R3] ospf 1 [R3-ospf-1] area 0 [R3-ospf-1-area-0.0.0.0] network 10.10.10.0 0.0.0.255 [R3-ospf-1-area-0.0.0.0] network 20.20.20.0 0.0.0.255 [R3-ospf-1-area-0.0.0.0] network 30.30.30.0 0.0.0.255逻辑说明:OSPF的network命令用的是通配符掩码,0.0.0.255和255.255.255.0是一对反掩码,表示精确匹配前24位。R3把服务器网段也通告进去,PC才能通过两条路径访问20.20.20.2。配置完成后用display ospf peer brief看邻居状态,State为Full说明邻接关系正常。这里常见翻车点是漏通告一个网段,结果PC到服务器路由不对称,tracert后半段跳不动。
3.3 VRRP备份组与优先级:分配主备角色
VRRP配置在R1和R2的内网口G0/0/0上,两台路由器都要创建vrid 1和vrid 2,虚拟IP必须分别一致。R1的命令如下:
[R1] interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.253 [R1-GigabitEthernet0/0/0] vrrp vrid 2 virtual-ip 192.168.1.254 [R1-GigabitEthernet0/0/0] vrrp vrid 1 priority 110R2的命令如下:
[R2] interface GigabitEthernet 0/0/0 [R2-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.253 [R2-GigabitEthernet0/0/0] vrrp vrid 2 virtual-ip 192.168.1.254 [R2-GigabitEthernet0/0/0] vrrp vrid 2 priority 110逻辑说明:vrid是备份组编号,virtual-ip是虚拟网关地址,两台设备的同一个vrid必须配置完全相同的虚拟IP,否则VRRP状态会反复震荡。priority默认100,谁高谁是Master。这里只给R1的vrid 1和R2的vrid 2设了110,因此vrid 1是R1主R2备,vrid 2是R2主R1备。注意没有给另一个备份组设优先级的话,它会保持默认100,主备关系刚好由对方110压制,别画蛇添足去把另一个也设成110,否则两个备份组全挤到一台设备上,负载均衡就废了。
配置完最好立刻用display vrrp看一遍。正常情况下R1的vrid 1是Master,vrid 2是Backup;R2正好相反。Master的虚拟MAC是0000-5e00-0101和0000-5e00-0102,一个vrid对应一个虚拟MAC,两个备份组互不干扰。
3.4 上行接口监视track:链路断了优先级自动降60
这是整个方案里最有价值的操作。VRRP不是万能的,它默认只感知下行接口和内部协议状态,上行口断了它不一定知道。假设R1的上行链路断开,但内网口G0/0/0还UP,VRRP会继续认为R1活着,PC1的流量照旧送进R1,然后从断掉的上行口丢出去。要避免这种哑链路,就得监视上行接口,链路DOWN时把VRRP优先级降下去,让备份设备接管。
R1监视G0/0/1,使vrid 1的优先级降低60:
[R1-GigabitEthernet0/0/0] vrrp vrid 1 track interface GigabitEthernet 0/0/1 reduced 60R2监视上联口G0/0/1,使vrid 2的优先级降低60:
[R2-GigabitEthernet0/0/0] vrrp vrid 2 track interface GigabitEthernet 0/0/1 reduced 60逻辑说明:reduced是削减值,不是结果值。R1的vrid 1原优先级110,上行接口DOWN后减去60,变成50,低于R2的默认100,于是vrid 1的Master自动切到R2。R2的vrid 2同理,原来110,下行50,vrid 2的Master切到R1。这里有个细节:VRRP备份组的主备切换不是瞬间完成的,华为设备的VRRP通告定时器默认1秒,加上优先级比较和延迟,通常需要3秒左右,业务侧会感觉到秒级闪断,这是正常现象。
track配好之后,还要去PC上把网关指对。PC1配192.168.1.253,走R1出口;PC2配192.168.1.254,走R2出口。如果PC2也配253,两台PC都挤到R1上,负载均衡直接失效,第4章会说这个坑。
4. 常见问题与避坑:五个坑让双出口负载均衡翻车
4.1 PC网关和VRRP虚拟IP不匹配:流量全挤一条链路
现象:配置完成后,两台PC同时tracert服务器,第一跳都指向同一台路由器,另一条链路空转。
原因:PC的默认网关没有按部门规划填写。PC1正确网关是192.168.1.253,PC2是192.168.1.254,如果两台PC都被配置成253,或者PC2被配成了R2的物理接口IP192.168.1.200而不是虚拟IP,VRRP分流机制就完全失效,所有流量走R1。
解决:逐台检查PC的网关地址,确认它指向对应VRRP备份组的虚拟IP,而不是路由器的物理接口IP。虚拟IP是“虚拟路由器”的地址,物理接口IP只是设备自己的三层地址,PC网关填错成物理IP时,VRRP切换根本无法带动PC流量,主备意义全无。
4.2 track接口写错或漏配:上行断链后VRRP不切换
现象:模拟故障时把R1的G0/0/1 shutdown,等了几秒查display vrrp,发现R1的vrid 1仍然是Master,PC1继续往断链的R1发流量,业务中断。
原因:没有配置track,或者track的接口写错。原文里就出现过R2的track写成G0/0/2与物理规划不一致的情况,配置在G0/0/2上,实际监视的物理口是G0/0/1,结果上行口断了不算优先级削减。VRRP只看被监视接口的状态,不看这个接口上有没有路由,接口错了等于没监视。
解决:配置track时用display ip interface brief确认所有接口编号,尤其是R2这类容易混淆的编号。敲完命令后,把上行接口shutdown再display vrrp,确认PriorityRun从110降到50,State从Master变成Backup,才算真正生效。我后来做双出口演练时,每次都强制把两条上行口各断一遍,再查状态机,不能只对着配置发呆。
4.3 OSPF漏通告服务器网段:能上网但访问不了服务器
现象:PC1、PC2能tracert到10.10.10.2或30.30.30.2,但最后一跳30.30.30.2之后没反应,服务器20.20.20.2不可达。
原因:R3上只通告了10.10.10.0和30.30.30.0,漏了20.20.20.0。PC到服务器的路由到了R3后,R3没有服务器网段的路由,数据包被丢弃。反过来,R1、R2也必须通告192.168.1.0,否则R3不知道内网网段在哪里,服务器回包会走缺省路由丢给运营商。
解决:每一台路由器上都用display ospf interface和display ip routing-table检查网段是否在OSPF进程中。R3必须通告20.20.20.0,R1和R2必须通告192.168.1.0。OSPF是链路状态协议,漏通告一个网段不会报错,只会表现为某条路径不可达,排查时需要把路由表完整拉出来看,不能只ping外网通就收工。
4.4 主备切换后优先级恢复,但Master不抢回来
现象:R1上行链路故障时,vrid 1切到了R2。恢复后R1的track接口重新UP,优先级从50回到110,但vrid 1的Master仍然是R2,负载均衡没有恢复。
原因:VRRP默认开启抢占,但部分场景下配置了preempt-mode disable或者设备上的VRRP抢占延迟没有清零,恢复后不会立刻重新成为Master。另外,如果track接口UP后优先级恢复有延迟,R2会继续持有Master身份,直到下一次通告超时。
解决:查看display vrrp里的Preempt字段,正常应为YES。如果为NO,在接口视图执行vrrp vrid 1 preempt-mode enable,把抢占打开。我习惯把抢占延迟也检查一遍,保持在0秒,这样链路恢复后主备角色能快速回到规划状态。注意,如果备份设备上配置了抢占导致来回切换,也要看track稳定性,物理接口UP不等于链路真正可用,接口闪断会引发VRRP频繁震荡。
4.5 VRRP通告被交换机过滤或优先级震荡:两台设备都认为自己是Master
现象:display vrrp显示R1和R2的同一个vrid状态都是Master,虚拟IP冲突,PC网关IP不通,网络时断时续。
原因:VRRP通告报文依赖组播地址224.0.0.18,如果交换机端口启用了风暴抑制、IGMP Snooping或者端口隔离策略,丢弃了VRRP组播包,两台设备之间无法互通状态,就会同时抢Master。另一个常见原因是两台路由器之间没有二层直连路径,VRRP配置在G0/0/0上,但这两台设备的G0/0/0都接在同一台交换机SW1上,中间隔了物理交换机,如果交换机VLAN配置错误,广播域不通,VRRP就废了。
解决:先在交换机上确认R1和R2的接入端口在同一个VLAN且PVID一致,允许VRRP组播包双向通过。再看两台出口路由器的内网口能否直接ping通对方的物理IP,不通则检查交换机端口。VRRP要求所有备份组成员在三层上互通,不能跨路由,中间一旦串了路由器或者三层交换机,协议就失效。真遇到两台Master,最快的排查命令是display vrrp,对比虚拟MAC是否一致,再ping虚拟IP,失败就从二层广播域查起。
5. 验证与排障技巧:把故障切换测出完整证据链
配置完不等于交付,验证要做三层:OSPF邻居、VRRP状态、数据包转发路径。每一步都留证据,后续排障才有底。
先看OSPF邻居。在R1上执行display ospf peer brief,R1应该看到两个Full邻居:一个是R2的Router ID 192.168.1.200,一个是R3的Router ID 10.10.10.2。邻居状态不是Full,说明区域或网段通告有问题,先别往下配VRRP。
再看VRRP状态。在R1上执行display vrrp,关键看三行:State、PriorityRun、Track IF。R1在vrid 1中State是Master,PriorityRun是110,Track IF显示UP;在vrid 2中State是Backup,PriorityRun是100。R2的状态刚好反过来,vrid 2是Master,vrid 1是Backup。这一步能确认两个备份组各自主备正确。
最后测实际路径。在PC1上执行tracert 20.20.20.2,第一跳应该是192.168.1.253对应的Master设备R1,第二跳10.10.10.2,第三跳20.20.20.2。在PC2上执行同样的命令,第一跳应该是192.168.1.254对应的Master设备R2,第二跳30.30.30.2,第三跳才是服务器。两条路径都通,负载均衡才算成立。
故障切换验证别只是看看,要把断链操作做得干净。我在R1上执行system-view,进入G0/0/1接口后shutdown,然后马上在R1和R2上分别执行display vrrp。正常情况是R1的vrid 1 PriorityRun变成50,State变成Backup;R2的vrid 1 State变成Master,PriorityRun是100。R2的vrid 2本来已经是Master,此时会继续持有。整个过程大约3秒,业务中断窗口很小。之后去PC1、PC2上重新tracert,两条路径都应该变成R2出口,证明故障切换生效。
一个小技巧:把抓包工具挂在R3的G0/0/0和服务器之间,断链前后各抓一次,能看到数据包入口从G0/0/1切到G0/0/2,比只ping通更有说服力。我每次做完双出口改造,都强制走一遍“断上行→查状态→tracert→恢复→查状态→tracert”的闭环,确认VRRP和OSPF收敛都在正常时间窗口内。从那以后我再也不靠“看着好像通了”就交付,这份配置解析里的完整命令和验证截图,我整理进了资源包,按照第3章的步骤敲一遍就能复现整个双出口负载均衡环境。希望帮到你。
本文还有配套的精品资源,点击获取