CentOS 5.2 Xen内核,双网卡绑定的问题及处理

 

网上已经有了不少LINUX下双网卡绑定的配置方法,俺也找着很多方法来配,但是配置过程中出现了很多问题,网上没有找到解决办法。。最后问题终于解决了,将配置方法提供给广大网友分享。

 

问题出现的过程:当CentOS以Xen内核启动时,ifconfig可以发现增加了peth0,virbr,xenbr等多种与Xen相关的“网卡”。其中virbr和xenbr属于虚拟网卡,先不予理会。而peth0则是真正的eth0物理网卡,此时eth0是虚拟网卡。这样在做双网卡绑定时就会出现问题,如果还是绑定了eth0和eth1,此时拔掉eth0的网线,查看/proc/net/bonding/bond0会依然显示eth0为“up”状态,如果绑定模式=0,则会丢一半的包(ping一下可以看出来),如果绑定模式=1,则不会切换到eth1,网络中断。

 

因此,如果要使Xen内核在双网卡绑定下工作正常,必须做到绑定的是两块物理网卡,而Xen内核启动时去使用绑定后的bond0网卡,而不是eth0,这样才能达到双网卡绑定的目的。

 

网卡未绑定时,启动顺序如下:

  1. 启动eth0和eth1
  2. 暂停eth0
  3. 将物理网卡eth0更名为peth0,启动peth0
  4. 增加虚拟网卡eth0

双网卡绑定时,我们所希望的启动顺序如下:

  1. 启动eth0和eth1
  2. 绑定eth0和eth1为bond0
  3. 暂停bond0
  4. 将bond0更名为pbond0,启动pbond0
  5. 增加虚拟绑定网卡bond0

但是再实际操作中还是遇到很多时序问题,比如上面第3步开始是Xen开始重命名物理网卡,增加虚拟网卡,如果这个时候bond0还没有生效,Xen就会继续去找eth0。大家看过很多双网卡绑定的教程,都是在/etc/rc.local里写入“ifenslave bond0 eth0 eth1”,但rc.local是在启动的最后才执行,就会导致Xen无法使用bond0。

 

具体的配置方案如下:

 

一、物理网卡配置:

 

/etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
MASTER=bond0
SLAVE=yes

 

/etc/sysconfig/network-scripts/ifcfg-eth1:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
MASTER=bond0
SLAVE=yes

 

注意:一定要填入MASTER和SLAVE参数,当填入这两个参数后,rc.local里的ifenslave就可以不写了,而且网卡启动时就自动配置slave成功,可以确保在Xen寻找网卡前绑定成功。

 

二、虚拟网卡配置:

 

/etc/sysconfig/network-scripts/ifcfg-bond0:
# Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet
DEVICE=bond0
BOOTPROTO=static
MACADDR=00:22:64:2A:FF:0C
BROADCAST=10.1.255.255
IPADDR=10.1.1.21
NETMASK=255.255.0.0
NETWORK=10.1.0.0
ONBOOT=yes
TYPE=Ethernet

 

/etc/modprobe.conf:
alias eth0 bnx2
alias eth1 bnx2
alias scsi_hostadapter cciss
alias scsi_hostadapter1 ata_piix
alias bond0 bonding
options bond0 miimon=100 mode=1

 

三、Xen配置文件修改:

 

/etc/xen/xend-config.sxp:
找到“(network-script network-bridge )”这行

修改为:“(network-script 'network-bridge netdev=bond0')”

表示要求Xen去使用bond0设备。

 

重新启动系统。。再ifconfig可以看到 eth0,eth1,bond0,pbond0全部启动成功。此时再进行拔插网线试验,可以看到/proc/net/bonding/pbond0里会正确显示eth0/eth1的up/down状态,持续ping一台主机,任意拔插一条网线不会再丢包。双网卡绑定配置成功。

 

ps. 如果在目前状态下安装虚拟机系统,网卡类别只能选择Default,默认是使用virbr,可以手工修改配置文件为xenbr,由于虚拟机直接桥接的pbond0,因此虚拟系统不用做任何设置即可享受双网卡绑定效果。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
CentOS 7.6 下创建双网卡绑定,可以使用 Linux 内核提供的固定链接聚合(bonding)技术。下面是创建双网卡绑定的步骤: 1. 确认服务器上有两个网卡,并且已经正确安装了驱动程序。 2. 安装 bonding 模块: ``` yum install -y bonding ``` 3. 编辑 `/etc/modprobe.d/bonding.conf` 文件,添加以下配置: ``` alias bond0 bonding options bonding mode=0 miimon=100 ``` 其中,`mode=0` 表示使用轮询模式(Round-Robin),`miimon=100` 表示每 100 毫秒检测一次链路状态。 4. 编辑 `/etc/sysconfig/network-scripts/ifcfg-eth0` 文件,添加以下配置: ``` DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no MASTER=bond0 SLAVE=yes BOOTPROTO=none ``` 其中,`MASTER=bond0` 表示将该网卡绑定到 bond0 接口上。 5. 编辑 `/etc/sysconfig/network-scripts/ifcfg-eth1` 文件,添加以下配置: ``` DEVICE=eth1 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no MASTER=bond0 SLAVE=yes BOOTPROTO=none ``` 同样,`MASTER=bond0` 表示将该网卡绑定到 bond0 接口上。 6. 重启网络服务: ``` systemctl restart network ``` 7. 验证双网卡绑定是否生效: ``` cat /proc/net/bonding/bond0 ``` 如果看到类似以下输出,则表示双网卡绑定已经成功: ``` Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: load balancing (round-robin) MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:ef:2f:58 Slave queue ID: 0 Slave Interface: eth1 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:ef:2f:62 Slave queue ID: 0 ``` 注意:双网卡绑定需要设备端口和交换机端口配置一致,否则会导致链路不稳定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值