首页 > 代码库 > Lnux系统网卡绑定配置详解

Lnux系统网卡绑定配置详解

一、CentOS 配置网卡绑定(bonding)

1、bonding概述

(1)作用:就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。

(2)Bonding的工作模式

1)Mode 0 (balance-rr)轮转(Round-robin)策略:从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力

2)Mode 1 (active-backup)活动-备份(主备)策略:在绑定中,只有一个slave被激活。当且仅当活动的slave接口失败时才会激活其他slave。为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见

3)Mode 3 (broadcast)广播策略:在所有的slave接口上传送所有的报文。本模式提供容错能力。

2、bonding配置(详细配置文档:/usr/share/doc/kerneldocversion/Documentation/networking

/bonding.txt)

(1)准备工作:需要关闭NetworkManager

[root@linuxidc-6 ~]# serviceNetworkManager stop

(2)创建bonding配置文件(miimon是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路,mode用来指定bonding的工作模式)

[root@linuxidc-6 ~]# cd/etc/sysconfig/network-scripts/

[root@linuxidc-6 network-scripts]#cat ifcfg-bond0  #bonding的配置

DEVICE=bond0      #设备名称

BOOTPROTO=dhcp    #IP地址获取方式

BONDING_OPTS="miimon=100mode=1"

(3)配置需要bonding的网卡

[root@linuxidc-6 network-scripts]#cat ifcfg-eth1 ifcfg-eth0  #物理网卡的配置

DEVICE=eth1   

BOOTPROTO=dhcp

MASTER=bond0    #指定主设备为bond0

SLAVE=yes        #将当前设备设置为从设备

USERCTL=no

DEVICE=eth0

BOOTPROTO=dhcp

MASTER=bond0

SLAVE=yes

USERCTL=no

(4)使配置生效(配置完成后需要重启网卡时配置生效,生效后查看网卡信息时,只有bonding设备有IP地址,物理网卡没有IP地址)

[root@linuxidc-6 network-scripts]#service network restart  #重启网卡使配置的bonding生效

[root@linuxidc-6 network-scripts]#ifconfig 

bond0    Link encap:Ethernet  HWaddr 00:0C:29:D3:7B:9B 

        inet addr:172.16.254.250  Bcast:172.16.255.255  Mask:255.255.0.0

        inet6 addr:fe80::20c:29ff:fed3:7b9b/64 Scope:Link

        UP BROADCAST RUNNING MASTERMULTICAST  MTU:1500  Metric:1

        RX packets:862 errors:0 dropped:0overruns:0 frame:0

        TX packets:23 errors:0 dropped:0overruns:0 carrier:0

        collisions:0 txqueuelen:0

        RX bytes:92932 (90.7 KiB)  TX bytes:3326 (3.2 KiB)

eth0      Link encap:Ethernet  HWaddr 00:0C:29:D3:7B:9B 

        UP BROADCAST RUNNING SLAVEMULTICAST  MTU:1500  Metric:1

        RX packets:298656 errors:0 dropped:0overruns:0 frame:0

        TX packets:9015 errors:0 dropped:0overruns:0 carrier:0

        collisions:0 txqueuelen:1000

        RX bytes:33161613 (31.6 MiB)  TX bytes:1608752 (1.5 MiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:D3:7B:9B 

        UP BROADCAST RUNNING SLAVEMULTICAST  MTU:1500  Metric:1

        RX packets:425 errors:0 dropped:0overruns:0 frame:0

        TX packets:0 errors:0 dropped:0overruns:0 carrier:0

        collisions:0 txqueuelen:1000

        RX bytes:45922 (44.8 KiB)  TX bytes:0 (0.0 b)

(5)查看bonding的信息(通过查看/proc/net/bonding/bond0能够查看网卡的的状态,在主备模式下那块网卡处于激活状态)

[root@linuxidc-6 network-scripts]#cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver:v3.7.1 (April 27, 2011)

Bonding Mode: fault-tolerance(active-backup)

Primary Slave: None

Currently Active Slave: eth0

MII Status: up

MII Polling Interval (ms): 100

Up Delay (ms): 0

Down Delay (ms): 0

3、删除bonding

[root@linuxidc-6 network-scripts]#ifconfig bond0 down  #停掉bonding

[root@linuxidc-6 network-scripts]#rm ifcfg-bond0    #删除bonding配置文件

二、CentOS 下配置网卡绑定(bonding)

1、网卡命名

(1)网卡命名机制,systemd对网络设备的命名方式

1) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1

2) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1

3) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0

4) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56

5) 上述均不可用时,则使用传统命名机制

(2) 名称组成格式

  en: Ethernet 有线局域网

  wl: wlan无线局域网

  ww: wwan无线广域网

名称类型:

  o<index>: 集成设备的设备索引号

  s<slot>: 扩展槽的索引号

  x<MAC>: 基于MAC地址的命名

  p<bus>s<slot>:enp2s1

(3)网卡设备的命名过程

第一步:udev, 辅助工具程序/lib/udev/rename_device/usr/lib/udev/rules.d/60-net.rules

第二步:biosdevname会根据/usr/lib/udev/rules.d/71-biosdevname.rules

(4)更改centos7网卡名称

CentOS从7.0版本以后,网卡的命名自动基于固件及拓扑结构和位置信息来固定。不会自动生成eth0等网卡名称,为了方便KVM的部署。此处,我们我们将网卡名称修改为eth0。

方法一:在安装系统的过程中修改网卡名称为eth0(在安装系统的选择界面,选择“install centOS 7” 按下”Tab”键在最下面加入”net.ifnames=0 biosdevname=0”如下图所示)

技术分享

方法二:编辑/etc/grub2.cfg配置文件:(加入net.ifnames=0)

[root@linuxidc ~]# cat -n/etc/grub2.cfg | grep biosdevname

  99        linux16 /vmlinuz-3.10.0-327.el7.x86_64root=UUID=90b71a77-dd23-4528-8338-d7e466927721 ro crashkernel=autobiosdevname=0 net.ifnames=0 rhgbquiet.UTF-8

或修改/etc/default/grub配置文件:(在下述行加入net.ifnames=0)

[root@linuxidc ~]#cat /etc/default/grub

……

GRUB_CMDLINE_LINUX="crashkernel=autobiosdevname=0 net.ifnames=0 rhgbquiet"

方法三:为grub2生成其配置文件

[root@linuxidc ~]#grub2-mkconfig-o /etc/grub2.cfg

注:通过方法二和方法三修改后需要重启系统是配置生效,同时也需要修改网卡配置文件中的网卡名称

 

北京网站建设公司

Lnux系统网卡绑定配置详解