Linux实现双网卡绑定

1、介绍

linux 主机安装双网卡,共享一个IP地址,对外提供访问,实际同样连接两条物理线路到交换机实现平时双网卡同时工作,分流网络压力,同时提供冗余备份,监控,防止物理线路的单点故障。

配置双网卡的目的:实现高可用、流量负载均衡

实现原理:

Linux bonding 驱动模块 提供了一种方法,用以把多个网络接口(network interface)组合成一个 逻辑的 "bonded" 接口。 Bonded 接口的工作方式取决于驱动的模式:不同的模式提供了热备份或负载均衡等不同的服务。

几种模式:

• 轮询策略(round robin),mode=0,按照设备顺序依次传输数据包,提供负载均衡和容错能力

• 主备策略(active-backup),mode=1,只有主网卡处于工作状态,备网卡处于备用状态,主网卡坏掉后备网卡开始工作,提供容错能力

• 异或策略(load balancing (xor)),mode=2,根据源MAC地址和目的MAC地址进行异或计算的结果来选择传输设备,提供负载均衡和容错能力

• 广播策略(fault-tolerance (broadcast)),mode=3,将所有数据包传输给所有接口通过全部设备来传输所有数据,一个报文会复制两份通过bond下的两个网卡分别发送出去,提供高容错能力

• 动态链接聚合(lacp),mode=4,按照802.3ad协议的聚合自动配置来共享相同的传输速度,网卡带宽最高可以翻倍,链路聚合控制协议(LACP)自动通知交换机聚合哪些端口,需要交换机支持 802.3ad协议,提供容错能力

• 输出负载均衡模式(transmit load balancing),mode=5,输出负载均衡模式,只有输出实现负载均衡,输入数据时则只选定其中一块网卡接收,需要网卡和驱动支持ethtool命令

• 输入/输出负载均衡模式(adaptive load balancing),mode=6,输入和输出都实现负载均衡,需要网卡和驱动支持ethtool命令

二、步骤

1、进入网卡配置目录下:

cpp 复制代码
cd /etc/sysconfig/network-scripts/

2、vim ifcfg-bond0:

c 复制代码
TYPE=Ethernet
BOOTPROTO=static
NAME=bond0
DEVICE=bond0
IPADDR="192.168.50.8"
NETMASK=255.255.255.0
GATEWAY=192.168.50.2
DNS1=114.114.114.114
ONBOOT=yes
BONDING_OPTS="miimon=100 mode=1"

3、vim ifcfg-ens33:

c 复制代码
TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes

4、vim ifcfg-ens36:

c 复制代码
TYPE=Ethernet
BOOTPROTO=none
NAME=ens36
DEVICE=ens36
ONBOOT=yes
MASTER=bond0
SLAVE=yes

5、vim /etc/modprobe.d/dist.conf:

c 复制代码
alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0
  • alias bond0 bonding,表示系统在启动时加载bonding模块,对外虚拟网络接口设备为 bond0

  • miimon=100,表示系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线

  • mode=1,表示绑定模式为1

  • primary=eth0,系统首先eth0作为bond0接口与外界信息的传输接口

6、vim /etc/rc.local:

c 复制代码
modprobe bonding miimon=100 mode=1

7、所有配置都已完成,重启网络:

c 复制代码
systemctl restart network
ifconfig查看信息

ifconfig

8、检查bonding mode,想查看那个网卡再工作,使用下面这个命令

cpp 复制代码
cat /proc/net/bonding/bond0
cat /sys/class/net/bond0/bonding/mode	

9、 网卡切换

csharp 复制代码
ifenslave --c bond0 eth0           //测试bonding能否正常切换
 Bonding完成后配置全局网关,vi  /etc/sysconfig/network

三、测试

通过断开不同网卡,观察网络是否可以用

(注意:VMware实验环境不能使用ifdown去断开网卡,而是要在界面下方点击断开连接)

这里通过ping命令

相关推荐
面朝大海,春不暖,花不开5 分钟前
Java网络编程:TCP/UDP套接字通信详解
java·网络·tcp/ip
ChicagoTypewriter11 分钟前
计算机网络中的常用表项梳理
网络·计算机网络·智能路由器
IC 见路不走1 小时前
LeetCode 第91题:解码方法
linux·运维·服务器
翻滚吧键盘1 小时前
查看linux中steam游戏的兼容性
linux·运维·游戏
小能喵1 小时前
Kali Linux Wifi 伪造热点
linux·安全·kali·kali linux
汀沿河2 小时前
8.1 prefix Tunning与Prompt Tunning模型微调方法
linux·运维·服务器·人工智能
zly35002 小时前
centos7 ping127.0.0.1不通
linux·运维·服务器
小哥山水之间2 小时前
基于dropbear实现嵌入式系统ssh服务端与客户端完整交互
linux
power 雀儿3 小时前
集群聊天服务器---MySQL数据库的建立
服务器·数据库·mysql
ldj20203 小时前
2025 Centos 安装PostgreSQL
linux·postgresql·centos