一,背景需求
我们在实施虚拟化或者超融合的时候,部署的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绑定模式,大家根据自己的情况选择相应的模式
选择模式之后,脚本会进行进一步的配置
配置结果
如何获取脚本文件?因平台因素,不能发链接,私聊我一下即可,私信回复。