双网卡绑定

本文详细介绍了Linux环境下双网卡绑定的实现步骤,包括创建虚拟网卡、修改配置文件、调整modprobe.conf、编辑rc.local、重启系统等关键操作。同时提供了卸载绑定设备的方法,确保了双网卡绑定的灵活应用。

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

Linux双网卡绑定和解除绑定的实现
双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。根据交换机可支持的功能不通,最常见的是设定为主备方式的双网卡绑定。


一、操作步骤  注意:每个节点都要做
 
这里以绑定两个网卡为示例描述。配置文件都在
/etc/sysconfig/network-scripts/目录下。
 1、编辑新的ifcfg-bond0文件增加如下内容:
[root@mi6 ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0 
# Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe
DEVICE=bond0
BOOTPROTO=static
BROADCAST=172.16.10.255
IPADDR=172.16.10.16
NETMASK=255.255.255.0
NETWORK=172.16.10.0
ONBOOT=yes
USERCTL=no 


这是最后bond0设备的实际IP设置。
 
2、分别编辑ifcfg-eth1和ifcfg-eth2文件
修改前:
[root@mi6 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
# Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe
DEVICE=eth1
BOOTPROTO=static
BROADCAST=172.16.10.255
HWADDR=B2:4A:52:DA:62:21
IPADDR=172.16.10.16
NETMASK=255.255.255.0
NETWORK=172.16.10.0
ONBOOT=yes


修改后:
[root@mi6 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
# Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe
DEVICE=eth1
BOOTPROTO=none
HWADDR= B2:4A:52:DA:62:21
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no 


修改前:
[root@mi6 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth2
# Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe
DEVICE=eth2
BOOTPROTO=static
BROADCAST=172.16.10.255
HWADDR=B3:5D:58:DA:31:7A
IPADDR=172.16.10.18
NETMASK=255.255.255.0
NETWORK=172.16.10.0
ONBOOT=yes


修改后
[root@mi6 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth2
# Broadcom Corporation NetXtreme BCM5720 Gigabit Ethernet PCIe
DEVICE=eth2
BOOTPROTO=none
HWADDR= B3:5D:58:DA:31:7A
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
 
3、修改/etc/modprobe.conf文件
# vi /etc/modprobe.conf
 添加如下内容:
alias bond0 bonding 
options bond0 miimon=100 mode=1 


[root@mi6 ~]# vi /etc/modprobe.conf 
alias eth0 tg3
alias eth1 tg3
alias eth2 tg3
alias eth3 tg3
alias scsi_hostadapter megaraid_sas
alias scsi_hostadapter1 ahci
alias bond0 bonding
options bond0 miimon=100 mode=1


4、[root@mi6 ~]# vi /etc/rc.local 
#!/bin/sh
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
ifenslave bond0 eth1 eth2
将网卡eth1和eth2绑定成虚拟网卡bond0
说明:
miimon是用来进行链路监测的。
比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;
     mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。
需根据交换机可提供的工作模式选择。
mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。
mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份。
注意:a、bonding只能提供链路监测,即从主机到交换机的链路是否接通。
如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用。
     b、设置的模式要与交换机设置的模式一致。
5、重启系统系统启动时,会自动加载bond模块和激活冗余网卡设置。可使用以下命令进行判断:
# ifconfig 若确认bond0网卡已经激活,可通过插拔网线操作进行切换测试。
[root@mi6 ~]# ifconfig -a
bond0     Link encap:Ethernet  HWaddr  B2:4A:52:DA:62:21   
          inet addr:172.16.10.16  Bcast:172.16.10.255  Mask:255.255.255.0
          inet6 addr: fe80::ba2a:72ff:feda:299/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:329 errors:0 dropped:0 overruns:0 frame:0
          TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:62294 (60.8 KiB)  TX bytes:7874 (7.6 KiB)


eth0      Link encap:Ethernet  HWaddr B8:2A:72:DA:02:98  
          inet addr:172.16.10.100  Bcast:    Mask:255.255.255.224
          inet6 addr: fe80::ba2a:72ff:feda:298/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:115 errors:0 dropped:0 overruns:0 frame:0
          TX packets:82 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:29813 (29.1 KiB)  TX bytes:27012 (26.3 KiB)


eth1      Link encap:Ethernet  HWaddr  B2:4A:52:DA:62:21  
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:164 errors:0 dropped:0 overruns:0 frame:0
          TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:31112 (30.3 KiB)  TX bytes:7874 (7.6 KiB)
          Interrupt:25 Memory:d91d0000-d91e0000 


eth2      Link encap:Ethernet  HWaddr  B2:4A:52:DA:62:21   
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:165 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:31182 (30.4 KiB)  TX bytes:0 (0.0 b)
          Interrupt:26 Memory:d90a0000-d90b0000


6、Vi /proc/net/bonding/bond0      #查看模式及网卡信息
[root@mi6 ~]# vi /proc/net/bonding/bond0 


Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 2008)


Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0


Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: B2:4A:52:DA:62:21


Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: B3:5D:58:DA:31:7A
二、修改配置
 1、修改bond0网卡IP信息
执行以下操作即可:
# vi /etc/sysconfig/network-scripts/ifcfg-bond0 
修改其中IP信息,保存退出并使用以下命令重启网络:
# /etc/init.d/network restart 
注意:
切勿在图形界面下来修改bond0的IP !若已经打开网络属性查看网卡信息,请按退出。不要点确定,否则会修改eth0和eth1的配置信息,使bond0失效。
 2、卸载bond0设备
如需删除双网卡绑定系统,可执行以下操作:
#rm -f /etc/sysconfig/network-scripts/ifcfg-bond0 
#vi /etc/etc/modules.conf 
 
然后删除以下两行后,保存退出
alias bond0 bonding 
options bond0 miimon=100 mode=1 
 
最后重新配置eth0和eth1的IP,并重启网络即可。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29819001/viewspace-1296001/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29819001/viewspace-1296001/

出现这个错误的原因是在导入seaborn包时,无法从typing模块中导入名为'Protocol'的对象。 解决这个问题的方法有以下几种: 1. 检查你的Python版本是否符合seaborn包的要求,如果不符合,尝试更新Python版本。 2. 检查你的环境中是否安装了typing_extensions包,如果没有安装,可以使用以下命令安装:pip install typing_extensions。 3. 如果你使用的是Python 3.8版本以下的版本,你可以尝试使用typing_extensions包来代替typing模块来解决该问题。 4. 检查你的代码是否正确导入了seaborn包,并且没有其他导入错误。 5. 如果以上方法都无法解决问题,可以尝试在你的代码中使用其他的可替代包或者更新seaborn包的版本来解决该问题。 总结: 出现ImportError: cannot import name 'Protocol' from 'typing'错误的原因可能是由于Python版本不兼容、缺少typing_extensions包或者导入错误等原因造成的。可以根据具体情况尝试上述方法来解决该问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ImportError: cannot import name ‘Literal‘ from ‘typing‘ (D:\Anaconda\envs\tensorflow\lib\typing....](https://blog.youkuaiyun.com/yuhaix/article/details/124528628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值