本帖最后由 maoxingwei 于 2022-9-23 11:36 编辑
一,背景需求
我们在实施虚拟化或者超融合的时候,部署的Linux业务虚拟机,因业务需求,需要对几个网卡做绑定。有些工程师可能不光从事安全工作,也从事主机存储配置类的工作,那么配置网卡聚合的情况就会更多。大多数工程师对Linux不熟悉,尤其是做一些复杂的配置。我以前刚开始接触Linux,遇到配置网卡聚合的情况也会慌,网上找了不少教程,大多数内容长的都一样,俗称复制粘贴,没有参考意义。后面我系统性学习了Linux,编写了很多实用性脚本,借此机会分享下Linux下配置网卡聚合的脚本。
二,技术介绍
Linux网卡聚合和交换机聚合类似,都需要双边来共同协商,协商不一致,则无法正常工作。Linux网卡聚合有7种模式
服务器bond模式 | 交换机聚合模式 | mode0 (balance-rr)Round-robin | on | mode1 (active-backup)Active-backup | 无需配置 | mode2 (balance-xor)XOR | 无需配置 | mode3 (broadcast) | 无需配置 | mode4 (802.3ad)IEEE 802.3ad Dynamic link aggregation | active | mode5 (balance-tlb)Adaptive transmit load balancing | 无需配置 | mode6 (balance-alb)Adaptive load balancing | 无需配置 |
我们常用的配置就三种, 1,mode0,轮询模式,交换机需要静态模式或者手工模式。 2,mode1,主备模式,交换机无需配置。 3,mode4,LACP模式,交换机也需要配置为LACP。这个模式用的比较多,可以增加链路带宽,负载均衡。
在现行的Linux发行版中,配置网卡聚合的程序有net-tools和NetworkManager,即大家经常叫的bond绑定和team绑定在6系列中,只支持net-tools,即bond,在7系列中支持两种模式,8系列中,默认支持team模式。我在物理服务器和虚拟机上测试了多次,两种配置模式性能无差别。有些客户要求安装完Linux要禁用NetworkManager 服务,所以只能使用bond来做聚合。 我根据不同的版本,不同的系统环境适配了不同的配置模式。
此脚本只支持CentOS 6.x/7.x/8.x RedHat 6.x/7.x/8.x,本人对此脚本内容拥有完全独立的著作权。
三,准备工作
下载此脚本,上传到需要配置的操作系统下。如果网口较充足,建议使用临时IP,用工具上传并ssh进行操作,否则使用优盘等上传到操作系统中进行配置。
四,使用方法
脚本使用Linux shell 进行编写,全自动,全交互,使用方便简单。考虑到不同的终端和操作系统语言的复杂性,我适配了中文和英文。如果脚本乱码,则选择英文即可。
脚本可选择使用bond模式和team模式来进行绑定
选择相应的模式之后,会列出当前主机所有网卡、IP、以及网关
输入要配置的网卡序号,序号之间用空格隔开,回车之后输入bond名称,此处bond名称与bond模式无关,但是为了方便分辨,建议bond模式和bond名称统一。
接下来脚本会提示输入聚合口的IP,掩码、网关、dns信息,所有信息一目了然。
所有信息填写无误,回车之后,会提示选择bond绑定模式,大家根据自己的情况选择相应的模式
选择模式之后,脚本会进行进一步的配置
配置结果
五,注意事项
1,脚本只操作网卡接口配置文件,不会配置其他内容 2,下面我附上脚本,使用过程有问题可以私信我 3,脚本代码如有问题,欢迎指正。如有其他需求,也可联系我
nic-bond.rar
(6.95 KB, 下载次数: 52)
|