银河麒麟系统中实现双网卡负载均衡有四种方法:一、nmcli命令行配置bonding(推荐),支持mode=0/4/6等模式;二、编辑network-scripts配置文件的传统方式;三、使用teamd配置teaming,支持loadbalance等灵活策略;四、双网卡独立路由+策略路由实现逻辑分流。

如果您在银河麒麟操作系统中部署关键业务服务器,需要提升网络吞吐能力并保障链路冗余,则双网卡负载均衡配置是核心操作。以下是实现多网卡负载均衡的多种可行方法:
一、使用nmcli命令行配置bonding(推荐)
该方法适用于无图形界面的服务器环境,通过NetworkManager直接创建bond接口,支持mode=0(轮询)、mode=4(802.3ad)、mode=6(ALB)等负载均衡模式,配置过程可持久化且易于批量部署。
1、确认物理网卡名称,执行ip a命令,记录待绑定网卡名(如ens33和ens34)。
2、创建bond0接口,指定负载均衡模式(以mode=6为例):
nmcli connection add type bond ifname bond0 mode 6 miimon 100
3、为bond0配置静态IPv4地址:
nmcli connection modify bond-bond0 ipv4.method manual ipv4.addresses 192.168.10.54/24 ipv4.gateway 192.168.10.1 ipv6.method ignore
4、将第一块物理网卡添加为slave:
nmcli connection add type bond-slave ifname ens33 master bond-bond0 con-name bond0-ens33
5、将第二块物理网卡添加为slave:
nmcli connection add type bond-slave ifname ens34 master bond-bond0 con-name bond0-ens34
6、依次启用两个slave连接:
nmcli connection up bond0-ens33
nmcli connection up bond0-ens34
7、启用主bond接口:
nmcli connection up bond-bond0
二、编辑网络脚本配置bonding(传统方式)
该方式绕过NetworkManager,直接修改ifcfg配置文件,适用于对服务依赖关系敏感或已禁用NetworkManager的生产环境,所有配置保存于/etc/sysconfig/network-scripts/目录下,重启后自动生效。
1、关闭两块物理网卡:
ifdown ens33
ifdown ens34
2、创建bond0主配置文件:
vim /etc/sysconfig/network-scripts/ifcfg-bond0
3、写入以下内容:
TYPE=Ethernet
BOOTPROTO=static
NAME=bond0
DEVICE=bond0
IPADDR=192.168.10.54
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
ONBOOT=yes
BONDING_OPTS="miimon=100 mode=6"
4、修改第一块物理网卡配置文件:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
5、写入以下内容:
DEVICE=ens33
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
6、修改第二块物理网卡配置文件:
vim /etc/sysconfig/network-scripts/ifcfg-ens34
7、写入以下内容:
DEVICE=ens34
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
8、重启网络服务:
systemctl restart network
三、使用teamd配置teaming(替代bonding)
teaming是较新的网络聚合框架,支持更灵活的runner策略(如activebackup、loadbalance),其配置由teamd守护进程管理,具备更细粒度的状态监控与故障响应能力,适合需动态策略调整的场景。
1、安装teamd工具包(若未预装):
yum install teamd libteam
2、创建team0连接,启用负载均衡runner:
nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "loadbalance"}}'
3、为team0配置IPv4地址:
nmcli connection modify team0 ipv4.method manual ipv4.addresses 192.168.10.54/24 ipv4.gateway 192.168.10.1 ipv6.method ignore
4、添加第一块网卡作为team slave:
nmcli connection add type team-slave con-name team0-port1 ifname ens33 master team0
5、添加第二块网卡作为team slave:
nmcli connection add type team-slave con-name team0-port2 ifname ens34 master team0
6、停用原物理网卡对应连接(如Net1、Net2):
nmcli connection down Net1
nmcli connection down Net2
7、启动team0及其两个slave:
nmcli connection up team0-port1
nmcli connection up team0-port2
nmcli connection up team0
8、验证team状态:
teamdctl team0 state
四、配置双网卡独立路由实现逻辑分流
该方法不进行网卡绑定,而是为两张物理网卡分别配置不同子网与路由表,通过策略路由(policy routing)控制特定流量走向指定出口,适用于内网与外网物理隔离、需严格路径控制的双网环境。
1、为第一张网卡(ens33)配置内网地址:
ip addr add 192.168.3.222/24 dev ens33
ip link set ens33 up
2、为第二张网卡(ens34)配置外网地址:
ip addr add 192.168.43.100/24 dev ens34
ip link set ens34 up
3、添加自定义路由表(如table 200):
echo "200 outer" >> /etc/iproute2/rt_tables
4、为外网网卡配置独立默认路由:
ip route add default via 192.168.43.1 dev ens34 table outer
5、添加策略规则,使匹配特定源IP的流量查outer表:
ip rule add from 192.168.43.100 table outer
6、添加策略规则,使匹配特定目标网段的流量查outer表(可选):
ip rule add to 8.8.8.8/32 table outer
7、刷新路由缓存:
ip route flush cache











