Linux双网卡绑定实践

2024-01-28 11:08
文章标签 linux 实践 绑定 双网卡

本文主要是介绍Linux双网卡绑定实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Linux双网卡绑定实践

 发表于 2015-02-09

前言

工作中主要以SuSE为主,网络作为整个高可用架构中最重要的环节之一,在物理上一般是双网卡绑定模式,通常使用默认的mode=1(active-backup)作为主备关系。在最近测试大数据的生产服务器中,考虑到性能优先,所以将绑定模式设置为mode=6(balance-alb),使用负载均衡提高1倍流量。与此同时针对SuSE HA架构由Skybility HACorosync/Openais+Pacemaker的测试过程中,配合网络交换机Port Channel链路聚合采用mode=0(balance-rr ),凭借平衡轮询实现网络中断0丢包。

下文以CentOS为例(Red Hat类似),其它平台双网卡设置都较为简单,SuSE(YaST),AIX(SMIT),Windows(Intel),如果大家有需求可以回复留言,我会在后续更新和补充。

遵循高可用原则,实现失效保护和负载均衡


更新记录

2015年02月09日 - 初稿

阅读原文 - http://wsgzao.github.io/post/bond-network/

扩展阅读

  • 七种网卡绑定模式详解 - http://blog.csdn.net/wuweilong/article/details/39720571

基础配置信息

常用的三种Bond模式

配置过程以mode=6为例,其它7种模式请参考扩展阅读

mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。
mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。

物理接口

interfaceIPtype
eth0,eth2 两块生产网卡
eth310.129.46.19私有地址
bond010.3.3.214双网卡绑定地址

CentOS版本

1
2
datanode01:~>cat /etc/redhat-release 
CentOS release 6.4 (Final)

禁用NetworkManager

1
2
3
4
#立即关闭禁用NetworkManager并禁用开机自启动
/etc/init.d/NetworkManager stop
chkconfig NetworkManager off
/etc/init.d/network restart

关闭iptables和selinux(可选)

1
2
3
4
5
6
7
#立即关闭iptables并禁用开机自启动
/etc/init.d/iptables stop
chkconfig iptables off

#立即关闭selinux并永久禁用
setenforce 0
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config

修改主机名

1
2
3
4
5
6
7
8
vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=namenode01

#刷新生效
hostname namnode01
source /etc/sysconfig/network

配置IP

私有地址

1
2
3
4
5
6
7
8
9
10
cd /etc/sysconfig/network-scripts

[root@datanode09 network-scripts]# cat ifcfg-eth3
DEVICE=eth3
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.129.46.19
NETMASK=255.255.255.0
IPV6INIT=no
USERCTL=no

双网卡绑定

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
cd /etc/sysconfig/network-scripts

#编辑eth0
cat > ifcfg-eth0 << EOF
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
EOF

#编辑eth2
cat > ifcfg-eth2 << EOF
DEVICE=eth2
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
MASTER=bond0
EOF

#编辑bond0
cat > ifcfg-bond0 << EOF
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.3.3.214
NETMASK=255.255.255.0
GATEWAY=10.3.3.1
IPV6INIT=no
USERCTL=no
EOF

#设置bond参数,注意mode选择
cat > /etc/modprobe.conf << EOF
alias bond0 bonding
options bond0 miimon=100 mode=6
EOF

#加入开机自启动参数
cat >> /etc/rc.local << EOF
ifenslave bond0 eth0 eth2
EOF

#重启网卡
service network restart

#使绑定网卡立即生效
ifenslave bond0 eth0 eth2

#测试绑定网络
ping 10.3.3.1

常用3种网卡绑定模式对比

mode=0

中断任意一条链路或恢复链路,网络0丢包

优点:流量提高1倍

缺点:需要接入同一交换机做聚合配置,无法保证物理交换机高可用(Cisco似乎有解决方案?)

mode=1

中断任意一条链路丢失1-3个包(秒),恢复链路时0丢包

优点:交换机无需配置

缺点:如上

mode=6

中断任意一条链路0丢包,恢复链路时丢失10-15个包(秒)

优点:交换机无需配置,流量提高1倍

缺点:恢复链路时丢包时间过长

这篇关于Linux双网卡绑定实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/653462

相关文章

Nginx实现高并发的项目实践

《Nginx实现高并发的项目实践》本文主要介绍了Nginx实现高并发的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用最新稳定版本的Nginx合理配置工作进程(workers)配置工作进程连接数(worker_co

jdk21下载、安装详细教程(Windows、Linux、macOS)

《jdk21下载、安装详细教程(Windows、Linux、macOS)》本文介绍了OpenJDK21的下载地址和安装步骤,包括Windows、Linux和macOS平台,下载后解压并设置环境变量,最... 目录1、官网2、下载openjdk3、安装4、验证1、官网官网地址:OpenJDK下载地址:Ar

linux本机进程间通信之UDS详解

《linux本机进程间通信之UDS详解》文章介绍了Unix域套接字(UDS)的使用方法,这是一种在同一台主机上不同进程间通信的方式,UDS支持三种套接字类型:SOCK_STREAM、SOCK_DGRA... 目录基础概念本机进程间通信socket实现AF_INET数据收发示意图AF_Unix数据收发流程图A

linux环境openssl、openssh升级流程

《linux环境openssl、openssh升级流程》该文章详细介绍了在Ubuntu22.04系统上升级OpenSSL和OpenSSH的方法,首先,升级OpenSSL的步骤包括下载最新版本、安装编译... 目录一.升级openssl1.官网下载最新版openssl2.安装编译环境3.下载后解压安装4.备份

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

linux打包解压命令方式

《linux打包解压命令方式》文章介绍了Linux系统中常用的打包和解压命令,包括tar和zip,使用tar命令可以创建和解压tar格式的归档文件,使用zip命令可以创建和解压zip格式的压缩文件,每... 目录Lijavascriptnux 打包和解压命令打包命令解压命令总结linux 打包和解压命令打

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

linux如何复制文件夹并重命名

《linux如何复制文件夹并重命名》在Linux系统中,复制文件夹并重命名可以通过使用“cp”和“mv”命令来实现,使用“cp-r”命令可以递归复制整个文件夹及其子文件夹和文件,而使用“mv”命令可以... 目录linux复制文件夹并重命名我们需要使用“cp”命令来复制文件夹我们还可以结合使用“mv”命令总

Spring Boot 3 整合 Spring Cloud Gateway实践过程

《SpringBoot3整合SpringCloudGateway实践过程》本文介绍了如何使用SpringCloudAlibaba2023.0.0.0版本构建一个微服务网关,包括统一路由、限... 目录引子为什么需要微服务网关实践1.统一路由2.限流防刷3.登录鉴权小结引子当前微服务架构已成为中大型系统的标

Linux使用cut进行文本提取的操作方法

《Linux使用cut进行文本提取的操作方法》Linux中的cut命令是一个命令行实用程序,用于从文件或标准输入中提取文本行的部分,本文给大家介绍了Linux使用cut进行文本提取的操作方法,文中有详... 目录简介基础语法常用选项范围选择示例用法-f:字段选择-d:分隔符-c:字符选择-b:字节选择--c