当前位置: 首页 > news >正文

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

一、应用场景

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

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

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

二、详细配置

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

# 检查是否提供了 $1 参数
if [ -z "$1" ]; thenecho "错误: 你没有提供任何参数。"echo "用法: $0 <参数1>"exit 1
fi# 获取并打印 $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.bak
mv /etc/sysconfig/network-scripts/ifcfg-ens13f1 /etc/sysconfig/network-scripts/ifcfg-ens13f1.bak
cp ifcfg-ens13f0 /etc/sysconfig/network-scripts/ifcfg-ens13f0
cp ifcfg-ens13f1 /etc/sysconfig/network-scripts/ifcfg-ens13f1
cp 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-bond0
echo "stop fw & selinux" # 禁用selinux和防火墙
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
systemctl is-active firewalld# 修改root密码
echo "change passwd"
echo "mypass" | passwd --stdin root
echo# 重启网络服务,使配置生效
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=bond4
SLAVE=yes
ONBOOT=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=bond4
SLAVE=yes
ONBOOT=yes

cat ifcfg-bond4

DEVICE=bond4
TYPE=bond
BONDING_MASTER=yes
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.3.101      # ip地址、掩码、网关修改为自己实际的ip地址、掩码、网关
NETMASK=255.255.255.0
GATEWAY=192.168.3.1
BONDING_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://www.mrgr.cn/news/21637.html

相关文章:

  • 数据分析面试题:客户投保问题分析
  • 上海市计算机学会竞赛平台2024年7月月赛丙组求和问题
  • 【B题第三套完整论文已出】2024数模国赛B题第三套完整论文+可运行代码参考(无偿分享)
  • 【机器人工具箱Robotics Toolbox开发笔记(十九)】机器人工具箱Link类函数参数说明
  • 【机器人工具箱Robotics Toolbox开发笔记(十四)】三连杆机器人直线轨迹规划仿真实例
  • 不同饭局,如何说开场白才能打开氛围?教你一个万能公式
  • JavaScript Web API入门day7
  • 【数据结构入门】排序算法之交换排序与归并排序
  • 【Vue】状态管理模式Vuex
  • Spring Cloud Alibaba
  • ant-design-vue中实现a-tree树形控件父子关联选中过滤的算法
  • 每日一题——第八十一题
  • GB35114 USC安防平台 中星微国密摄像机配置 流程
  • Java 面试题:通过JProfile排查OOM问题 内存溢出与内存泄漏问题 --xunznux
  • 知名数字化增长战略研究学者专家教授顾问培训讲师唐兴通增长战略增长结构增长机会
  • Map
  • Qt-常用控件(3)-输入类
  • 结合Prometheus与Grafana实现微服务架构的可观测性
  • linux基础IO——动静态库——进程编址、进程执行、动态库加载
  • 攻防世界 Web_php_unserialize