Linux实现双网卡绑定的代码详解

 更新时间:2024年07月26日 08:58:24   作者:吾心不朽  
linux 主机安装双网卡,共享一个IP地址,对外提供访问,实际同样连接两条物理线路到交换机实现平时双网卡同时工作,分流网络压力,同时提供冗余备份,监控,防止物理线路的单点故障,本文介绍了Linux实现双网卡绑定的代码示例,需要的朋友可以参考下

一、介绍

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、进入网卡配置目录下:

cd /etc/sysconfig/network-scripts/

2、vim ifcfg-bond0:

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:

TYPE=Ethernet
BOOTPROTO=none
NAME=ens33
DEVICE=ens33
ONBOOT=yes
MASTER=bond0
SLAVE=yes

4、vim ifcfg-ens36:

TYPE=Ethernet
BOOTPROTO=none
NAME=ens36
DEVICE=ens36
ONBOOT=yes
MASTER=bond0
SLAVE=yes

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

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:

modprobe bonding miimon=100 mode=1

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

systemctl restart network
ifconfig查看信息

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

cat /proc/net/bonding/bond0
cat /sys/class/net/bond0/bonding/mode	

9、 网卡切换

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

三、测试

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

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

这里通过ping命令

到此这篇关于Linux实现双网卡绑定的代码详解的文章就介绍到这了,更多相关Linux双网卡绑定内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • easyswoole一键安装脚本及宝塔安装错误问题

    easyswoole一键安装脚本及宝塔安装错误问题

    这篇文章主要介绍了easyswoole一键安装脚本及宝塔安装错误问题,文中给大家提到了Linux宝塔安装EsaySwoole的方法,需要的朋友可以参考下
    2019-10-10
  • 分析从Linux源码看TIME_WAIT的持续时间

    分析从Linux源码看TIME_WAIT的持续时间

    本文主要介绍了Linux下的TIME_WAIT状态的持续时间,从状态转移到它的源码,一步步让你了解它的机制
    2021-06-06
  • LINUX Centos7搭建vsftpd服务

    LINUX Centos7搭建vsftpd服务

    本文给大家详细讲述了在LINUX中Centos7搭建vsftpd服务的详细操作方法,需要的朋友参考下。
    2018-02-02
  • Linux之ipmitool管理BMC详解

    Linux之ipmitool管理BMC详解

    这篇文章介绍了ipmitool的基本用法和一些常用的命令,包括获取传感器信息、显示系统信息、电源控制、显示事件日志和启用/禁用BMC用户等,还介绍了如何通过IPMI-over-LAN远程控制BMC,并提供了连接到远程BMC的基本步骤
    2024-11-11
  • 详解Linux系统配置nginx的负载均衡

    详解Linux系统配置nginx的负载均衡

    这篇文章主要介绍了详解Linux系统配置nginx的负载均衡的相关资料,这里对负载均衡的几种方式进行了讲解并附NGINX配置文件,需要的朋友可以参考下
    2017-03-03
  • linux下端口被占用问题以及解除方式

    linux下端口被占用问题以及解除方式

    这篇文章主要介绍了linux下端口被占用问题以及解除方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Linux中安装配置hadoop集群详细步骤

    Linux中安装配置hadoop集群详细步骤

    本篇文章主要介绍了Linux中安装配置hadoop集群详细步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • 6ull加载linux驱动模块失败解决方法

    6ull加载linux驱动模块失败解决方法

    大家好,本篇文章主要讲的是6ull加载linux驱动模块失败解决方法,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • 详解Supervisor安装与配置(Linux/Unix进程管理工具)

    详解Supervisor安装与配置(Linux/Unix进程管理工具)

    这篇文章主要介绍了详解Supervisor安装与配置(Linux/Unix进程管理工具),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • linux下查看系统进程占用的句柄数方法

    linux下查看系统进程占用的句柄数方法

    下面小编就为大家带来一篇linux下查看系统进程占用的句柄数方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11

最新评论