Linux系统下将多网卡绑定为一个解决方法
  • 编辑:xtceo
  • 时间:2021-06-02

       在Linux系统中,通常会将多个网卡绑定为一个逻辑网卡,这样可以提高网络的稳定性,那么要如何将多个网络绑定为一个呢?下面小编就给大家介绍下Linux下多网卡绑定的bond模式原理。

 

Linux系统下将多网卡绑定为一个解决方法

 

  将多个Linux网络端口绑定为一个,可以提升网络的性能,比如对于备份服务器,需要在一个晚上备份几个T的数据,如果使用单个的千兆网口将会是很严重的瓶颈。其它的应用,比如ftp服务器,高负载的下载网站, 都有类似的问题。因此使用Linux teaming或bond来绑定多个网卡作为一个逻辑网口,配置单个的IP地址,会大幅提升服务器的网络吞吐(I/O)。

  Linux的多网卡绑定功能使用的是内核中的“bonding”模块,关于此模块可以参考Linux Ethernet Bonding Driver文档, 但是目前发布各个Linux版本内核均已包含了此模块,大多数情况下不需要重新编译内核。 Linux 的 bonding 驱动提供了绑定/集成(bond)多个网卡为一个虚拟逻辑网口的功能。并请注意绑定的网口(bonded)有多种工作模式; 一般来说,分为 热后备(hot standby) 和 负载均衡(load balancing)。 在Redhat/Fedora和其它类Redhat Linux中是比较容易配置的。

  1.创建bond0配置文件

  vi /etc/sysconfig/network-scripts/ifcfg-bond0

  DEVICE=bond0 --物理设备名字

  IPADDR=192.168.1.2 --IP地址

  NETMASK=255.255.255.0 --子网掩码

  GATEWAY=192.168.1.1 --网关

  DNS=8.8.8.8 --DNS

  ONBOOT=yes --随机启动

  NAME=bond0

  BOOTPROTO=none

  USERCTL=no --是否允许非root用户控制该设备

  2.修改被绑定的eth0和eth1的配置文件

  vi /etc/sysconfig/network-scripts/ifcfg-eth0

  DEVICE=“eth0”

  USERCTL=no

  ONBOOT=yes

  MASTER=bond0

  SLAVE=yes

  BOOTPROTO=none

  HWADDR=00:15:17:CC:FC:35

  eth1的配置文件与之相同,只是device的值改为eth1即可。

  3.装在bond模块驱动

  编辑/etc/modprobe.conf或者/etc/modules.conf文件,加入如下内容,使系统启动时加载bonding模块驱动

  alias bond0 bonding

  option bond0 miimon=100 mode=1

  说明:

  1).miimon=100 用来进行链路监测的。即每100ms监测一次链路状态。bonding只监测主机与交换机之间链路。如果交换机出去的链路出问题而本身没有问题,那么bonding认为链路没有问题而继续使用。

  2).mode=1 表示提供冗余功能。除此之外还可以为0、2、3,共四种模式。0表示负载均衡

  4.在/etc/rc.d/rc.local文件中加入如下语句,使得系统启动自动运行

  ifenslave bond0 eth0 eth1

  route add -net 192.168.1.254 netmask 255.255.255.0 bond0 #如有需要才加该路由

  5.检测、验证配置

  首先执行命令装载bonding模块:modprobe bonding

  重启网络服务,并确认bond0正确启动:service network restart

  确认设备已经正确加载:less /proc/net/bonding/bond0

  列出所有网口:ifconfig

  上面就是Linux下多网卡绑定bond模式原理的介绍了,bond模式原来一般有7种,这里只介绍了其中的一种,希望对你有所帮助,想了解更多内容可以对电脑系统城进行关注!

相关推荐