网卡绑定后ifconfig bond没有bond0设备

您好,欢迎来到网络时代
服务热线:
网络改变时代,我们改变网络
欢迎您的到来,我们将竭诚为您服务
年网络时代发展历程
网络时代十五年荣获的资质荣誉一览
网络时代员工生日聚会及活动照片
各大媒体对网络时代管理层采访
我们求才若渴,深知人才的宝贵
我们将为您提供五星级服务
怎么样做好外贸网站?
外贸网站要怎么建设?
·多线接入&& ·反垃圾反病毒
·邮件监控&& ·海外手法
·邮件传真&& ·超大附件
·安全加密&& ·发送状态查询
·稳定安全&& ·海外自动转发入
从服务器购买到托管全流程讲解服务器托管知识
网络时代针对各行业做出的行业解决方案,让您在行走之中走的更远
Linux_多网卡识别顺序邦定
使用linux系统时会出现这样的情况,当你安装了某个网卡的驱动程序时,或者安装了与网卡相关的程序后。 网卡会出现所谓的漂移现象。(注意:不是飘逸)。可能的表象为: (1):网卡顺序颠倒,比如之前你的网线连接的网口为eth0,当安装某个网卡的驱动后,可能它的名字变为eth0或者eth3,等等情况。 (2):网卡名字改变,这种情况倒不是eth0到eth1的改变,而是很诡异的变化,比如eth0找不到了,多了个网卡名字叫 __tmp3__ 这个确实让人很恼火。因为有人可能会通过ifconfig | grep eth来获取信息从而完成一些开发工作,如果网卡名字变得乌七八糟了,程序肯定会出错。 (3):光口网卡和电口网卡顺序乱了,或者交叉。 总之我们的目的就是:能够指定某个网卡的名字为我们想要的物理设备。做法如下: 第一步,识别谁是谁。 要使用网卡,首现要知道哪个名字对应的哪个物理设备,做法为:从交换机拉一根网线,从上到下挨个接到网卡上面,注意每次只能接一个网卡,接上后通过ethtool命令来查看是否连着网线,比如 [ ~]# ethtool eth0Settings for eth0:Supported ports: [ MII ]Supported link modes:
10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/FullSupports auto-negotiation: YesAdvertised link modes:
10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/FullAdvertised auto-negotiation: YesSpeed: 100Mb/sDuplex: FullPort: MIIPHYAD: 2Transceiver: externalAuto-negotiation: onSupports Wake-on: gWake-on: dLink detected: yes 看到了eth0的状态为连接着网线。如果Linked detected:no,则说明没有连接网线。 如此区分开哪个设备的名字是什么,标注好。 第二步:获取每个网卡的MAC地址 ifconfig -a能看到所有网络设备。 通过 ifconfig -a | grep HWaddr 来获取每个设备的MAC地址。 比如: [ ~]# ifconfig
-a | grep HWaddreth0
Link encap:Ethernet
HWaddr 00:30:48:7F:B5:CAeth1
Link encap:Ethernet
HWaddr 00:30:48:7F:B5:CBeth2
Link encap:Ethernet
HWaddr 00:04:23:A6:81:E0eth3
Link encap:Ethernet
HWaddr 00:04:23:A6:81:E1 拿到了每个网卡的MAC地址。 第三步:进行MAC和网卡名称绑定。 我们都知道,对于RedHat的系统,网络的配置文件在:/etc/sysconfig/network-scripts/ifcfg-ethX 中存着,N=0,1,2。。。 比如: ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0# nVidia Corporation MCP55 EthernetDEVICE=eth0ONBOOT=yesHWADDR=00:30:48:7f:b5:caTYPE=EthernetNETMASK=255.255.255.0IPADDR=192.168.42.231GATEWAY=192.168.42.1BOOTPROTO=static#NAMESERVER=202.106.0.20 这个文件是对网卡进行初始化的配置文件。 比如如果我们想指定网卡MAC地址为MAC1的设备名称为ethn,那么,修改文件 /etc/sysconfig/network-scripts/ifcfg-ethn 在里面添加MAC地址绑定和名字的配置信息 DEVICE=ethn HWADDR=MAC1(比如00:30:48:7f:b5:ca) 其它配置信息不受影响。 当对所有网卡实现绑定后,reboot系统,应该就可以了。 还有一点需要注意,就是驱动对应关系的文件: /etc/modprobe.conf 要在该文件中修改,确保某个设备使用的就是对应它的驱动,比如: cat /etc/modprobe.confalias eth0 forcedethalias eth1 forcedethalias scsi_hostadapter aic79xxalias scsi_hostadapter1 sata_nvalias scsi_hostadapter2 usb-storagealias eth2 e1000alias eth3 e1000 说明eth0和eth1用的forcedeth的驱动,eth2和eth3用的是e1000的驱动。
解决方案: cd /etc/udev/rules.d 找到60-net.rules,备份该文件 mv 60-net.rules 60-net.rules.bak 新建文件60-net.rules,内容如下: [ rules.d]# cat 60-net.rules SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="你自己的网卡1的mac地址", IMPORT="/lib/udev/rename_device %k eth0" SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="你自己的网卡2的mac地址", IMPORT="/lib/udev/rename_device %k eth1" 其中需要注意的是,你要将你自己的网卡的mac地址做相应的更改。 重启电脑,一切ok。
此答案有用吗?
(查看: 2891)
(查看: 1243)
(查看: 572)
(查看: 468)
(查看: 476)
旗下网站:&|&
&|&&|&&|&&|&&|&
按3(售后咨询)
增值电信业务经营许可证:
无数荣誉信心保证国际认可优质服务Linux的网卡由eth0变成了eth1,如何修复
Linux的网卡由eth0变成了eth1,如何修复
使用wmware安装了linux,安装成功后,使用的网卡是eth0,没有eth1。但是用过一段时间后,不知道为什么eth0无法使用,系统却自动生成了eth1网卡,这可以使用ifconfig命令看的到。
[user@localhost ~]$ ifconfig
eth1 & & &Link encap:Ethernet &HWaddr 00:0C:29:A9:22:9D &
& & & & & inet addr:192.168.1.108 &Bcast:192.168.1.255 &Mask:255.255.255.0
& & & & & inet6 addr: fe80::20c:29ff:fea9:229d/64 Scope:Link
& & & & & UP BROADCAST RUNNING MULTICAST &MTU:1500 &Metric:1
& & & & & RX packets:313 errors:0 dropped:0 overruns:0 frame:0
& & & & & TX packets:182 errors:0 dropped:0 overruns:0 carrier:0
& & & & & collisions:0 txqueuelen:1000&
& & & & & RX bytes:6 KiB) &TX bytes:2 KiB)
& & & & & Interrupt:19 Base address:0x2000&
lo & & & &Link encap:Local Loopback &
& & & & & inet addr:127.0.0.1 &Mask:255.0.0.0
& & & & & inet6 addr: ::1/128 Scope:Host
& & & & & UP LOOPBACK RUNNING &MTU:16436 &Metric:1
& & & & & RX packets:1788 errors:0 dropped:0 overruns:0 frame:0
& & & & & TX packets:1788 errors:0 dropped:0 overruns:0 carrier:0
& & & & & collisions:0 txqueuelen:0&
& & & & & RX bytes:8 KiB) &TX bytes:8 KiB)
使用service network restart指令来重新启动网络服务时,会看到有eth0网卡不存在的提示。
经过百度,了解了一些信息,特此记录在此,以备忘。
为什么eth0会变成eth1?
很多Linux distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。而对于新的,VMware会自动为虚拟机的网卡生成MAC地址,当你克隆或者重装虚拟机软件时,由于你使用的是以前虚拟硬盘的信息,而该系统中已经有eth0的信息,对于这个新的网卡,udev会自动将其命名为eth1(累加的原则),所以在你的系统启动后,你使用ifconfig看到的网卡名为eth1。
如何恢复到eth0?
在fedora中,udev记录网络规则的脚本为:/etc/udev/rules.d/70-persistent-net.rules
[user@localhost ~]$ vi /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
# You can modify it, as long as you keep each rule on a single line.
# PCI device 0x0 (pcnet32)
SUBSYSTEM==&net&, ACTION==&add&, DRIVERS==&?*&, ATTR{address}==&00:0c:29:5a:6c:73&, ATTR{type}==&1&, KERNEL==&eth*&, NAME=&eth0&
SUBSYSTEM==&net&, ACTION==&add&, DRIVERS==&?*&, ATTR{address}==&00:0c:29:a9:22:9d&, ATTR{type}==&1&, KERNEL==&eth*&, NAME=&eth1&
打开该文件,这时你会发现,里面有eth0,eth1两个网卡的信息,但实际上你ifconfig时只能发现eth1一个网卡的信息,这时因为eth0根本就不存在。
将其中eth0的信息删掉,并将eth1信息中的设备名改为eth0,重启系统,你看到的网卡就是eth0了,或者删掉其中所有的信息重启系统udev会帮你发现新的设备的。
另外还有一个启动脚本文件/etc/sysconfig/network-scripts/ifcfg-eth0,该文件中的mac地址为原来eth0网卡的物理地址,而虚拟机为eth1分配新的物理地址,故启动脚本中的信息与实际信息时不匹配的,将MAC的地址信息修改为70-persistent-net.rules中的eth1的MAC地址,再次重启网络,就完全恢复到以前eth0网卡的状态了。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'coolerfeng 的BLOG
用户名:coolerfeng
文章数:243
评论数:657
访问量:1209970
注册日期:
阅读量:24883
阅读量:274867
阅读量:1005908
阅读量:153259
51CTO推荐博文
对于bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多个用户同时使用的情况下,网络压力是极大的,特别是SAMABA和NFS服务器。为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有限的资源的情况下,实现网络负载均衡,最好的办法就是 bonding ;
另一种情况就是服务器的一个网卡失效或者网络连接意外断开,如果做了bonding就可以切换到另一个网卡的网络连接上.保证服务的不中断.
详细的资料可以参考:
下面试验一下热备模式.
首先要看linux是否支持bonding,RHEL4已经默认支持了.(大部分发行版都支持)
# modinfo bonding
filename:&&&&&& /lib/modules/2.6.18-8.el5/kernel/drivers/net/bonding/bonding.koauthor:&&&&&&&& Thomas Davis,
and many othersdescription:&&& Ethernet Channel Bonding Driver, v3.0.3version:&&&&&&& 3.0.3license:&&&&&&& GPLsrcversion:&&&& C2FDF28EF7D98
如果有类似上面的信息输出,说明已经支持了.
如果没有,说明内核不支持bonding,需要重新编译内核
编译内核的步骤这里就不多写了,在make menuconfig里面
找到Bonding driver support这样的对话框,选中它.
如果是模块编译,还需要挂载模块.挂载bonding 模块的方法;
[root@localhost#] modprobe bonding
如果/sbin/ifenslave没有,我们还需要把它也单独编译出来[root@lin:/home/beinan#] cd /usr/src/linux-2.6.20/Documentation/networking[root@lin:/home/networking#] gcc -Wall -Wstrict-prototypes -O -I/usr/src/linux-2.6.20/include ifenslave.c -o ifenslave
[root@lin:/home/networking#] cp ifenslave /sbin/ifenslave
1.编辑虚拟网络接口配置文件,指定网卡IP&
没有这个文件我们可以从以前的配置文件复制一个过来,减少输入的文字.& #cd /etc/sysconfig/network-scripts/
#cp ifcfg-eth0 ifcfg-bond0
#vi&ifcfg-bond0& 将第一行改成&DEVICE=bond0& #&cat&ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static IPADDR=192.168.1.200
NETMASK=255.255.255.0 BROADCAST=192.168.1.255 ONBOOT=yes TYPE=Ethernet
接下来修改以前的网卡的设置[root@rhas-13&network-scripts]#&cat&ifcfg-eth0& DEVICE=eth0 ONBOOT=yes BOOTPROTO=none [root@rhas-13&network-scripts]#&cat&ifcfg-eth1& DEVICE=eth0 ONBOOT=yes BOOTPROTO=none //网卡启动协议.这里我试验了static,dhcp,none发现没有什么区别&
3&#&vi&/etc/moprobe.conf& (旧的版本可能是modules.conf)编辑&/etc/moprobe.conf&文件,加入如下一行内容,以使系统在启动时加载bonding模块,对外虚拟网络接口设备为&bond0&   加入下列行& alias&bond0&bonding& options&bond0&miimon=100&mode=1
alias net-pf-10 off& //这行是关闭ipv6支持,也可以不要)
说明:miimon是用来进行链路监测的。&比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。 &&&mode=0表示load&balancing&(round-robin)为负载均衡方式,两块网卡都工作。 &&&mode=1表示fault-tolerance&(active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.&& bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用 4&#&vi&/etc/rc.d/rc.local& 加入& ifenslave&bond0&eth0&eth1&
重启后我们用ifconfig查看网卡信息,可以看到多出一个bond0网卡.
bond0&&&& Link encap:Ethernet& HWaddr 00:0C:29:C2:B3:44& &&&&&&&&& inet addr:192.168.1.200& Bcast:192.168.1.255& Mask:255.255.255.0&&&&&&&&& UP BROADCAST RUNNING MASTER MULTICAST& MTU:1500& Metric:1&&&&&&&&& RX packets:48 errors:0 dropped:0 overruns:0 frame:0&&&&&&&&& TX packets:38 errors:0 dropped:0 overruns:0 carrier:0&&&&&&&&& collisions:0 txqueuelen:0 &&&&&&&&& RX bytes: KiB)& TX bytes: KiB)
eth0&&&&& Link encap:Ethernet& HWaddr 00:0C:29:C2:B3:44& &&&&&&&&& UP BROADCAST RUNNING SLAVE MULTICAST& MTU:1500& Metric:1&&&&&&&&& RX packets:44 errors:0 dropped:0 overruns:0 frame:0&&&&&&&&& TX packets:46 errors:0 dropped:0 overruns:0 carrier:0&&&&&&&&& collisions:0 txqueuelen:1000 &&&&&&&&& RX bytes: KiB)& TX bytes: KiB)&&&&&&&&& Interrupt:169 Base address:0x2000
eth1&&&&& Link encap:Ethernet& HWaddr 00:0C:29:C2:B3:44& &&&&&&&&& UP BROADCAST RUNNING SLAVE MULTICAST& MTU:1500& Metric:1&&&&&&&&& RX packets:8 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:861 (861.0 b)& TX bytes:0 (0.0 b)&&&&&&&&& Interrupt:193 Base address:0x2080
lo&&&&&&& Link encap:Local Loopback& &&&&&&&&& inet addr:127.0.0.1& Mask:255.0.0.0&&&&&&&&& UP LOOPBACK RUNNING& MTU:16436& Metric:1&&&&&&&&& RX packets:12 errors:0 dropped:0 overruns:0 frame:0&&&&&&&&& TX packets:12 errors:0 dropped:0 overruns:0 carrier:0&&&&&&&&& collisions:0 txqueuelen:0 &&&&&&&&& RX bytes:960 (960.0 b)& TX bytes:960 (960.0 b)
那也就是说在主备模式下,当一个网络接口失效时(例如主交换机掉电等),不回出现网络中断,系统会按照cat&/etc/rc.d/rc.local里指定网卡的顺序工作,机器仍能对外服务,起到了失效保护的功能.
可以查看到bond0的工作状态[root@localhost ~]# cat /proc/net/bonding/bond0Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006)
Bonding Mode: fault-tolerance (active-backup)Primary Slave: NoneCurrently Active Slave: eth0MII Status: upMII Polling Interval (ms): 100Up Delay (ms): 0Down Delay (ms): 0
Slave Interface: eth0MII Status: upLink Failure Count: 0Permanent HW addr: 00:0c:29:c2:b3:44
Slave Interface: eth1MII Status: upLink Failure Count: 0Permanent HW addr: 00:0c:29:c2:b3:4e
以上是一种实现方法.公司的数据库服务器上采用了另一种配置方法
主要区别在网卡的配置文件上:
vi ifcfg-eth0
DEVICE=eth0#USERCTL=noBOOTPROTO=noneONBOOT=yesMASTER=bond0SLAVE=yes
ifcfg-eth1中也加入红色的两行,
/etc/rc.local中的ifenslave&bond0&eth0&eth1& 可以省略掉.
在虚拟机中试验一下效果.
从另一台机器ping我们刚才设置的IP地址,然后在虚拟机vmware下面,点其中的一个网卡
选中disconnect(断开)
可以看到ping只是出现了两个time out后就又恢复了正常.说明我们的配置起作用了.
650) this.width=650;" onclick='window.open("/viewpic.php?refimg=" + this.src)' style="width: 710 height: 499px" alt="" src="/attachment/872625.jpg" border="0" />
需要说明的是如果想做成负载均衡,仅仅设置这里options&bond0&miimon=100&mode=0是不够的,还需要设置交换机的端口.
从原理分析一下(bond运行在mode 0下):mode 0下bond所绑定的网卡的IP都被修改成一样的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。所以mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址
由于家里没有三层交换机,这里的试验留给网友自行验证了.
&本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
16:26:50 21:11:34 08:45:45 10:26:10 18:26:47 12:17:44 12:15:05 10:36:37 10:41:48 17:24:50

我要回帖

更多关于 ifconfig 删除网卡 的文章

 

随机推荐