首頁 > 軟體

Lnux系統網絡卡系結設定詳解

2020-06-16 17:15:27

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

註:通過方法二和方法三修改後需要重新啟動系統是設定生效,同時也需要修改網絡卡組態檔中的網絡卡名稱

更多詳情見請繼續閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2017-05/143534p2.htm


IT145.com E-mail:sddin#qq.com