做完bond後eth上還有地址
A. bond和eth區別
bond和eth的區別在於支持hash的加密,支持負載均衡,更好的支持IPV6,總之要取代bond需要很多的添加。
B. 配置bond之後,能否通過分別啟動多個網卡,來保證網路不斷
1、編輯虛擬網路介面配置文件,指定網卡IP: # vi /etc/sysconfig/network-scripts/ifcfg-bond0 或者下面命令
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond02、#vi ifcfg-bond0 將第一行改成 DEVICE=bond0:
# cat ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.61.72
NETMASK=255.255.255.240
#BROADCAST=192.168.61.79
#GATEWAY=192.168.61.77
這里要注意,不要指定單個網卡的IP 地址、子網掩碼或網卡 ID。將上述信息指定到虛擬適配器(bonding)中即可。
# cat ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:15:17:CC:FC:35
MASTER=bond0
SLAVE=yes
# cat ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:15:17:CC:FC:34
MASTER=bond0
SLAVE=yes3、 # vi /etc/moles.conf 編輯 /etc/modprobe.conf或者/etc/moles.conf文件,加入如下兩行內容,以使系統在啟動時載入bonding模塊,對外虛擬網路介面設備為 bond0.加入下列兩行:
alias bond0 bonding
options bond0 miimon=100 mode=1
說明:miimon是用來進行鏈路監測的。 比如:miimon=100,那麼系統每100ms監測一次路連接狀態,如果有一條線路不通就轉入另一條線路;mode的值表示工作模式,他共有0,1,2,3四種模式,常用的為0,1兩種。
mode=0表示load balancing (round-robin)為負載均衡方式,兩塊網卡都工作。
mode=1表示fault-tolerance (active-backup)提供冗餘功能,工作方式是主備的工作方式,也就是說默認情況下只有一塊網卡作,另一塊做備份. bonding只能提供鏈路監測,即從主機到交換機的鏈路是否接通。如果只是交換機對外的鏈路down掉了,而交換機本身並沒有故障,那麼bonding會認為鏈路沒有問題而繼續使用4、 # vi /etc/rc.d/rc.local 加入兩行,加在啟動自運行文件裡面ifenslave bond0 eth0 eth1
route add -net 172.31.3.254 netmask 255.255.255.0 bond0 #如果需要的話加路由,不需要不用加到這時已經配置完畢重新啟動機器. 重啟會看見以下信息就表示配置成功了Bringing up interface bond0 OK
Bringing up interface eth0 OK
Bringing up interface eth1 OK
C. linux下bond網卡eth0、eth1 為什麼在解除bond以後,eth0、eth1 的mac地址還是相同
bond本身綁定網卡時就不會吧、把 eth0 和eth1的mac地址給成相同的,你出現的 MAC 地址相同,可能是你配置文件問題。cat /etc/udev/rules.d/70-persistent-net.rules 看你兩塊網卡的 MAC 相同嗎?
D. bonding後交換機怎麼配置
一、什麼是bonding 多塊網卡綁在一起,作為一個網卡用,實現負載均衡和提高帶寬,linux雙網卡綁定一個IP地址,實質工作就是使用兩塊網卡虛擬為一塊,使用同一個IP地址,是我們能夠得到更好的更快的服務。 二、配置過程 配置很簡單,一共四個步驟: 實驗的操作系統是Redhat Linux Enterprise 3.0 綁定的前提條件:晶元組型號相同,而且網卡應該具備自己獨立的BIOS晶元。 1.編輯虛擬網路介面配置文件,指定網卡IP 代碼如下: vi /etc/sysconfig/ network-scripts/ ifcfg-bond0 p[[emailprotected] root]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-bond0 將第一行改成 DEVICE=bond0 代碼如下: # cat ifcfg-bond0 pDEVICE=bond0 pBOOTPROTO=static pIPADDR=172.31.0.13 pNETMASK=255.255.252.0 pBROADCAST=172.31.3.254 pONBOOT=yes pTYPE=Ethernet 這里要主意,不要指定單個網卡的IP 地址、子網掩碼或網卡 ID。將上述信息指定到虛擬適配器(bonding)中即可。 代碼如下: [[emailprotected] network-scripts]# cat ifcfg-eth0 pDEVICE=eth0 pONBOOT=yes pBOOTPROTO=dhcp p[[emailprotected] network-scripts]# cat ifcfg-eth1 pDEVICE=eth0 pONBOOT=yes pBOOTPROTO=dhcp 3 # vi /etc/moles.conf 編輯 /etc/moles.conf 文件,加入如下一行內容,以使系統在啟動時載入bonding模塊,對外虛擬網路介面設備為 bond0 加入下列兩行 代碼如下: alias bond0 bonding poptions bond0 miimon=100 mode=1 說明:miimon是用來進行鏈路監測的。 比如:miimon=100,那麼系統每100ms監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路;mode的值表示工作模式,他共有0,1,2,3四種模式,常用的為0,1兩種。 mode=0表示load balancing (round-robin)為負載均衡方式,兩塊網卡都工作。 mode=1表示fault-tolerance (active-backup)提供冗餘功能,工作方式是主備的工作方式,也就是說默認情況下只有一塊網卡工作,另一塊做備份. bonding只能提供鏈路監測,即從主機到交換機的鏈路是否接通。如果只是交換機對外的鏈路down掉了,而交換機本身並沒有故障,那麼bonding會認為鏈路沒有問題而繼續使用 4 # vi /etc/rc.d/rc.local 加入兩行 代碼如下: ifenslave bond0 eth0 eth1 proute add -net 172.31.3.254 netmask 255.255.255.0 bond0 到這時已經配置完畢重新啟動機器. 重啟會看見以下信息就表示配置成功了 ................ Bringing up interface bond0 OK Bringing up interface eth0 OK Bringing up interface eth1 OK Bonding的工作模式 Linux Bonding默認使用輪轉策略。 基本類別是主備模式與負載均衡兩種模式: balance-rr (mode=0) 輪轉(Round-robin)策略:從頭到尾順序的在每一個slave介面上面發送數據包。本模式提供負載均衡和容錯的能力。 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會影響本模式的行為。 balance-xor(mode=2) XOR策略:基於所選擇的傳送hash策略。 本模式提供負載均衡和容錯的能力。 broadcast(mode=3) 廣播策略:在所有的slave介面上傳送所有的報文。本模式提供容錯能力。 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模式。 balance-tlb(mode=5) 自適應傳輸負載均衡:信道綁定不需要特殊的交換機支持。出口流量的分布取決於當前每個slave的負載(計算相對速度)。進口流量從當前的slave的接收。如果接收salve出錯,其他的slave接管失敗的slave的MAC地址繼續接收。 先決條件: 每個slave的基本驅動支持Ehtool獲取速率狀態。 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上。
E. linux下多個網卡做bond,採取mode4,注銷MAC地址後,重啟伺服器網卡起不來
交換機支持嗎?
mod=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 動態鏈接聚合)
特點:創建一個聚合組,它們共享同樣的速率和雙工設定。根據802.3ad規范將多個slave工作在同一個激活的聚合體下。
外出流量的slave選舉是基於傳輸hash策略,該策略可以通過xmit_hash_policy選項從預設的XOR策略改變到其他策略。需要注意的 是,並不是所有的傳輸策略都是802.3ad適應的,尤其考慮到在802.3ad標准43.2.4章節提及的包亂序問題。不同的實現可能會有不同的適應 性。
必要條件:
條件1:ethtool支持獲取每個slave的速率和雙工設定
條件2:switch(交換機)支持IEEE 802.3ad Dynamic link aggregation
條件3:大多數switch(交換機)需要經過特定配置才能支持802.3ad模式
F. linux bond 多個IP
兩者之間浮動,需要一個確定的業務IP,比如第一個網卡是0.1而第二個是0.2
那麼你還需要一個跑主業務的IP。在同一段網路,任意一個IP地址。
G. 求助centos7網卡問題
解決CentOS7網卡埠出現紊亂的問題
最近項目上,遇到一個問題,讓我們很是沒辦法,就是Dell R920 安裝上CentOS7的系統,做完Bonding後,發現埠重啟系統後會紊亂,過程如下:
埠紊亂情況
伺服器上一共配置了兩張萬兆兩口的網卡和一張千兆四口的網卡,其中不同萬兆卡上,兩埠做Bonding,同時千兆卡上也挑了間隔的兩口做Bonding,大概如下情況:、
eth0,eth1,eth2,eth3千兆埠,eth4,eth5,eth6,eth7是萬兆埠,這時經常紊亂是eth3,eth4的埠,兩埠變更,使得做了bonding的埠無法生效
CentOS7的埠命名規則
原來CentOS6之前的網卡埠命名都是eth的,CentOS7之後千兆網口已經變更成隨機的em0...emN或是ens01(N=整數),萬兆網口則變成p1p2等形式,要修改為eth的模式步驟如下:
a.編輯文件
vi /etc/sysconfig/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.font=latarcyrheb-sun16 net.ifnames=0 biosdevname=0 rd.lvm.lv=centos/root crashkernel=auto vconsole.keymap=us rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
「以上標紅色的值是修改為eth的基礎」
b.執行命令生效
grub2-mkconfig -o /boot/grub2/grub.cfg
c.增加規劃文件
vi /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="78:2b:cb:xx:xx:01", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="78:2b:cb:xx:xx:02", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="78:2b:cb:xx:xx:03", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="78:2b:cb:xx:xx:04", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1b:21:xx:xx:a1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1b:21:xx:xx:a0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth5"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:60:6e:xx:xx:f6", ATTR{type}=="1", KERNEL=="eth*", NAME="eth6"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:60:6e:xx:xx:f7", ATTR{type}=="1", KERNEL=="eth*", NAME="eth7"
「以上MAC地址與網卡埠對應」
總結:以上方法並不能解決網口紊亂問題,因為官方文檔都要求bond的網卡都不需要寫MAC地址,所以最後我們嘗試使在每個/etc/sysconfig/network-scripts/ifcfg-eth*網卡配置文件上寫上HWADDR,重啟有7-8遍,做ethtool檢查幾次,發現在沒有問題,所以建議遇到同樣問題同學,可以嘗試一下這種方法