负载均衡A10并不是华为的产品名称,而是A10 Networks公司推出的Thunder系列应用交付控制器,在负载均衡、应用加速和DDoS防护场景中使用非常广泛。由于A10常与华为云、华为交换机等设备配合部署,不少运维人员会把它误称为华为A10负载均衡。本文以A10 ACOS操作系统为基础,说明基础配置方法,并整理与华为云ELB对接时的常见错误和排查思路。

一、A10负载均衡与华为负载均衡的定位区别
需要先厘清一个概念:A10负载均衡不是华为的产品线,而是A10 Networks的Thunder系列ADC。它既可以作为硬件设备部署在数据中心,也可以通过vThunder虚拟化版本运行在华为云、VMware或KVM环境中。A10的配置语言是ACOS,命令行风格与Cisco IOS、华为VRP都有差异,不能直接套用华为交换机的命令。
华为自身提供的负载均衡方案主要包括华为云弹性负载均衡ELB和FusionSphere环境中的负载均衡组件。华为云ELB是一种软件定义的四层和七层负载均衡服务,通过云控制台配置监听器、后端服务器组和健康检查。A10 Thunder则更偏向硬件或虚拟化ADC,支持L4-L7的深度流量处理、SSL卸载、脚本化流量编排等高级功能。两者可以协同工作:例如用华为云ELB做前端流量接入,再将特定业务流量转发给A10做应用层处理,但这种架构需要明确路由和回包路径。
二、A10负载均衡基础配置步骤与命令示例
A10 ACOS的配置逻辑可以拆成三层:真实服务器、服务组、虚拟服务器。真实服务器是后端实际提供业务的节点,服务组把多个真实服务器绑定成一个资源池,虚拟服务器是对外发布的VIP地址和端口。流量先到达虚拟服务器,再根据调度算法分发到服务组中的某个真实服务器。
下面通过一组ACOS命令行示例演示基础配置。假设后端有两台Web服务器,地址分别为192.168.10.10和192.168.10.11,对外VIP为10.0.0.100,服务端口为80。
enable
configure terminal
interface ethernet 1/1
ip address 192.168.10.2 255.255.255.0
exit
slb server web01 192.168.10.10
port 80 tcp
exit
slb server web02 192.168.10.11
port 80 tcp
exit
slb service-group web-sg tcp
member web01:80
member web02:80
exit
slb virtual-server web-vip 10.0.0.100
port 80 tcp
service-group web-sg
exit
health monitor http web-hm
method GET
url /health
expect response-code 200
exit
slb service-group web-sg
health-check web-hm
exit
write memory
上面的配置中,先给接口配置IP地址,然后定义了两个SLB服务器对象,再创建TCP服务组并把两个成员加入,最后创建虚拟服务器并绑定服务组。健康检查使用HTTP GET访问后端节点的/health路径,期望返回200状态码。需要注意的是,A10中服务组的健康检查是关联到服务组级别,而不是直接绑定到虚拟服务器,这一点跟华为云ELB在控制台上的配置顺序不一样。
如果使用Web图形界面配置,路径通常是:先进入SLB菜单下的Service Group创建服务组,再进入Virtual Server创建虚拟服务器并选择刚才的服务组。Web界面会隐藏很多ACOS命令行细节,但底层生成的配置与命令一致。建议初学者先用Web界面完成一次配置,再查看show running-config输出,反向学习命令行语法。
三、华为云或华为网络环境对接A10的常见错误与解决方法
在华为云环境中部署vThunder或与华为交换机对接时,有几个高频错误经常导致业务不通。下面用表格列出错误现象、常见原因和处理建议。
| 错误现象 | 常见原因 | 解决方法 |
|---|---|---|
| 虚拟服务器能Ping通,但业务端口连接超时 | 后端服务组健康检查失败,所有节点被标记为Down | 检查健康检查URI、期望状态码、后端服务是否监听正确端口 |
| 客户端能建立TCP连接,但页面一直加载不出来 | 回程路由未指向A10,导致响应包绕过A10直接回给客户端 | 在后端服务器上添加回程路由,或将后端网关指向A10接口IP |
| 华为云ELB转发到A10后连接被重置 | 两者健康检查路径和端口不一致,ELB认为后端A10不可用 | 统一健康检查路径,例如都使用/health,并保持端口一致 |
| ACOS配置保存后重启丢失 | 只执行了write memory之外的操作,没有持久化配置 | 确认使用write memory或Web界面的Save功能保存配置 |
其中回程路由问题最为隐蔽。很多人在A10上配置了源地址转换,却没有在后端服务器上配置默认网关指向A10的内部接口,导致客户端请求能到达后端,但后端响应沿原路返回时绕过了A10,最终客户端收到来自后端服务器IP的响应包,握手被重置。解决办法是在后端服务器上增加静态路由,将发往客户端网段的流量指向A10内部接口,或者在A10上启用SNAT让后端看到的源IP变成A10接口IP。
另一个容易忽略的点是ACOS版本的License限制。部分vThunder镜像默认只启用基础负载均衡功能,SSL卸载、HTTP压缩、aFleX脚本等高级特性需要额外授权。如果在配置虚拟服务器时发现某些选项灰化或命令报错,先检查show license输出,确认当前授权级别。
四、常见问题与注意事项
问题一:A10能否直接在华为云上部署?可以。A10提供vThunder虚拟化版本,支持在华为云市场部署为云主机,以软件方式提供负载均衡能力。部署后需要像管理普通Linux或A10实例一样,通过SSH或Web界面进行配置。华为云的安全组需要放通管理端口和业务端口,否则会出现控制台无法登录或流量被拦截的情况。
问题二:会话保持怎么配置?在ACOS中,会话保持通常通过persist参数实现。例如对于HTTP服务,可以使用Cookie持久化;对于TCP服务,可以使用源IP持久化。配置示例:在虚拟服务器下的端口配置中执行persist cookie,然后定义Cookie名称和超时时间。如果业务依赖源IP会话保持,则执行persist src-ip。需要注意源IP会话保持在经过华为云ELB或NAT设备后可能失效,因为源IP会被改写。
问题三:双机HA如何部署?A10支持VCS(Virtual Chassis System)高可用,通常使用专用的HA接口连接两台设备,或通过业务网络传递心跳。两台设备可以配置为Active-Standby或Active-Active模式。在华为云环境中,由于云主机间的组播和浮动IP支持有限,建议优先采用主备模式,并确保心跳网络和数据网络分离。配置HA时需要设置设备优先级、心跳间隔和抢占策略。
除此之外,日常维护中还要定期备份ACOS配置。可以使用backup命令将配置导出到外部FTP或SCP服务器,避免单点故障导致配置丢失。在修改服务组或健康检查参数前,先保存当前配置,便于快速回滚。对于生产业务,建议先在测试环境验证配置变更,再灰度发布到正式环境。