Linux服务器多网卡绑定Bond和配置VLAN网络接口

本文详细介绍了网卡绑定(Bonding)技术,包括其作用、原理,以及Linux中的七种Bond模式,如轮询、主备、选择策略等,并提供了Ubuntu系统中配置网卡绑定的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、网卡绑定

网卡绑定,也被称作网卡捆绑。就是将两个或多个物理网卡绑定成一个虚拟网卡

网卡绑定的作用:以提供负载均衡或者冗余,增加带宽的作用。当一个网卡坏掉时,服务器的网络不会中断

二、Bond技术

1、bond简介

Bond技术即bonding,是Linux Kernel的一个模块,能够将多块物理网卡绑定到一块虚拟网卡上,并通过修改网口驱动让多块网卡看起来是一个单独的以太网接口设备,对外只提供一个IP,主要用于解决网卡单点故障或网卡负载较高的场景。

2、Bond技术原理

Bond技术需要物理网卡开启混杂模式才能正常工作。在混杂模式下,网卡不只接收目的MAC地址为自身的以太网帧,而是接收网络上所有的数据帧。为了实现多块网卡的协同工作,Bond将自己的MAC地址复制到各个物理网卡上,让所有的网卡共享同一个MAC地址。这个方式就要求所有的网卡都要支持BIOS,这样才能够让操作系统将MAC地址写到网卡上

对于单物理网卡的Bond网卡来说,Bond网卡的MAC地址和物理网卡的物理地址是一致的。而对于多物理网卡的Bond网卡而言,其中一块物理网卡会被设置为 Master,其他的网卡则都是Slave,Bond网卡的MAC地址取自标志为Master的物理网卡,然后再将这个MAC地址复制到其他物理网卡上。所以在安装网卡时,我们需要指定Bond网卡,以及Bond网卡所对应的标志为Master的物理网卡。

3、网卡Bond模式

网卡绑定mode共有七种(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6

常用的有三种

mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。

mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。

mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定

(1)模式0

此模式使用轮询策略,既顺序的在每一个bond的网卡上发送数据包,这种模式提供负载均衡和容错能力。Bond0可以保证bond虚拟网卡和被bond的两张和多张物理网卡拥有相同的MAC地址。其中bond虚拟网卡的MAC地址是其中一张物理网络的MAC地址,而bond虚拟网卡的MAC地址是根据bond自己实现的一个算法来选择的。

在bond0模式下,如果一个连接或者会话的数据包从不同的网口发出,途中再经过不同的链路,则在客户端很有可能会出现数据包无序到达的现象,而无序到达的数据包一般需要重新发送,这样网络的吞吐量就会下降。另外,如果做bond0的两张或多张网卡接到了同一交换机上,还需对交换机配置聚合模式。

(2)模式1

此模式使用主备策略,在所有做bond1的物理网卡中,同一时刻只有一张网卡被激活,当且仅当活动网卡失效时才会激活其他的网卡。这种模式下做bond的两张或多张网卡的MAC地址和Bond虚拟网卡的MAC地址相同,而Bond的MAC地址是Bond创建启动后活动网卡的MAC地址。

这种模式要求主被网卡能快速的切换,即当主网卡出现故障后能迅速地切换至备用网卡。切换过程中,上层的应用几乎不受影响,因为Bond的驱动程序会临时接管上层应用的数据包,存放至数据缓冲区,等待备用网卡启动后再发送出去。但是如果切换时间过长,则会引起缓冲区的溢出,导致丢包。

(3)模式2

此模式的默认选择策略是:选择网卡的序号=(源MAC地址 XOR目标MAC地址)%Slave网卡(从网卡)的数量。其他的传输策略可以通过xmit_hash_policy配置项指定

(4)模式3

模式3使用广播策略,数据包会被广播至所有Slave网卡进行传送。

(5)模式4

模式4使用动态链接聚合策略,启动时会创建一个聚合组,所有Slave网卡共享同样的速率和双工设定,需要交换机支持IEEE 802.3ad动态链路聚合模式。支持使用ethtool工具获取每个slave网卡的速率和双工设定

(6)模式5

模式5基于每个slave网卡的速率选择传输网卡,支持使用ethtool工具获取每个slave网卡的速率。

(7)模式6

模式6包含了bond5模式,同时还支持对IPV4流量接收时的负载均衡策略,而且不需要任何交换机的支持,支持只是用ethtool获取每个Slave的速率,要求底层驱动支持设置某个网卡设备的硬件地址。

介绍完这7种模式之后,我们简单对这7种模式的优缺点进行简单的对比,具体的内容请参考以下图1所示。

4. linux服务器多网卡绑定,服务器网卡绑定

网卡配置步骤及具体命令:

#ubuntu系统
apt install -y fenslave  #### 服务器网卡bond配置
dpkg -l | grep fenslave
modprobe bonding  #加载绑定内核
lsmod | grep bonding  #检查
echo "bonding"  >>/etc/modules   # 添加bonding模块开机启动
cat /etc/network/interfaces  #配置服务器网卡
<think>好的,我现在需要帮助用户配置Linux下的两张网卡bond1模式,并且设置VLAN为176。首先,我得回顾一下bonding的相关知识,确保步骤正确。 用户提到的bond1是mode 1,也就是主备模式(active-backup)。这种模式下,只有一个网卡处于活动状态,另一个作为备份,当主网卡故障时,备份网卡会自动接管。接下来需要确认是否已安装bonding驱动,大多数现代Linux发行版应该已经内置了,但可能需要加载模块。 然后是VLAN 176的配置VLAN需要在bond接口上创建,所以应该先配置bond,再在bond上添加VLAN子接口。需要确保系统安装了vlan软件包,比如通过安装vlan包,并加载8021q模块。 接下来,具体的步骤可能包括: 1. 检查并加载必要的内核模块:bonding8021q。 2. 配置网络配置文件,比如在/etc/sysconfig/network-scripts/下创建ifcfg-bond1,并设置BONDING_OPTS为mode=1。然后配置两个物理网卡配置文件,将它们的MASTER指向bond1,SLAVE设为yes。 3. 创建VLAN接口,比如ifcfg-bond1.176,设置VLAN=yesPHYSDEV=bond1。 4. 重启网络服务或重启系统使配置生效。 5. 验证bond状态,可以通过查看/proc/net/bonding/bond1,检查VLAN是否正确配置,以及网络连通性测试。 可能的问题点:不同的Linux发行版(如CentOSUbuntu)配置文件的位置格式不同,用户可能使用的是基于Red Hat的系统,所以需要确认路径是否正确。另外,防火墙SELinux设置可能会影响网络配置,需要提醒用户检查。 另外,需要确保物理网卡没有其他配置冲突,比如原有的IP地址配置需要移除。还有,bonding模式是否正确设置,参数是否有误,比如miimon或arp_interval等可能需要调整。 总结步骤后,需要以清晰的结构呈现给用户,分步说明,并提醒注意事项验证方法,确保用户能够正确应用配置。</think>以下是配置Linux网卡bond1(主备模式)并设置VLAN 176的步骤: --- ### 一、前置条件 1. 确认系统已安装`bonding`驱动`vlan`支持 ```bash sudo modprobe bonding # 加载bonding模块 sudo modprobe 8021q # 加载VLAN支持 ``` 2. 物理网卡名称假设为`eth0``eth1`(需根据实际名称修改) --- ### 二、配置Bond1接口 1. **创建bond配置文件** 新建文件 `/etc/sysconfig/network-scripts/ifcfg-bond1`: ```bash DEVICE=bond1 TYPE=Bond ONBOOT=yes BOOTPROTO=none BONDING_MASTER=yes BONDING_OPTS="mode=active-backup miimon=100" ``` 2. **配置物理网卡为slave** 修改`eth0``eth1`的配置文件(路径:`/etc/sysconfig/network-scripts/ifcfg-eth0``ifcfg-eth1`): ```bash DEVICE=eth0 # eth1同理 TYPE=Ethernet ONBOOT=yes BOOTPROTO=none MASTER=bond1 # 指定master为bond1 SLAVE=yes # 标记为slave ``` --- ### 三、配置VLAN 176 1. **创建VLAN子接口** 新建文件 `/etc/sysconfig/network-scripts/ifcfg-bond1.176`: ```bash DEVICE=bond1.176 BOOTPROTO=static ONBOOT=yes VLAN=yes PHYSDEV=bond1 # 绑定bond1接口 IPADDR=192.168.176.10 # 替换为实际IP NETMASK=255.255.255.0 GATEWAY=192.168.176.1 ``` --- ### 四、应用配置 1. **重启网络服务** ```bash sudo systemctl restart network # CentOS/RHEL # 或 sudo systemctl restart networking # Debian/Ubuntu ``` 2. **验证配置** - 检查bond状态: ```bash cat /proc/net/bonding/bond1 ``` 输出应显示`Active Slave: eth0`(或当前活动网卡) - 检查VLAN接口: ```bash ip addr show bond1.176 ``` --- ### 五、注意事项 1. 如果使用`NetworkManager`,建议关闭或配置为不管理bond接口 2. 防火墙需放行VLAN网段(若有) 3. 主备切换测试:拔掉`eth0`网线,观察`eth1`是否接管 通过以上步骤,您将获得一个高可用的网络接口bond1)并在其基础上运行VLAN 176。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_14910065

你的支持是我最大的努力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值