天天看點

RedHat Enterprise Linux 6.X系統雙網卡綁定操作執行個體

先看看普通網卡IP位址的配置,修改/etc/sysconfig/network-scripts/ifcfg-eth0檔案内容為:

RHEL6下bond的雙網卡綁定服務

操作步驟和注意事項如下:

1、注意事項:

a、首先确認要綁定的是哪2個網口,避免綁定時綁錯網口。最好綁定為不同實體網卡,比如eth0--eth3在一個實體網卡上,eth4--eth7在另一個實體網卡上,<在系統中判定網卡是否為同一張網卡根據MAC位址确認,MAC位址中隻有最後一位不同的就屬于同一個網卡>。綁定可以考慮eth0和eth4為一組,這樣即使網卡出現問題也有備援。

RedHat Enterprise Linux 6.X系統雙網卡綁定操作執行個體

以上例子可以看出eth0和eth1的MAC位址是排序差一位,是以eth0和eth1是在一塊實體網卡上,而eth5和eth7在另一塊實體網卡上。

其實到該步還不算完美,相應也同樣對應的是兩台交換件才達到完美備援;也就是說用eth0和eth5為一組綁定bond0,分别在同一台實體機上的不同實體網卡上,連接配接到不同的交換機上。這樣就完美了。(看下圖)好好想想是否是這樣呢~~~~

b、網卡配置檔案需要注意的地方為,在各個ethX網卡檔案中千萬不要把MAC位址給注釋掉,一定要保留。但是在bondX檔案中千萬不要有MAC位址有效行。

c、如果是做RAC服務,最好把正常通路的網絡和心跳網絡分開。心跳網絡要在交換機上在不同的vlan下(與正常網絡不在同一個網段),或者兩台主機的心跳網口直連即可。

心跳的bond網卡配置不要有網關。不然會和正常業務網絡發生沖突。

 d、關閉和禁用開機啟動服務:NetworkManager服務。别問為什麼,關閉後會省去很多不必要的麻煩~~~~

2、說明:

這裡以綁定eth0和eth1的2個網口為例。

配置檔案都在/etc/sysconfig/network-scripts/目錄下。

操作步驟

綁定前需要徹底關閉NetwortManager服務,否則會和bond網卡沖突

1、編輯新的ifcfg-bond0檔案,一定不要有MAC存在。

cd/etc/sysconfig/network-scripts/

cp–rfifcfg-eth0ifcfg-bond0##複制ifcfg-eth0到ifcfg-bond0

ls##檢視檔案,即可看到有ifcfg-bond0檔案

增加或修改如下内容:

注釋:

#BONDING_OPTS=”mode=0 miimon=100”  #負載模式(round-robin)。(交換機端口需要配置聚合模式)

#BONDING_OPTS=”mode=1 miimon=100 primary=eth0” ##主備模式(active-backup),設定eth0為主通信網口.(交換機端口需取消聚合模式,變為access模式)

儲存退出

2、分别編輯ifcfg-eth0和ifcfg-eth1檔案

注意:其他未要求設定網口,需将網卡配置檔案中的IPADDR、NETMASK、NETWORK、BROADCAST、GATEWAY全部屏蔽或去掉,MAC位址必須保留。以免硬碟網卡綁定,造成網卡順序漂移。

不過不用擔心,在linux系統中有個記錄eth裝置網卡名和MAC位址的對應關系表

在/etc/sysconfig/udev/rules.d/70-presistent-net.rules   内容見上圖截圖。

3、修改/etc/modprobe.d/dist.conf檔案,添加以下内容:

說明:

miimon是用來進行鍊路監測的。比如:miimon=100,那麼系統每100ms監測一次鍊路連接配接狀态,如果有一條線路不通就轉入另一條線路;

mode的值表示工作模式,他共有7種模式,常用的為0,1兩種,需根據交換機可提供的工作模式選擇。也可以選擇6是自适應模式。

mode=0表示loadbalancing(round-robin)為負載均衡方式,兩塊網卡都工作。

mode=1表示fault-tolerance(active-backup)提供備援功能,工作方式是主備的工作方式,也就是說預設情況下隻有一塊網卡工作,另一塊做備份。以下是0和1模式下的配置和交換機需要的配置:

#BONDING_OPTS=”mode=0 miimon=100”  #負載模式(round-robin)。(交換機端口需要配置聚合模式)

※注意:

a、bonding隻能提供鍊路監測,即從主機到交換機的鍊路是否接通。如果隻是交換機對外的鍊路down掉了,而交換機本身并沒有故障,那麼bonding會認為鍊路沒有問題而繼續使用。

b、設定的模式要與交換機設定的模式一緻。

4、重新開機系統

系統啟動時,會自動加載bond子產品和激活備援網卡設定。可使用以下指令進行判斷:

#ifconfig

即可看到bond0的資訊,bond0會自動擷取eth0的MAC位址。

若确認bond0網卡已經激活,可通過插拔網線或ifdown ethX操作進行切換測試。在切換過程中,網絡連接配接正常即可。

以下截圖僅供參考:

例子一:單台主機

該例子中的網絡拓撲圖正如開頭所示。。。。。。

看mac位址和裝置名稱對應關系(不同顔色線條---MAC最後一位)

RedHat Enterprise Linux 6.X系統雙網卡綁定操作執行個體

配置檔案:

RedHat Enterprise Linux 6.X系統雙網卡綁定操作執行個體

mode=0(balance-rr)

    表示負載分擔round-robin,并且是輪詢的方式比如第一個包走eth0,第二個包走eth1,直到資料包發送完畢。

    優點:流量提高一倍

    缺點:需要接入交換機做端口聚合,否則可能無法使用

核心文檔中有說明:bond0擷取mac位址有兩種方式,一種是從第一個活躍網卡中擷取mac位址,然後其餘的SLAVE網卡的mac位址都使用該mac位址;

                    另一種是使用fail_over_mac參數,是bond0使用目前活躍網卡的mac位址,mac位址或者活躍網卡的轉換而變。

配置完後的效果,(看綁定順序和MAC位址)

RedHat Enterprise Linux 6.X系統雙網卡綁定操作執行個體

比較細心的人就會發現,bond0、eth0、eth1這組的三個網卡的MAC位址是一樣的。

綁定網卡後,在作業系統中檢視到的MAC位址是一樣的,那麼在交換機中查到的綁定網卡對應交換機端口學到的mac也是一樣的。

RedHat Enterprise Linux 6.X系統雙網卡綁定操作執行個體

驗證:

可以down掉其中一塊網卡(或從主機端,或從交換機端),觀察ping的狀态~~~~

RedHat Enterprise Linux 6.X系統雙網卡綁定操作執行個體
RedHat Enterprise Linux 6.X系統雙網卡綁定操作執行個體
RedHat Enterprise Linux 6.X系統雙網卡綁定操作執行個體

ping的測試: down掉其中一塊網卡後 依然生效

RedHat Enterprise Linux 6.X系統雙網卡綁定操作執行個體

常見的幾種問題:

1、别的主機ping這台主機的ping包,丢1個、通一個。表示網卡負載模式失效。需要檢查交換機的port口是否是聚合模式和主機段的網卡是否出現問題。

RedHat Enterprise Linux 6.X系統雙網卡綁定操作執行個體

文章末尾提供下:網卡綁定的所有模式參考(資料來自于RedHat官網):

Bonding的模式一共有7種:

#defineBOND_MODE_ROUNDROBIN       0   (balance-rr模式)網卡的負載均衡模式

#defineBOND_MODE_ACTIVEBACKUP     1   (active-backup模式)網卡的容錯模式

#defineBOND_MODE_XOR              2   (balance-xor模式)需要交換機支援

#defineBOND_MODE_BROADCAST        3    (broadcast模式)

#defineBOND_MODE_8023AD           4   (IEEE 802.3ad動态鍊路聚合模式)需要交換機支援

#defineBOND_MODE_TLB              5   自适應傳輸負載均衡模式

#defineBOND_MODE_ALB              6   網卡虛拟化方式

 bonding子產品的所有工作模式可以分為兩類:多主型工作模式和主備型工作模式,balance-rr 和broadcast屬于多主型工作模式而active-backup屬于主備型工作模式。(balance-xor、自适應傳輸負載均衡模式(balance-tlb)和自适應負載均衡模式(balance-alb)也屬于多主型工作模式,IEEE 802.3ad動态鍊路聚合模式(802.3ad)屬于主備型工作模式。

詳細介紹這7種模式:

1、balance-rr (mode=0)

輪轉(Round-robin)政策:從頭到尾順序的在每一個slave接口上面發送資料包。本模式提供負載均衡和容錯的能力。

2、active-backup(mode=1)

活動-備份(主備)政策:在綁定中,隻有一個slave被激活。當且僅當活動的slave接口失敗時才會激活其他slave。為了避免交換機發生混亂此時綁定的MAC位址隻有一個外部端口上可見。在bongding的2.6.2及其以後的版本中,主備模式下發生一次故障遷移時,bonding将在新激活的slave上會送一個或者多個gratuitous ARP。bonding的主salve接口上以及配置在接口上的所有VLAN接口都會發送gratuitous ARP,隻要這些接口上配置了至少一個IP位址。VLAN接口上發送的的gratuitous ARP将會附上适當的VLAN id。本模式提供容錯能力,primary option,documented below會影響本模式的行為。

3、balance-xor(mode=2)

XOR政策:基于所選擇的傳送hash政策。

  本模式提供負載均衡和容錯的能力。

4、broadcast(mode=3)

廣播政策:在所有的slave接口上傳送所有的封包。本模式提供容錯能力。

5、802.3ad(mode=4)

IEEE 802.3ad 動态鍊路聚合。建立共享相同的速率和雙工模式的聚合組。能根據802.3ad規範利用所有的slave來建立聚合鍊路。Salve的出站選擇取決于傳輸的hash政策,預設政策是簡單的XOR政策,而hash政策則可以通xmit_hash_policy選項加以改變。需要注意的是:不是所有的傳輸政策都與802.3ad相容,尤其是802.3ad标準的43.2.4章節中關于 packet mis-ordering要求的地方。不同個體的實作往往出現很大的不相容。

先決條件:

  1. 每個slave的基本驅動支援Ehtool擷取速率和雙工狀态。

  2.交換機支援IEEE 802.3ad動态鍊路聚合。大多數的交換機都需要使用某種配置方式來啟用802.3ad模式。IEEE 802.3ad 是執行鍊路聚合的标準方法

均衡算法一共為三種

BONDING_OPTS="mode=4 miimon=100 xmit_hash_policy=layer2"      2層模式=IP

BONDING_OPTS="mode=4 miimon=100 xmit_hash_policy=layer2+3"   2+3層模式 =MAC+IP

BONDING_OPTS="mode=4 miimon=100 xmit_hash_policy=layer3+4"      3+4層模式=IP+端口

6、balance-tlb(mode=5)

自适應傳輸負載均衡:信道綁定不需要特殊的交換機支援。出口流量的分布取決于目前每個slave的負載(計算相對速度)。進口流量從目前的slave的接收。如果接收salve出錯,其他的slave接管失敗的slave的MAC位址繼續接收。

  先決條件:

  每個slave的基本驅動支援Ehtool擷取速率狀态。

7、balance-alb(mode=6)

自适應負載均衡:包括balance-tlb(模式5)以及用于IPV4流量的接收負載均衡,并且不需要特殊的交換機支援。接收負載均衡通過ARP協商實作。bonding的驅動攔截本機發出的ARP Replies(ARP回應封包),并且用bond的某一個slave的硬體位址改寫ARP封包的源位址,使得本伺服器對不同的裝置使用不同的硬體位址。本伺服器建立的連接配接的接收流量也是負載均衡的。當本機發送ARP Request時,bonding驅動通過ARP封包複制并儲存節點的IP資訊。當從其他節點接收到ARP Reply,bonding驅動擷取節點的硬體位址并且會回應一個包含綁定好的slave的硬體位址的ARP Reply給發送的節點。用ARP協商的負載均衡的有一個問題是每次用bond的硬體位址廣播ARP封包,那麼其他節點發送的資料全部集中在一個slave上,處理ARP更新給其他所有節點的時候,每個節點會重新學習硬體位址,導緻流量重新配置設定。當新加入一個slave或者一個非激活的slave重新激活的時候也會導緻接收流量重新配置設定。接收流量負載是串行(輪轉)的配置設定在bond的一組速率最高的slave上。

  當一個鍊路重連或者一個新的slave加入的時候,bond會重新初始化ARP Replies給所有的用戶端。updelay參數的值必須等于或者大于交換機的forwarding delay,以免ARP Replies被交換機阻塞。

  1.每個slave的基本驅動支援Ehtool擷取速率狀态。

  2. 基本驅動支援當裝置打開時重新設定硬體位址。也要求每一個slave具有唯一的硬體位址。如果curr_active_slave失敗,它的硬體位址被新選上的curr_active_slave硬體位址來替換。

寫在最後比較煩人的分工問題:

   如何确定交換機端口與作業系統中網卡的對應關系:

方法1:mac位址比對法

       在作業系統 未做任何網卡綁定操作前,把交換機上該端口學到mac位址,   (一定是未做綁定前統計。如綁定後交換機端口學到的mac是一樣的)

      與作業系統中查到的mac進行一一對比,進而确定交換機端口與作業系統中網卡的對應關系:

方法2:互相配合down/up法

    1、記錄作業系統目前網卡的鍊路狀态;

       a、在作業系統中使用“ifup 網卡名稱”指令,把所有網卡up下,

       b、通過“ethtool 網卡名稱”确認鍊路狀态是否為yes,并記錄;

    2、确定交換機端口對應的實體主機網卡

       a、在交換機端down掉對應的端口(可以根據學到mac位址進行查找端口);

       b、檢視作業系統中網卡的鍊路狀态;

     以上反複操作可以确定:要綁定的交換機端口與作業系統中網卡的對應關系。

方法3:作業系統 獨立确定法

    很多時候交換機操作劃分vlan端口,是不會與你溝通太多,比如提供mac位址等

    在這種情況下(确定已經把那個端口綁定到指定的vlan、且綁定的ip位址已經存在)

    就需要有自己确定資訊的方法、不斷嘗試了。

    a、确定單網卡的網絡是否通;

        所有鍊路up的網卡,配置下指定的ip位址,可以ping通網關代表網絡是通的,證明該網卡是劃分到vlan裡的。

        例:作業系統中有4塊鍊路狀态UP的網卡(“ethtool 網卡名稱”),且已經在交換機劃分到vlan中。該vlan的ip位址已經知道

                  ifup  eth0 ;激活eth0的網卡

                  ethtool  eth0 ;檢視鍊路狀态(最後一行)是否為yes

                  如鍊路狀态up,配置eth0卡的ip位址(vlan對應位址-已經确定的)。如ping通網關,該網卡可用于雙網卡綁定;

    b、如此上述操作後确定兩塊或多塊網卡後,就可以斷定是否用作綁定的網卡。

繼續閱讀