1. 程式人生 > >Linux雙網絡卡繫結bond詳解

Linux雙網絡卡繫結bond詳解

1 什麼是bond

   網絡卡bond是通過多張網絡卡繫結為一個邏輯網絡卡,實現本地網絡卡的冗餘,頻寬擴容和負載均衡,在生產場景中是一種常用的技術。Kernels 2.4.12及以後的版本均供bonding模組,以前的版本可以通過patch實現。可以通過以下命令確定核心是否支援 bonding:

1 2 3 [[email protected] network-scripts]#cat /boot/config-2.6.32-573.el6.x86_64 |grep -i bonding CONFIG_BONDING=m
[[email protected] network-scripts]#

2 bond的模式

bond的模式常用的有兩種:

  mode=0(balance-rr)

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

    優點:流量提高一倍

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

  mode=1(active-backup)

    表示主備模式,即同時只有1塊網絡卡在工作。

    優點:冗餘性高

    缺點:鏈路利用率低,兩塊網絡卡只有1塊在工作

bond其他模式:

  mode=2(balance-xor)(平衡策略)

    表示XOR Hash負載分擔,和交換機的聚合強制不協商方式配合。(需要xmit_hash_policy,需要交換機配置port channel)

    特點:基於指定的傳輸HASH策略傳輸資料包。預設的策略是:(源MAC地址 XOR 目標MAC地址) % slave數量。其他的傳輸策略可以通過xmit_hash_policy選項指定,此模式提供負載平衡和容錯能力

  mode=3(broadcast)(廣播策略)

    表示所有包從所有網路介面發出,這個不均衡,只有冗餘機制,但過於浪費資源。此模式適用於金融行業,因為他們需要高可靠性的網路,不允許出現任何問題。需要和交換機的聚合強制不協商方式配合。

    特點:在每個slave介面上傳輸每個資料包,此模式提供了容錯能力

  mode=4(802.3ad)(IEEE 802.3ad 動態連結聚合)

    表示支援802.3ad協議,和交換機的聚合LACP方式配合(需要xmit_hash_policy).標準要求所有裝置在聚合操作時,要在同樣的速率和雙工模式,而且,和除了balance-rr模式外的其它bonding負載均衡模式一樣,任何連線都不能使用多於一個介面的頻寬。

    特點:建立一個聚合組,它們共享同樣的速率和雙工設定。根據802.3ad規範將多個slave工作在同一個啟用的聚合體下。外出流量的slave選舉是基於傳輸hash策略,該策略可以通過xmit_hash_policy選項從預設的XOR策略改變到其他策略。需要注意的是,並不是所有的傳輸策略都是802.3ad適應的,尤其考慮到在802.3ad標準43.2.4章節提及的包亂序問題。不同的實現可能會有不同的適應性。

    必要條件:

        條件1:ethtool支援獲取每個slave的速率和雙工設定

        條件2:switch(交換機)支援IEEE802.3ad Dynamic link aggregation

        條件3:大多數switch(交換機)需要經過特定配置才能支援802.3ad模式

  mode=5(balance-tlb)(介面卡傳輸負載均衡)

    是根據每個slave的負載情況選擇slave進行傳送,接收時使用當前輪到的slave。該模式要求slave介面的網路裝置驅動有某種ethtool支援;而且ARP監控不可用。

    特點:不需要任何特別的switch(交換機)支援的通道bonding。在每個slave上根據當前的負載(根據速度計算)分配外出流量。如果正在接受資料的slave出故障了,另一個slave接管失敗的slave的MAC地址。

    必要條件:

        ethtool支援獲取每個slave的速率

  mode=6(balance-alb)(介面卡適應性負載均衡)

    在5的tlb基礎上增加了rlb(接收負載均衡receiveload balance).不需要任何switch(交換機)的支援。接收負載均衡是通過ARP協商實現的.

    特點:該模式包含了balance-tlb模式,同時加上針對IPV4流量的接收負載均衡(receiveload balance, rlb),而且不需要任何switch(交換機)的支援。接收負載均衡是通過ARP協商實現的。bonding驅動截獲本機發送的ARP應答,並把源硬體地址改寫為bond中某個slave的唯一硬體地址,從而使得不同的對端使用不同的硬體地址進行通訊。來自伺服器端的接收流量也會被均衡。當本機發送ARP請求時,bonding驅動把對端的IP資訊從ARP包中複製並儲存下來。當ARP應答從對端到達時,bonding驅動把它的硬體地址提取出來,併發起一個ARP應答給bond中的某個slave。使用ARP協商進行負載均衡的一個問題是:每次廣播 ARP請求時都會使用bond的硬體地址,因此對端學習到這個硬體地址後,接收流量將會全部流向當前的slave。這個問題可以通過給所有的對端傳送更新(ARP應答)來解決,應答中包含他們獨一無二的硬體地址,從而導致流量重新分佈。當新的slave加入到bond中時,或者某個未啟用的slave重新啟用時,接收流量也要重新分佈。接收的負載被順序地分佈(round robin)在bond中最高速的slave上當某個鏈路被重新接上,或者一個新的slave加入到bond中,接收流量在所有當前啟用的slave中全部重新分配,通過使用指定的MAC地址給每個 client發起ARP應答。下面介紹的updelay引數必須被設定為某個大於等於switch(交換機)轉發延時的值,從而保證發往對端的ARP應答不會被switch(交換機)阻截。

bond模式小結:

    mode5和mode6不需要交換機端的設定,網絡卡能自動聚合。mode4需要支援802.3ad。mode0,mode2和mode3理論上需要靜態聚合方式。

3 配置bond

測試環境:

1 2 3 4 5 [[email protected] ~]# cat/etc/redhat-release CentOS release 6.7 (Final) [[email protected] ~]# uname -r 2.6.32-573.el6.x86_64 [[email protected]~]#

1、配置物理網絡卡

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [[email protected] network-scripts]#cat ifcfg-eth0     DEVICE=eth0 TYPE=Ethernet

相關推薦

Linuxbond

1 什麼是bond    網絡卡bond是通過多張網絡卡繫結為一個邏輯網絡卡,實現本地網絡卡的冗餘,頻寬擴容和負載均衡,在生產場景中是一種常用的技術。Kernels 2.4.12及以後的版本均供bonding模組,以前的版本可以通過patch實現。可以通過以下命

VMware虛擬機器Linux配置

一、VMware虛擬機器新增一個網路介面卡。 選擇自己需要的模式型別 二、啟動虛擬機器,配置網絡卡 按原先配置網絡卡的方式配置完(ip地址及預設閘道器還有網絡卡名不能跟原先的一樣) 重啟所有網絡卡(service network restart)後檢查網絡卡 三、測試新增網絡卡環境

centos 6.4系統配置

文章出處:http://blog.chinaunix.net/uid-29179844-id-4214001.html Linux雙網絡卡繫結實現就是使用兩塊網絡卡虛擬成為一塊網絡卡(需要交換機支援),這個聚合起來的裝置看起來是一個單獨的乙太網介面裝置,通俗點講就是兩

Linux指令碼

linux運維及配置工作中,常常會用到雙網絡卡繫結,少數幾臺伺服器的配置還好,如果是需要配置幾十甚至上百臺,難免會枯燥乏味,易於出錯,我編寫了這個雙網絡卡繫結的輔助指令碼,可傻瓜式地完成linux雙網絡卡繫結工作,當然,該指令碼主要還是用於小批量的系統配置,如需配置大量的伺服器,可提取指令碼中的bonding

Linux之bond0

1、什麼是bond?    網絡卡bond是通過多張網絡卡繫結為一個邏輯網絡卡,實現本地網絡卡的冗餘,頻寬擴容和負載均衡,在生產場景中是一種常用的技術。Kernels 2.4.12及以後的版本均供bonding模組,以前的版本可以通過patch實現。 2、實現原理:  

學習記錄——Linux

1#檢視網絡卡連線資訊。 nmcli connection show 2#刪除網絡卡配置資訊。 nmcli connection delete 網絡卡名稱或者通用唯一識別符號(即UUID) 3#新增虛擬網絡卡bond。 nmcli connection ad

Linux 測試

先介紹一下情況,伺服器A和伺服器B都是CentOS 4.6的系統,現在要做HA Cluster,為了避免裂腦的發生,要提高心跳鏈路的可靠性,下圖是現時的連線情況,伺服器A的eth2、eth3分別和伺服器B的eth2、eth3相連(沒有順序關係),所有網絡卡都是千兆網絡卡,拓撲圖如下所示: 在介紹一起硬

linux 以及解除方法

Centos6.X配置網絡卡繫結 (主要了解三種模式:mode=0,1,6.) 先停止NetworkManager service NetworkManager stop  chkconfig NetworkManager off   //開機自啟動 關閉 在/etc/sy

linux

service NetworkManager stop chkconfig --level  2345 NetworkManager off 2.網絡卡1配置 cd /etc/sysconfig/network-scripts [[email protected] network-scripts]#

轉帖:Linux一個IP,實現容錯或負載均衡

其實早在08年9月就做了這個了,只不過最近在學RHCE的時候發現也有bond方面的內容。         發出來大家也學習一下。 實驗環境: CentOS5.3 eth0 eth1 1.先修改eth0 和eht1這2個網絡卡配置檔案。目錄在(/etc/sysconfig/network-scripts/)如

七種模式

概覽: 目前網絡卡繫結mode共有七種(0~6)bond0、bond1、bond2、bond3、bond4、bond5、bond6 常用的有三種: mode=0:平衡負載模式,有自動備援,但需要”Switch”支援及設定。 mode=1:自動備援模式,其中一條線若斷線,其他線路將會自動備援。 mod

Linux中高階網路配置-bond方式

bond簡介 bond可以兩塊網絡卡虛擬成為一塊網絡卡,在網絡卡繫結後,看起來是一個單獨的乙太網介面裝置並具有相同的 IP 地址。既能新增網路頻寬,同時又能做相應的冗餘,輪詢和負載均衡。 bond 網絡卡的工作模式 網絡卡 bond 後的工作模式有兩種:主備的工作方式和負載

linux配置bond

第一步:# vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BONDING_OPTS="mode=0 miimon=100"

[Linux] 總結各系統

Rhel 6.X 繫結的前提條件:晶片組型號相同,而且網絡卡應該具備自己獨立的BIOS晶片 # vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 ONBOOT=yes BOOTPROTO=static IPADDR= NETMAS

Linux總結筆記4-配置及

1.網絡卡基本配置資訊 第1步:首先咱們要切換到"/etc/sysconfig/network-scripts"目錄中(該目錄存放著網絡卡的配置檔案)。 第2步:使用vim編輯器修改網絡卡檔案"i

CentOS下多bond/多聚合

網絡卡bond我直接理解成網絡卡聚合了,就是把多張網絡卡虛擬成1張網絡卡,出口時,這張網絡卡無論哪個斷線都不影響網路,入口時,需要結合交換機的埠聚合功能實現和網絡卡配置的bond模式進行負載均衡。bond需要在核心Kernels 2.4.12及以上才能使用,因為需要使用bonding模組。 bond模式:

02 Linux

 Linux 多網絡卡繫結 網絡卡繫結mode共有七種(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6 常用的有三種 mode=0:平衡負載模式,有自動備援,但需要”Switch”支援及設定。 mode=1:自

關於socket接收組播的問題

#include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <stdio.h> #include <stdlib.h

#配置完雙網絡卡後可以進行雙網絡卡繫結 mode是ifenslave的工作狀態(繫結模式) 模式0:平衡掄迴圈策略:傳輸資料包順序是依次傳輸,直到最後一個傳輸完畢,此模式提供負載平衡和容錯能力 模式1:主-備份策略:只有一個裝置處於活動狀態。一個宕掉另一個馬上由備份轉換為主裝置。MAC地址是外部可見的。

RHEL7/CentOS7-Network Teaming

RHEL7/CentOS7 Configure Network Teaming Network Teaming可聯合或合併物理網路介面,形成具有較高吞吐量或冗餘方式的邏輯網路介面。其作為網絡卡繫結的備選方式出現,在系統中和傳統的bonding方式並存。 1. 系統環境 [[email&#