当前位置:首页 » 《休闲阅读》 » 正文

CentOS 7系统双网卡配置动态链路聚合(bond4)

12 人参与  2024年11月26日 16:01  分类 : 《休闲阅读》  评论

点击全文阅读


一、应用场景

在机房建设时,服务器的网卡需要配置成bond4,可以使用我下面的配置文件和脚本来进行配置,简化配置流程。

bond4,即动态链路聚合,它可以将服务器上的两个物理网卡聚合为一个,两个网口逻辑成一个网口,配置一个ip地址,其中一个网口故障down掉,另一个网口仍然可以正常工作,起到一个冗余的作用,本文章只讲配置过程,大家可以搜索一下,深入学习一下链路聚合的知识。

服务器操作系统为:CentOS 7.9
CentOS 7.x应该是通用,其他LInux发行版可能需要进行调整,欢迎大家评论区交流学习。

二、详细配置

cat bond.sh
脚本中除了bond4配置外,还对服务器进行了一些简单的初始化操作,不需要可以注释掉

# 检查是否提供了 $1 参数if [ -z "$1" ]; then  echo "错误: 你没有提供任何参数。"  echo "用法: $0 <参数1>"  exit 1fi# 获取并打印 $1 的值echo "IP is : $1"cd /mnt/bound# 将网卡配置文件备份,将新的配置文件移动到/etc/sysconfig/network-scripts/下ls /etc/sysconfig/network-scripts/echo "___________________________"mv /etc/sysconfig/network-scripts/ifcfg-ens13f0 /etc/sysconfig/network-scripts/ifcfg-ens13f0.bakmv /etc/sysconfig/network-scripts/ifcfg-ens13f1 /etc/sysconfig/network-scripts/ifcfg-ens13f1.bakcp ifcfg-ens13f0 /etc/sysconfig/network-scripts/ifcfg-ens13f0cp ifcfg-ens13f1 /etc/sysconfig/network-scripts/ifcfg-ens13f1cp ifcfg-bond4 /etc/sysconfig/network-scripts/ifcfg-bond4 sed -i "s/^IPADDR=.*/IPADDR=$1/" /etc/sysconfig/network-scripts/ifcfg-bond0 # 如果不想输入完整的ip地址,可以将上一行的sed命令注释,将下一行的sed的注释解开#sed -i "s/\(IPADDR=[0-9]*\.[0-9]*\.[0-9]*\.\)[0-9]*/\1$1/" /etc/sysconfig/network-scripts/ifcfg-bond0echo "stop fw & selinux" # 禁用selinux和防火墙sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/configsetenforce 0systemctl stop firewalldsystemctl disable firewalldsystemctl is-active firewalld# 修改root密码echo "change passwd"echo "mypass" | passwd --stdin rootecho# 重启网络服务,使配置生效echo "restart network"systemctl restart network# 查看配置结果echo ip -4 a | grep bond -A 3

cat ifcfg-ens13f0

TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="ens13f0"DEVICE=ens13f0    # 根据实际网卡名进行修改MASTER=bond4SLAVE=yesONBOOT=yes

cat ifcfg-ens13f1

TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="ens13f1"DEVICE=ens13f1     # 根据实际网卡名进行修改MASTER=bond4SLAVE=yesONBOOT=yes

cat ifcfg-bond4

DEVICE=bond4TYPE=bondBONDING_MASTER=yesBOOTPROTO=staticONBOOT=yesIPADDR=192.168.3.101      # ip地址、掩码、网关修改为自己实际的ip地址、掩码、网关NETMASK=255.255.255.0GATEWAY=192.168.3.1BONDING_OPTS="mode=4 miimon=100"

三、脚本用法

将bond.sh、ifcfg-ens13f0、ifcfg-ens13f1、ifcfg-bond4放在同一目录下。
对于ifcfg-ens13f0、ifcfg-ens13f1:先确认自己的服务器原本的网卡配置文件名是否为ifcfg-ens13f0和ifcfg-ens13f1,请大家根据实际情况修改为自己服务器的网卡配置文件名,并注意修改DEVICE=的参数

对于ifcfg-bond4:根据实际情况修改ip地址、掩码和网关地址

然后执行脚本:sh bond.sh IP地址
举例,比如,我想配置ip地址为 192.168.3.15,那么我的脚本执行命令为:sh bond.sh 192.168.3.15
如果你的ip地址是个c类地址,你可以将我的bond.sh脚本中的sed命令进行更换,然后脚本执行的命令就简化为:sh bond.sh 15

四、配置验证

通过查看ip的命令可以看到bond的配置结果,此时会有一个名为bond4的网卡,看配置信息是否符合预期

ip a

通过以下命令可以查看bond的详细状态

cat  /proc/net/bonding/bond4

点击全文阅读


本文链接:http://zhangshiyu.com/post/192372.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1