導航:首頁 > 操作系統 > linux網卡冗餘

linux網卡冗餘

發布時間:2023-05-06 13:46:48

linux 雙網卡綁定

什麼的linux系統?
sles:
#
vi
/etc/sysconfig/network/ifcfg-bond0
插入如下內容
BOOTPROTO='static'
IPADDR='10.34.81.21'
NETMASK='255.255.255.0'
STARTMODE='onboot'
BONDING_MASTER='yes'
BONDING_MODULE_OPTS='mode=1
miimon=200
use_carrier=1'
BONDING_SLAVE0='eth1'
BONDING_SLAVE1='eth2'
檢查#
/etc/sysconfig/network/
下有沒有eth1、eth2的MAC地址配置,若有,則刪除
啟動雙網卡綁定#
rcnetwork
restart
其中:BONDING_MODULE_OPTS='mode=1
為主備
0為負荷分擔
redhat:
創建一個ifcfg-bond0
#
vi
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BONDING_OPTS="mode=1
miimon=500"
BOOTPROTO=none
ONBOOT=yes
BROADCAST=192.168.0.255
IPADDR=192.168.0.180
NETMASK=255.255.255.0
NETWORK=192.168.0.0
USERCTL=no
其中:BONDING_OPTS="mode=1
為主備
0為負荷分擔
修改/etc/sysconfig/ifcfg-ethX
這里說的ethX指要加入綁定網卡的名稱,本例中是eth0、eth1。
#
vi
/etc/sysconfig/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
#
vi
/etc/sysconfig/ifcfg-eth1
DEVICE=eth1BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
配置/etc/modprobe.conf,添加alias
bond0
bonding
#
vi
/etc/modprobe.conf
alias
eth0
pcnet32
alias
eth1
pcnet32
alias
scsi_hostadapter
mptbase
alias
scsi_hostadapter1
mptspi
alias
bond0
bonding
重啟網路服務
#service
network
restart

② 理解Linux下網卡的bonding

發現工作中可能會用到Linux下網卡綁定相關的知識。找了些文章看,然後一通混剪,各家所長為我所用。

網卡bond,即網卡綁定,也稱作網卡捆綁。網卡綁定有多種稱謂:Port Trunking, Channel Bonding, Link Aggregation, NIC teaming等等,其實說的是一回事。就是將兩個或者更多的物理網卡綁定成一個虛擬網卡。通過綁定可以達到鏈路冗餘、帶寬倍增、負載均衡等目的。是生產場景中提高性能和可靠性的一種常用技術。
Linux內置了網卡綁定的驅動程序,可以將多個物理網卡分別捆綁成多個不同的邏輯網卡(例如把eth0、eth1捆綁成bond0,把eth2、eth3捆綁成bond1)。對於每一個bond介面來說,可以分別定義不同的綁定模式和鏈路監視選項。

對應於不同的負載均衡和容錯特性需求,Linux網卡bond的模式共有bond0-bond6共7種。

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

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

表示使用MAC地址的XOR Hash負載分擔,網路上特定的通信雙方會始終經由某一個網卡的鏈路通信,和交換機的聚合強制不協商方式配合。(需要xmit_hash_policy [1] ,需要交換機配置port channel)

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

表示支持802.3ad協議,和交換機的聚合LACP方式配合(需要xmit_hash_policy).標准要求所有設備在聚合操作時,要在同樣的速率和雙工模式。

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

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

模式1、模式5和模式6不需要交換機端的設置,網卡能自動聚合。模式4需要支持802.3ad。模式0,模式2和模式3理論上需要靜態聚合方式。 (據說實測中模式0可以通過mac地址欺騙的方式在交換機不設置的情況下不太均衡地進行接收。)

創建ifcfg-bond0文件,配置IP地址、子網掩碼、網關等參數。

修改eth0、eth1、eth2的配置文件,注釋或刪除IP地址、掩碼、網關和MAC地址的配置,添加關於MASTER和SLAVE的設置

根據實際需求,選擇合適的bonding模式,為bond0設置bonding kernel mole。
在 /etc/modprobe.conf 中添加以下內容

確認模塊是否載入成功

重啟網路(或重啟主機):

查看bond0的狀態:

另外還可以使用 ifconfig -a | grep HWaddr 查看bond0介面是否處於活動狀態,以及各網卡MAC地址情況。

從上面的確認信息中,我們可以看到3個重要信息:
1.現在的bonding模式是active-backup
2.現在Active狀態的網口是eth2
3.bond0,eth0、eth1、的物理地址和處於active狀態下的eth2的物理地址相同,這樣是為了避免上位交換機發生混亂。

可以ping一個遠程地址,然後斷開Active狀態的eth2口網線,驗證主備模式是否能正常切換,業務是否受到影響。

將網口添加到bond中:ifenslave bond eth0 eth1【bond要先up】
將bond中刪除網口:ifenslave -d bond eth0
bond中網口主備倒換:ifenslave -c bond eth1

前面只是3個網口綁定成一個bond1的情況,如果我們要設置多個bond口,比如物理網口eth0和eth1組成bond0,eth2和eth3組成bond1應該如何設置呢?
網口設置文件的設置方法和上面第1步講的方法相同,只是/etc/modprobe.d/bonding.conf的設定就不能像下面這樣簡單的疊加了:

正確的設置方法有2種:
第一種: 你可以看到,這種方式的話,多個bond口的模式就只能設成相同的了:

第二種: 這種方式,不同的bond口的mode可以設成不一樣:

按照上面這2種設置方法,現在如果是要設置3個,4個,甚至更多的bond口,可是可以的。

③ 關於linux bonding 主備網卡切換問題

不會切回來,除非機器啟動才會恢復。。。。。
或者:
service network restart

④ linux 配置多塊網卡的作用是

需要連接兩個網路的時候:
比如代理伺服器、網關猛族;
還有些對網路連接可靠性要求高的場合裂知伏,會用肆攜雙網路做為冗餘,比如製造業生產線上的伺服器,一些郵件、web伺服器也有這種設計。

⑤ linux雙網卡綁定連接到冗餘的兩交換機

拓撲圖很簡單,一個伺服器的兩個網卡上聯到兩台核心交換機上
操作系統是rhel5.5
x86_64,交換機是華為9306,伺服器是dell
M910刀片
伺服器上的eth0和eth1做了綁定,我想用跡禪mode=0
這種負載均衡的方式來做
兩台交換機配置了vrrp,左邊的核心交換機是master,右邊的是slave
但我在實際測試的過程中出現了問題。伺服器是dell
m910,刀片伺服器。我將eth0/1綁定成mode=0模式,在交換機上將連接刀片
www.dnjsb.com
的介面配置到了access
vlan,在刀片的交換機上配置了鏈路聚合和埠依賴(在不做綁定的情況下,伺服器和網路是正常的),發
現在伺服器上ping網關,有50%丟包;在其他伺服器上ping這台伺服器也有至少50%的丟包
mode=0這個模式,配置完成後,bond0/eth0/eth1介面的MAC都變成eth0的MAC地址了
我覺得當伺服器向外發送數據的時候,第一個包從master走,因為對master來說,從G1/0/1學到了伺服器的MAC地址;伺服器的第
二個包從slave走,master又從G1/0/47學到了伺服器的MAC地址,這樣,交換機的MAC表就混亂了,也就導致了丟失50%的數據包
www.dnjsb.com
誰做過mode=0綁定模式呢?是不是還需要在交換機上衫裂做什麼姿塌塵配置?請幫忙看一下如何解決,謝謝。網卡綁定

⑥ linux綁定bond的七種模式

目前網卡綁定mode共有七種(0~6)bond0、bond1、bond2、bond3、bond4、bond5、bond6

常用的有三種:

mode=0:平衡負載模式,有自動備援,但需要」Switch」支援及設定。

mode=1:自動備援模式,其中一條線若斷線,其他線路將會自動備援。

mode=6:平衡負載模式,有自動備援,不必」Switch」支援及設定。

Linux網口綁定:

通過網口綁定(bond)技術,可以很容易實現網口冗餘,負載均衡,從而達到高可用高可靠的目的。前提約定:

2個物理網口分別是:eth0,eth1

綁定後的虛擬口是:bond0

伺服器IP是:10.10.10.1

第一步,配置設定文件:

[root@woo ~]# vi  /etc/sysconfig/network-scripts/ifcfg-bond0  

DEVICE=bond0  

BOOTPROTO=none  

ONBOOT=yes  

IPADDR=10.10.10.1  

NETMASK=255.255.255.0  

NETWORK=192.168.0.0 

[root@woo ~]# vi  /etc/sysconfig/network-scripts/ifcfg-eth0  

DEVICE=eth0  

BOOTPROTO=none  

MASTER=bond0  

SLAVE=yes 

[root@woo ~]# vi  /etc/sysconfig/network-scripts/ifcfg-eth1  

DEVICE=eth1  

BOOTPROTO=none  

MASTER=bond0  

SLAVE=yes  

第二步,修改modprobe相關設定文件,並載入bonding模塊:

1.在這里,我們直接創建一個載入bonding的專屬設定文件/etc/modprobe.d/bonding.conf  

[root@woo ~]# vi /etc/modprobe.d/bonding.conf  

alias bond0 bonding  

options bonding mode=0 miimon=200 

2.載入模塊(重啟系統後就不用手動再載入了)  

[root@woo ~]# modprobe bonding 

3.確認模塊是否載入成功:  

[root@woo ~]# lsmod | grep bonding  

bonding 100065 0  

第三步,重啟一下網路,然後確認一下狀況:

[root@db01 ~]# service network restart  

Shutting down interface bond0:  [  OK  ]  

Shutting down loopback interface:  [  OK  ]  

Bringing up loopback interface:  [  OK  ]  

Bringing up interface bond0:  [  OK  ] 

[root@db01 ~]#  cat /proc/net/bonding/bond0  

Ethernet Channel Bonding Driver: v3.4.0-1 (October 7, 2008) 

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 

Slave Interface: eth0  

MII Status: up  

Speed: 1000 Mbps  

Duplex: full  

Link Failure Count: 0  

Permanent HW addr: 40:f2:e9:db:c9:c2 

Slave Interface: eth1  

MII Status: up  

Speed: 1000 Mbps  

Duplex: full  

Link Failure Count: 0  

Permanent HW addr: 40:f2:e9:db:c9:c3  

[root@db01 ~]#  ifconfig | grep HWaddr  

bond0     Link encap:Ethernet  HWaddr 40:F2:E9:DB:C9:C2    

eth0      Link encap:Ethernet  HWaddr 40:F2:E9:DB:C9:C2    

eth1      Link encap:Ethernet  HWaddr 40:F2:E9:DB:C9:C2    

從上面的確認信息中,我們可以看到3個重要信息:

1.現在的bonding模式是active-backup

2.現在Active狀態的網口是eth0

3.bond0,eth1的物理地址和處於active狀態下的eth0的物理地址相同,這樣是為了避免上位交換機發生混亂。

任意拔掉一根網線,然後再訪問你的伺服器,看網路是否還是通的。

第四步,系統啟動自動綁定、增加默認網關:

[root@woo ~]# vi /etc/rc.d/rc.local  

#追加  

ifenslave bond0 eth0 eth1  

route add default gw 10.10.10.1 

⑦ Linux下雙網卡綁定七種模式

現在一般的企業都會使用雙網卡接入,這樣既能添加網路帶寬,同時又能做相應的冗餘,可以說是好處多多。而一般企業都會使用linux操作系統下自帶的網卡綁定模式,當然現在網卡產商也會出一些針對windows操作系統網卡管理軟體來做網卡綁定(windows操作系統沒有網卡綁定功能 需要第三方支持)。進入正題,linux有七種網卡綁定模式:0. round robin,1.active-backup,2.load balancing (xor), 3.fault-tolerance (broadcast), 4.lacp, 5.transmit load balancing, 6.adaptive load balancing。 第一種:bond0:round robin標准:round-robin policy: Transmit packets in sequential order from the first available slave through the last. This mode provides load balancing and fault tolerance.

特點:(1)所有鏈路處於負載均衡狀態,輪詢方式往每條鏈路發送報文,基於per packet方式發送。服務上ping 一個相同地址:1.1.1.1 雙網卡的兩個網卡都有流量發出。負載到兩條鏈路上,說明是基於per packet方式 ,進行輪詢發送。(2)這模式的特點增加了帶寬,同時支持容錯能力,當有鏈路出問題,會把流量切換到正常的鏈路上。

實際綁定結果: cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Bonding Mode: load balancing (round-robin) -----RR的模式 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Link Failure Count: 0 Permanent HW addr: 74:ea:3a:6a:54:e3 Slave Interface: eth1 MII Status: up Link Failure Count: 0

應用拓撲:交換機端需要配置聚合口,cisco叫port channel。拓撲圖如下:

第二種:bond1:active-backup標准文檔定義:Active-backup policy: Only one slave in the bond is active. A different slave becomes active if, and only if, the active slave fails. The bond's MAC address is externally visible on only one port (network adapter) to avoid confusing the switch. This mode provides fault tolerance. The primary option affects the behavior of this mode.

模式的特點:一個埠處於主狀態 ,一個處於從狀態,所有流量都在主鏈路上處理,從不會有任何流量。當主埠down掉時,從埠接手主狀態。

實際綁定結果: root@1:~# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Bonding Mode: fault-tolerance (active-backup) —–backup模式 Primary Slave: None Currently Active Slave: eth0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Link Failure Count: 0 Permanent HW addr: 74:ea:3a:6a:54:e3 Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: d8:5d:4c:71:f9:94

應用拓撲:這種模式接入不需要交換機端支持,隨便怎麼接入都行。

第三種:bond2:load balancing (xor)標准文檔描述:XOR policy: Transmit based on [(source MAC address XOR'd with destination MAC address) molo slave count]. This selects the same slave for each destination MAC address. This mode provides load balancing and fault tolerance.

特點:該模式將限定流量,以保證到達特定對端的流量總是從同一個介面上發出。既然目的地是通過MAC地址來決定的,因此該模式在"本地"網路配置下可以工作得很好。如果所有流量是通過單個路由器(比如 "網關"型網路配置,只有一個網關時,源和目標mac都固定了,那麼這個演算法算出的線路就一直是同一條,那麼這種模式就沒有多少意義了。),那該模式就不是最好的選擇。和balance-rr一樣,交換機埠需要能配置為"port channel"。這模式是通過源和目標mac做hash因子來做xor演算法來選路的。

實際綁定結果: [root@localhost ~]# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006) Bonding Mode: load balancing (xor) ——配置為xor模式 Transmit Hash Policy: layer2 (0) MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:d0:f8:40:f1:a0 Slave Interface: eth2 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:d0:f8:00:0c:0c

應用拓撲:同bond0一樣的應用模型。這個模式也需要交換機配置聚合口。

第四種:bond3:fault-tolerance (broadcast)標准文檔定義:Broadcast policy: transmits everything on all slave interfaces. This mode provides fault tolerance.

特點:這種模式的特點是一個報文會復制兩份往bond下的兩個介面分別發送出去,當有對端交換機失效,我們感覺不到任何downtime,但此法過於浪費資源;不過這種模式有很好的容錯機制。此模式適用於金融行業,因為他們需要高可靠性的網路,不允許出現任何問題。

實際綁定結果: root@ubuntu12:~/ram# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Bonding Mode: fault-tolerance (broadcast) ——- fault-tolerance 模式 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Link Failure Count: 0 Permanent HW addr: 74:ea:3a:6a:54:e3 Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: d8:5d:4c:71:f9:94

應用拓撲:如下:

這種模式適用於如下拓撲,兩個介面分別接入兩台交換機,並且屬於不同的vlan,當一邊的網路出現故障不會影響伺服器另一邊接入的網路正常工作。而且故障過程是0丟包。下面展示了這種模式下ping信息: 64 bytes from 1.1.1.1: icmp_seq=901 ttl=64 time=0.205 ms 64 bytes from 1.1.1.1: icmp_seq=901 ttl=64 time=0.213 ms (DUP!) —p為重復報文 64 bytes from 1.1.1.1: icmp_seq=902 ttl=64 time=0.245 ms 64 bytes from 1.1.1.1: icmp_seq=902 ttl=64 time=0.254 ms (DUP!) 64 bytes from 1.1.1.1: icmp_seq=903 ttl=64 time=0.216 ms 64 bytes from 1.1.1.1: icmp_seq=903 ttl=64 time=0.226 ms (DUP!) 從這個ping信息可以看到,這種模式的特點是,同一個報文伺服器會復制兩份分別往兩條線路發送,導致回復兩份重復報文,這種模式有浪費資源的嫌疑。

第五種:bond4:lacp

標准文檔定義:IEEE 802.3ad Dynamic link aggregation. Creates aggregation groups that share the same speed and plex settings. Utilizes all slaves in the active aggregator according to the 802.3ad specification. Pre-requisites: 1. Ethtool support in the base drivers for retrieving.the speed and plex of each slave. 2. A switch that supports IEEE 802.3ad Dynamic link aggregation. Most switches will require some type of configuration to enable 802.3ad mode.

特點:802.3ad模式是IEEE標准,因此所有實現了802.3ad的對端都可以很好的互操作。802.3ad 協議包括聚合的自動配置,因此只需要很少的對交換機的手動配置(要指出的是,只有某些設備才能使用802.3ad)。802.3ad標准也要求幀按順序(一定程度上)傳遞,因此通常單個連接不會看到包的亂序。802.3ad也有些缺點:標准要求所有設備在聚合操作時,要在同樣的速率和雙工模式,而且,和除了balance-rr模式外的其它bonding負載均衡模式一樣,任何連接都不能使用多於一個介面的帶寬。 此外,linux bonding的802.3ad實現通過對端來分發流量(通過MAC地址的XOR值),因此在"網關"型配置下,所有外出(Outgoing)流量將使用同一個設備。進入(Incoming)的流量也可能在同一個設備上終止,這依賴於對端802.3ad實現里的均衡策略。在"本地"型配置下,路兩將通過 bond里的設備進行分發。

實際綁定結果: root@:~# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Bonding Mode: IEEE 802.3ad Dynamic link aggregation Transmit Hash Policy: layer2 (0) MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 802.3ad info LACP rate: slow Aggregator selection policy (ad_select): stable Active Aggregator Info: Aggregator ID: 1 Number of ports: 1 Actor Key: 9 Partner Key: 1 Partner Mac Address: 00:00:00:00:00:00 Slave Interface: eth0 MII Status: up Link Failure Count: 0 Permanent HW addr: 74:ea:3a:6a:54:e3 Aggregator ID: 1 Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: d8:5d:4c:71:f9:94 Aggregator ID: 2

應用拓撲:應用拓撲同bond0,和bond2一樣,不過這種模式除了配置port channel之外還要在port channel聚合口下開啟LACP功能,成功協商後,兩端可以正常通信。否則不能使用。

交換機端配置: interface AggregatePort 1 配置聚合口 interface GigabitEthernet 0/23 port-group 1 mode active 介面下開啟lacp 主動模式 interface GigabitEthernet 0/24 port-group 1 mode active

第六種:bond5: transmit load balancing

標准文檔定義:Adaptive transmit load balancing: channel bonding that does not require any special switch support. The outgoing traffic is distributed according to the current load (computed relative to the speed) on each slave. Incoming traffic is received by the current slave. If the receiving slave fails, another slave takes over the MAC address of the failed receiving slave. Prerequisite: Ethtool support in the base drivers for retrieving the speed of each slave.

特點:balance-tlb模式通過對端均衡外出(outgoing)流量。既然它是根據MAC地址進行均衡,在"網關"型配置(如上文所述)下,該模式會通過單個設備來發送所有流量,然而,在"本地"型網路配置下,該模式以相對智能的方式(不是balance-xor或802.3ad模式里提及的XOR方式)來均衡多個本地網路對端,因此那些數字不幸的MAC地址(比如XOR得到同樣值)不會聚集到同一個介面上。 不像802.3ad,該模式的介面可以有不同的速率,而且不需要特別的交換機配置。不利的一面在於,該模式下所有進入的(incoming)流量會到達同一個介面;該模式要求slave介面的網路設備驅動有某種ethtool支持;而且ARP監控不可用。

實際配置結果: cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006) Bonding Mode: transmit load balancing —–TLB模式 Primary Slave: None Currently Active Slave: eth1 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:d0:f8:40:f1:a0 Slave Interface: eth2 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:d0:f8:00:0c:0c

應用拓撲:這個模式下bond成員使用各自的mac,而不是上面幾種模式是使用bond0介面的mac。

如上圖,設備開始時會發送免費arp,以主埠eth1的mac為源,當客戶端收到這個arp時就會在arp緩存中記錄下這個mac對的ip。而在這個模式下,伺服器每個埠在ping操作時,會根據演算法算出出口,地址不斷變化時他,這時會負載到不同埠。實驗中ping1.1.1.3時往eth2發送,源mac為00:D0:F8:00:0C:0C,ping1.1.1.4是往eth1發送,源mac為00:D0:F8:40:F1:A0,以此類推,所以從伺服器出去的流量負載到兩條線路,但是由於服務發arp時只用00:D0:F8:40:F1:A0,這樣客戶端緩沖記錄的是00:D0:F8:40:F1:A0對的ip,封裝時目標mac:00:D0:F8:40:F1:A0。這樣進入服務的流量都只往eth1(00:D0:F8:40:F1:A0)走。設備會一直發入snap報文,eth1發送源為00d0.f840.f1a0的snap報文,eth2發送源為00d0.f800.0c0c的snap報文。這個snap報文mac和目標mac一樣都是網卡本地mac,源ip和目標ip也一樣,這個報文的作用是檢測線路是否正常的回環報文。 註:可以通過修改bond0的mac地址來引導他發修改後的源mac的免費arp(MACADDR=00:D0:F8:00:0C:0C)

第七種:bond6:adaptive load balancing特點:該模式包含了balance-tlb模式,同時加上針對IPV4流量的接收負載均衡(receive load balance, rlb),而且不需要任何switch(交換機)的支持。接收負載均衡是通過ARP協商實現的。bonding驅動截獲本機發送的ARP應答,並把源硬體地址改寫為bond中某個slave的唯一硬體地址,從而使得不同的對端使用不同的硬體地址進行通信。所有埠都會收到對端的arp請求報文,回復arp回時,bond驅動模塊會截獲所發的arp回復報文,根據演算法算到相應埠,這時會把arp回復報文的源mac,send源mac都改成相應埠mac。從抓包情況分析回復報文是第一個從埠1發,第二個從埠2發。以此類推。 (還有一個點:每個埠除發送本埠回復的報文,也同樣會發送其他埠回復的報文,mac還是其他埠的mac)這樣來自伺服器端的接收流量也會被均衡。 當本機發送ARP請求時,bonding驅動把對端的IP信息從ARP包中復制並保存下來。當ARP應答從對端到達時,bonding驅動把它的硬體地址提取出來,並發起一個ARP應答給bond中的某個slave(這個演算法和上面一樣,比如算到1口,就給發送arp請求,1回復時mac用1的mac)。使用ARP協商進行負載均衡的一個問題是:每次廣播 ARP請求時都會使用bond的硬體地址,因此對端學習到這個硬體地址後,接收流量將會全部流向當前的slave。這個問題通過給所有的對端發送更新(ARP應答)來解決,往所有埠發送應答,應答中包含他們獨一無二的硬體地址,從而導致流量重新分布。當新的slave加入到bond中時,或者某個未激活的slave重新激活時,接收流量也要重新分布。接收的負載被順序地分布(round robin)在bond中最高速的slave上 當某個鏈路被重新接上,或者一個新的slave加入到bond中,接收流量在所有當前激活的slave中全部重新分配,通過使用指定的MAC地址給每個 client發起ARP應答。下面介紹的updelay參數必須被設置為某個大於等於switch(交換機)轉發延時的值,從而保證發往對端的ARP應答不會被switch(交換機)阻截。 必要條件: 條件1:ethtool支持獲取每個slave的速率; 條件2:底層驅動支持設置某個設備的硬體地址,從而使得總是有個slave(curr_active_slave)使用bond的硬體地址,同時保證每個bond 中的slave都有一個唯一的硬體地址。如果curr_active_slave出故障,它的硬體地址將會被新選出來的 curr_active_slave接管。

實際配置結果: root@:/tmp# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009) Bonding Mode: adaptive load balancing Primary Slave: None Currently Active Slave: eth0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Link Failure Count: 0 Permanent HW addr: 74:ea:3a:6a:54:e3 Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: d8:5d:4c:71:f9:94

應用拓撲:

A是雙網卡綁定。 當B 發送一個arp請求到達A時,按正常情況A會回應一個arp回應報文,源mac為bond的mac,源就是bond的ip。但是這個模式下bonding驅動會截獲這個arp回應,把源mac改成bond狀態 下其中某一個網卡的mac:mac1,這樣B收到這個arp回應時就會在arp緩存中記錄下ip:1.1.1.1對應的mac為mac1。這樣B的過來的流量都走MAC1. 當C 發送一個arp請求到達A時,按正常情況A會回應一個arp回應報文,源mac為bond的mac,源就是bond的ip。但是這個模式下bonding驅動會截獲這個arp回應,把源mac改成bond狀態 下其中某一個網卡的mac:mac2,這樣C收到這個arp回應時就會在arp緩存中記錄下ip:1.1.1.1對應的mac為mac2。這樣C的過來的流量都走MAC2. 這樣就可以做到回來讓回來的流量也負載均衡。出方向均衡和MODE=5一致,不同地址會根據xor演算法算出不同出口,發不同出口發送相應的arp ,mac是對應網卡的mac。

===================================================

Linux (RedHat, Ubuntu, etc.) Bonding 共提供了六種模式:

名辭解釋: 在bonding的領域里, 英文slave interface表示某個實體連線的意思; 因此指令名稱為: ifenslave

mode=0 (balance-rr): 採取依序使用的連線的方式,提供了負載均衡及容錯的功能

mode=1 (active-backup): 眾多的連線中,只有一個是啟用的狀態,當啟用的連線失效(敗),則由備援的連線接手,提供容錯機制。

mode=2 (balance-xor): 採用xor的演演算法來選擇傳輸的連線,其結果是以目的地MAC為基準選擇哪一條連線;提供了負載均衡及容錯機制。

mode=3 ( broadcast): 把封包送到所有的連線,當有連線失效沒有任何downtime,但此法過於浪費連線資源;有容錯機制。

mode=4 (802.3ad, LACP): IEEE 802.3ad Dynamic Link Aggregation協定;提供較好的機制,並可搭配802.1Q trunking同時介接不同的VLAN;惟獨此法必須與支援802.3ad的交換機介接,並且每個slave的驅動程式都需支援ethtool擷取介面的訊息, 較為豪華,但是提供了相當優良的應用,負載均衡及容錯機制。

mode=5 (balance-tlb): Adaptive Transmit load balancing; 無須交換機支援但slave驅動程式需支援ethtool;根據連線介面卡的負載決定traffic如何送出,回覆的traffic則由送出的salve接收。

mode=6 (balance-alb): 包含了mode 5所有功能及需求,再加上接收traffic時的負載均衡.

⑧ Linux Bonding 怎麼玩

一、什麼是bondingLinux bonding 驅動提供了一個把多個網路介面設備捆綁為單個的網路介面設置來使用,用於網路負載均衡及網路冗餘
二、bonding應用方向
1、網路負載均衡對於bonding的網路負載均衡是我們在文件伺服器中常用到的,比如把三塊網卡,當做一塊來用,解決一個IP地址,流量過大,伺服器網路壓力過大的問題。對於文件伺服器來說,比如NFS或SAMBA文件伺服器,沒有任何一個管理員會把內部網的文件伺服器的IP地址弄很多個來解決網路負載的問題。如果在內網中,文件伺服器為了管理和應用上的方便,大多是用同一個IP地址。對於一個百M的本地網路來說,文件伺服器在多 個用戶同時使用的情況下,網路壓力是極大的,特別是SAMABA和NFS伺服器。為衡姿了解決同一個IP地址,突破流量的限制,畢竟網線和網卡對數據的吞吐量是有限制的。如果在有限的資源的情況下,實現網路負載均衡,最好的辦法就是 bonding
2、網路冗餘對於伺服器來說,網路設備的穩定也是比較重要的,特別是網卡。在生產型的系統中,網卡的可靠性就更為重要了。
在生產型的系統中,大多通過硬體設備的冗餘來提供伺服器的可靠性和安全性,比如電源。bonding 也能為網卡提供冗餘的支持。把多塊網卡綁定到一個IP地址,當一塊網卡發生物理性損壞的情況下,另一塊網卡自動啟用,並提供正常的服務,即:默認情況下只有一塊網卡工作,其它網卡做備份
三、bonding實驗環境及配置
1、實驗環境系統為:CentOS,使用4塊網卡(eth0、eth1 ==> bond0;eth2、eth3 ==> bond1)來實現bonding技術
2、bonding配置第一步:先查看一下內核是否已經支持bonding1)如御辯果內核已經把bonding編譯進內核,那麼要做的就是載入該模塊到當前內核;其次查看ifenslave該工具是否也已經編譯modprobe -l bond*或者 modinfo bondingmodprobe bondinglsmod | grep 'bonding'echo 'modprobe bonding &> /dev/null' >> /etc/rc.local(開機自動載入bonding模塊到內核)which ifenslave注意:默認內核安裝完後就已經支持bonding模塊了,無需要自己手動編譯2)如果bonding還沒有編譯進內核,那麼要做的就是編譯該模塊到內核
(1)編譯bondingtar -jxvf kernel-XXX.tar.gzcd kernel-XXXmake menuconfig選擇 " Network device support " -> " Bonding driver support "make bzImagemake moles && make moles_installmake install
(2)編譯ifenslave工具gcc -Wall -O -I kernel-XXX/include ifenslave.c -o ifenslave
第二步:主要有兩種可選擇(第1種:實現網路負載均衡,第2種:實咐拆絕現網路冗餘)例1:實現網路冗餘(即:mod=1方式,使用eth0與eth1)(1)編輯虛擬網路介面配置文件(bond0),並指定網卡IPvi /etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.0.254BROADCAST=192.168.0.255NETMASK=255.255.255.0NETWORK=192.168.0.0GATEWAY=192.168.0.1USERCTL=noTYPE=Ethernet注意:建議不要指定MAC地址vi /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0BOOTPROTO=noneONBOOT=yesUSERCTL=noMASTER=bond0SLAVE=yes注意:建議不要指定MAC地址vi /etc/sysconfig/network-scripts/ifcfg-eth1DEVICE=eth1BOOTPROTO=noneONBOOT=yesUSERCTL=noMASTER=bond0SLAVE=yes注意:建議不要指定MAC地址
(2)編輯模塊載入配置文件(/etc/modprobe.conf),開機自動載入bonding模塊到內核

⑨ Linux 網卡bond的七種模式

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

鏈路負載均衡,增加帶寬,支持容錯,一條鏈路故障會自動切換正常鏈路。交換機需要配置聚合口,思科叫port channel。

這個是主備模式,只有一塊網卡是active,另一塊是備用的standby,所有流量都在active鏈路上處理,交換機配置的是捆綁的話將不能清租橡工作,因為交換機往兩塊網卡發包,有一半包是丟棄的。

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

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

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

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

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

mode5和mode6不需要交換機端的設置,網卡能自動聚合。mode4需要支持802.3ad。mode0,mode2和mode3理論上需要靜態聚合方式。
但實測中mode0可以通過mac地址欺騙的方式在交換機不設置的情況下不太均衡地進行接收。

1、首先要看linux是否支持bonding,大部分發行版都支持

如輸出以上信息,則說明支持bonding,如果沒有,說明內核不支持bonding,需要重新編譯內核
2、答旁網卡配置文件
兩個物理網口分別是:eth0,eth1 綁定後的虛擬口是:bond0

開機自動載入模塊到內核

每100毫秒 (即0.1秒) 監測一次路連接狀態,如果有一條線路不通就轉入另一條線路; Linux的多網卡綁定功能使用的是內核中的"bonding"模塊
如果修改為其它模式,只需要在BONDING_OPTS中指定mode=Number即可。USERCTL=no --是否允許非root用戶控制該設備
查看bond0狀態:可以看到調用的是哪幾個物理網卡

三、擴展
上邊是兩個網卡(eth0、eth1)綁定成一個bond0,如果我們要設置多個bond口,比如物理網口eth0和eth1組成bond0,eth2和型罩eth3組成bond1,那麼網口設置文件的設置方法和上面
是一樣的,只是/etc/modprobe.d/dist.conf文件就不能疊加了。正確的設置方法有兩種:
1、第一種

這樣所有的綁定只能使用一個mode了。
2、第二種

這種方式不同的bond口可以設定為不同的mode,注意開機自動啟動/etc/rc.d/rc.local文件的設置

http://lixin15.blog.51cto.com/3845983/1769338

http://linuxnote.blog.51cto.com/9876511/1680315

⑩ Linux系統下多網卡綁定操作方法

在Linux系統中,通常會將多個網卡綁定為一個邏輯網卡,這樣可以提高網路的穩定性,那麼要如何將多個網路綁定為一個呢?下面小編就給大家介紹下Linux下多網卡綁定的bond模式原理。
將多個Linux網路埠綁定為一個,可以提升網路的性能,比如對於備份伺服器,需要在一個晚上備份幾個T的數據,如果使用單個的千兆網口將會是很嚴
重的瓶頸。其它的應用,比如ftp伺服器,高負載的下載網站,
都有類似的問題。因此使用Linux
teaming或bond來綁定多個網卡作為一個邏輯網口,配置單個的IP地址,會大幅提升伺服器的網路吞吐(I/O)。
Linux的多網卡綁定功能使用的是內核中的“bonding”模塊,關於此模塊可以參考Linux
Ethernet
Bonding
Driver文檔,
但是目前發布各個Linux版本內核均已包含了此模塊,大多數情況下不需要重新編譯內核。
Linux

bonding
驅動提供了綁定/集成(bond)多個網卡為一個虛擬邏輯網口的功能。並請注意綁定的網口(bonded)有多種工作模式;
一般來說,分為
熱後備(hot
standby)

負載均衡(load
balancing)。
在Redhat/Fedora和其它類Redhat
Linux中是比較容易配置的。
1.創建bond0配置文件
vi
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
--物理設備名字
IPADDR=192.168.1.2
--IP地址
NETMASK=255.255.255.0
--子網掩碼
GATEWAY=192.168.1.1
--網關
DNS=8.8.8.8
--DNS
ONBOOT=yes
--隨機啟動
NAME=bond0
BOOTPROTO=none
USERCTL=no
--是否允許非root用戶控制該設備
2.修改被綁定的eth0和eth1的配置文件
vi
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=“eth0”
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
HWADDR=00:15:17:CC:FC:35
eth1的配置文件與之相同,只是device的值改為eth1即可。
3.裝在bond模塊驅動
編輯/etc/modprobe.conf或者/etc/moles.conf文件,加入如下內容,使系統啟動時載入bonding模塊驅動
alias
bond0
bonding
option
bond0
miimon=100
mode=1
說明:
1).miimon=100
用來進行鏈路監測的。即每100ms監測一次鏈路狀態。bonding只監測主機與交換機之間鏈路。如果交換機出去的鏈路出問題而本身沒有問題,那麼bonding認為鏈路沒有問題而繼續使用。
2).mode=1
表示提供冗餘功能。除此之外還可以為0、2、3,共四種模式。0表示負載均衡
4.在/etc/rc.d/rc.local文件中加入如下語句,使得系統啟動自動運行
ifenslave
bond0
eth0
eth1
route
add
-net
192.168.1.254
netmask
255.255.255.0
bond0
#如有需要才加該路由
5.檢測、驗證配置
首先執行命令裝載bonding模塊:modprobe
bonding
重啟網路服務,並確認bond0正確啟動:service
network
restart
確認設備已經正確載入:less
/proc/net/bonding/bond0
列出所有網口:ifconfig

上面就是Linux下多網卡綁定bond模式原理的介紹了,bond模式原來一般有7種,這里只介紹了其中的一種,希望對你有所幫助。

閱讀全文

與linux網卡冗餘相關的資料

熱點內容
如何知道王牌戰爭新出來的伺服器 瀏覽:591
程序員建的房子 瀏覽:419
navicatlinux破解版 瀏覽:454
找個輔警或者程序員 瀏覽:452
軍團td預言命令 瀏覽:114
營指揮員下達作戰命令 瀏覽:258
exe打開指定文件夾 瀏覽:264
pdf裡面怎麼去水印 瀏覽:845
appleid賬號加密碼 瀏覽:220
蘋果如何下載微倉app 瀏覽:916
迅雷解壓進度為0 瀏覽:860
解壓解惑近義詞 瀏覽:316
壓縮比不一樣燃燒室不一樣 瀏覽:101
androidbutton左對齊 瀏覽:172
怎麼找到學校的伺服器 瀏覽:369
android狀態欄高度是多少 瀏覽:989
linuxcliphp 瀏覽:516
蘿卜源碼如何關閉用戶注冊驗證 瀏覽:756
蘋果手機頭條app怎麼沒有tv 瀏覽:563
電腦qq文件夾怎麼發不出去 瀏覽:614