1. bond和eth區別
bond和eth的區別在於支持hash的加密,支持負載均衡,更好的支持IPV6,總之要取代bond需要很多的添加。
2. linux下bond網卡eth0、eth1 為什麼在解除bond以後,eth0、eth1 的mac地址還是相同
bond本身綁定網卡時就不會吧、把 eth0 和eth1的mac地址給成相同的,你出現的 MAC 地址相同,可能是你配置文件問題。cat /etc/udev/rules.d/70-persistent-net.rules 看你兩塊網卡的 MAC 相同嗎?
3. 各位達人,REDHAT 5.6 LINUX 2個網卡配置了2個IP,為什麼一個網段通,另一個不同呢。
先看看普通網卡IP地址的配置,修改/etc/sysconfig/network-scripts/ifcfg-eth0文件內容為:
DEVICE=eth0 #物理設備名
HWADDR=00:0C:29:01:98:27 #MAC地址
BOOTPROTO=static #靜態分配
IPADDR=192.168.1.103 #這就是你設置的靜態IP地址
NETMASK=255.255.255.0 #子網掩碼
GATEWAY=192.168.1.1 #網關地址
ONBOOT=yes #引導或啟動網卡服務時是否激活設備
RHEL6下bond的雙網卡綁定服務
操作步驟和注意事項如下:
1、注意事項:
首先確認要綁定的是哪2個網口,避免綁定時綁錯網口。
2、說明:
這里以綁定eth0和eth1的2個網口為例。
配置文件都在/etc/sysconfig/network-scripts/目錄下。
操作步驟
綁定前需要徹底關閉NetworlManger服務,否則會和bond網卡沖突
12 chkconfig NetworlMangeroff #停止開機啟動該服務
service NetworlManger stop #停止網卡管理服務,其中網卡配置文件中NM_CONTROLLED=yes //設備eth0是否可以由Network Manager圖形管理工具託管,可以直接刪除本行。
1、編輯新的ifcfg-bond0文件
cd/etc/sysconfig/network-scripts/
cp–rfifcfg-eth0ifcfg-bond0##復制ifcfg-eth0到ifcfg-bond0
ls##查看文件,即可看到有ifcfg-bond0文件
增加或修改如下內容:
# vi ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.1.155
NETMASK=255.255.255.0
GATEWAY=192.168.1.254 ##此IP信息為客戶要求信息
ONBOOT=yes
BOOTPROTO=static
USERCTL=no
BONDING_OPTS=」mode=0 miimon=100 primary=eth0」 ##設置eth0為主通信網口,具體以現場情況為准
保存退出
2、分別編輯ifcfg-eth0和ifcfg-eth1文件
# vi ifcfg-eth0
DEVICE=eth0
HWADDR=AB:CD:EF:12:34:56 注意eth0的MAC地址要保留。不要刪除或屏蔽
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
#vi ifcfg-eth1
HWADDR=AB:CD:EF:12:34:57 注意eth1 的MAC地址要保留。不要刪除或屏蔽
DEVICE=eth1
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
注意:其他未要求設置網口,需將網卡配置文件中的全部屏蔽或去掉,MAC地址必須保留。以免硬碟網卡綁定,造成網卡順序漂移。
不過不用擔心,在linux系統中有個記錄eth設備網卡名和MAC地址的對應關系表
3、修改/etc/modprobe.d/dist.conf文件,添加以下內容:
alias bond0 bonding
options bond0 miimon=100 mode=0 ##具體以施工現場要求為准
說明:
miimon是用來進行鏈路監測的。比如:miimon=100,那麼系統每100ms監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路;
mode的值表示工作模式,他共有0,1,2,3四種模式,常用的為0,1兩種。需根據交換機可提供的工作模式選擇。
mode=0表示loadbalancing(round-robin)為負載均衡方式,兩塊網卡都工作。
mode=1表示fault-tolerance(active-backup)提供冗餘功能,工作方式是主備的工作方式,也就是說默認情況下只有一塊網卡工作,另一塊做備份。
※注意:
a、bonding只能提供鏈路監測,即從主機到交換機的鏈路是否接通。如果只是交換機對外的鏈路down掉了,而交換機本身並沒有故障,那麼bonding會認為鏈路沒有問題而繼續使用。
b、設置的模式要與交換機設置的模式一致。
4、重啟系統
系統啟動時,會自動載入bond模塊和激活冗餘網卡設置。可使用以下命令進行判斷:
#ifconfig
即可看到bond0的信息,bond0會自動獲取eth0的MAC地址。
若確認bond0網卡已經激活,可通過插拔網線或ifdownethX操作進行切換測試。在切換過程中,網路連接正常即可。
比較細心的人就會發現,bond0、eth0、eth1這組的三個網卡的MAC地址是一樣的。
4. 理解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口,可是可以的。
5. linux系統bond網口的mac地址問題
三個配置文件
ifcfg-eth0
ifcfg-eth1
ifcfg-bond0
中添加MACADDR項,指定MAC值
6. 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
7. linux bond 多個IP
兩者之間浮動,需要一個確定的業務IP,比如第一個網卡是0.1而第二個是0.2
那麼你還需要一個跑主業務的IP。在同一段網路,任意一個IP地址。