1. 程式人生 > >Lnux系統網卡綁定配置詳解

Lnux系統網卡綁定配置詳解

ole osd 接口 當前 onf prim multi pac lin

一、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

[[email protected] ~]# serviceNetworkManager stop

(2)創建bonding配置文件(miimon是用來進行鏈路監測的。如果miimon=100,那麽系統每100ms 監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路,mode用來指定bonding的工作模式)

[[email protected] ~]# cd/etc/sysconfig/network-scripts/

[[email protected] network-scripts]#cat ifcfg-bond0 #bonding的配置

DEVICE=bond0 #設備名稱

BOOTPROTO=dhcp #IP地址獲取方式

BONDING_OPTS="miimon=100mode=1"

(3)配置需要bonding的網卡

[[email protected] 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地址)

[[email protected] network-scripts]#service network restart #重啟網卡使配置的bonding生效

[[email protected] 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能夠查看網卡的的狀態,在主備模式下那塊網卡處於激活狀態)

[[email protected] 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

[[email protected] network-scripts]#ifconfig bond0 down #停掉bonding

[[email protected] 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)

[[email protected] ~]# 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)

[[email protected] ~]#cat /etc/default/grub

……

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

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

[[email protected] ~]#grub2-mkconfig-o /etc/grub2.cfg

註:通過方法二和方法三修改後需要重啟系統是配置生效,同時也需要修改網卡配置文件中的網卡名稱

北京網站建設公司

Lnux系統網卡綁定配置詳解