centos7下双网卡绑定(bonding技术)
現(xiàn)在很多服務(wù)器都自帶雙千兆網(wǎng)口,利用網(wǎng)卡綁定既能增加網(wǎng)絡(luò)帶寬,同時又能做相應(yīng)的冗余,目前應(yīng)用于很多的場景。linux操作系統(tǒng)下自帶的網(wǎng)卡綁定模式,Linux bonding驅(qū)動提供了一個把多個網(wǎng)絡(luò)接口設(shè)備捆綁為單個網(wǎng)絡(luò)接口設(shè)置來使用,用于網(wǎng)絡(luò)負(fù)載均衡及網(wǎng)絡(luò)冗余。當(dāng)然現(xiàn)在網(wǎng)卡產(chǎn)商也會出一些針對windows操作系統(tǒng)網(wǎng)卡管理軟件來做網(wǎng)卡綁定(windows操作系統(tǒng)沒有網(wǎng)卡綁定功能 需要第三方支持)。
一、Bonding的應(yīng)用
1、網(wǎng)絡(luò)負(fù)載均衡
對于bonding的網(wǎng)絡(luò)負(fù)載均衡是我們在文件服務(wù)器中常用到的,比如把三塊網(wǎng)卡,當(dāng)做一塊來用,解決一個IP地址,流量過大,服務(wù)器網(wǎng)絡(luò)壓力過大的問題。如果在內(nèi)網(wǎng)中,文件服務(wù)器為了管理和應(yīng)用上的方便,大多是用同一個IP地址。對于一個百M的本地網(wǎng)絡(luò)來說,文件服務(wù)器在多個用戶同時使用的情況下,網(wǎng)絡(luò)壓力是極大的,為了解決同一個IP地址,突破流量的限制,畢竟網(wǎng)線和網(wǎng)卡對數(shù)據(jù)的吞吐量是有限制的。如果在有限的資源的情況下,實現(xiàn)網(wǎng)絡(luò)負(fù)載均衡,最好的辦法就是bonding 。
2、網(wǎng)絡(luò)冗余
對于服務(wù)器來說,網(wǎng)絡(luò)設(shè)備的穩(wěn)定也是比較重要的,特別是網(wǎng)卡。大多通過硬件設(shè)備的冗余來提供服務(wù)器的可靠性和安全性,比如電源。bonding 也能為網(wǎng)卡提供冗余的支持。把網(wǎng)個網(wǎng)卡綁定到一個IP地址,當(dāng)一塊網(wǎng)卡發(fā)生物理性損壞的情況下,另一塊網(wǎng)卡也能提供正常的服務(wù)。
二、Bonding的原理
什么是bonding需要從網(wǎng)卡的混雜(promisc)模式說起。我們知道,在正常情況下,網(wǎng)卡只接收目的硬件地址(MAC Address)是自身Mac的以太網(wǎng)幀,對于別的數(shù)據(jù)幀都濾掉,以減輕驅(qū)動程序的負(fù)擔(dān)。但是網(wǎng)卡也支持另外一種被稱為混雜promisc的模式,可以接 收網(wǎng)絡(luò)上所有的幀,比如說tcpdump,就是運行在這個模式下。bonding也運行在這個模式下,而且修改了驅(qū)動程序中的mac地址,將兩塊網(wǎng)卡的 Mac地址改成相同,可以接收特定mac的數(shù)據(jù)幀。然后把相應(yīng)的數(shù)據(jù)幀傳送給bond驅(qū)動程序處理。
三、Bonding的模式
linux有七種網(wǎng)卡綁定模式:
|
模式代號 |
模式名稱 |
模式方式 |
說明 |
|
0 |
(balance-rr) Round-robin policy |
輪詢策略 |
該策略是按照設(shè)備順序依次傳輸數(shù)據(jù)包,直到最后一個設(shè)備。這種模式提供負(fù)載均衡和容錯能力。 |
|
1 |
(active-backup) Active-backup policy |
主備策略 |
該策略只有一個設(shè)備處于活動狀態(tài)。 一個宕掉另一個馬上由備份轉(zhuǎn)換為主設(shè)備。mac地址是外部可見的。 此模式提供了容錯能力。 |
|
2 |
(balance-xor)XOR policy |
異或策略 |
該策略是根據(jù)MAC地址異或運算的結(jié)果來選擇傳輸設(shè)備,提供負(fù)載均衡和容錯能力。 |
|
3 |
Broadcast policy |
廣播策略 |
該策略將所有數(shù)據(jù)包傳輸給所有接口通過全部設(shè)備來傳輸所有數(shù)據(jù),提供容錯能力。 |
|
4 |
(802.3ad) IEEE 802.3ad Dynamic link aggregation |
動態(tài)鏈接聚合 |
該策略通過創(chuàng)建聚合組來共享相同的傳輸速度,需要交換機(jī)也支持 802.3ad 模式,提供容錯能力。 |
|
5 |
(balance-tlb) Adaptive transmit load balancing |
適配器傳輸負(fù)載均衡 |
該策略是根據(jù)當(dāng)前的負(fù)載把發(fā)出的數(shù)據(jù)分給每一個設(shè)備,由當(dāng)前使用的設(shè)備處理收到的數(shù)據(jù)。本策略的通道聯(lián)合不需要專用的交換機(jī)支持,提供負(fù)載均衡和容錯能力。 |
|
6 |
(balance-alb) Adaptive load balancing |
適配器負(fù)載均衡 |
該策略在IPV4情況下包含適配器傳輸負(fù)載均衡策略,由ARP協(xié)商完成接收的負(fù)載,通道聯(lián)合驅(qū)動程序截獲ARP在本地系統(tǒng)發(fā)送出的請求,用其中一個設(shè)備的硬件地址覆蓋從屬設(shè)備的原地址。 |
常用的是模式0和模式1,通常使用模式0。
mode=1:在主備模式下,只有主網(wǎng)卡eth0工作,eth1作為備份網(wǎng)卡是不工作的,只有當(dāng)一個網(wǎng)絡(luò)接口失效時(例如交換機(jī)掉電等),為了不會出現(xiàn)網(wǎng)絡(luò)中斷,系統(tǒng)會按照配置指定的網(wǎng)卡順序啟動工作,保證機(jī)器仍能對外服務(wù),起到了失效保護(hù)功能。
mode=0:在負(fù)載均衡模式下,兩塊網(wǎng)卡都工作,提供兩倍帶寬。
四、Bonding的配置
1、選擇2個自己需要的網(wǎng)口,查看有哪些網(wǎng)口
[root@studying~]#ifconfig-a
2、編輯網(wǎng)口的配置文件
[root@studying~]#cd/etc/sysconfig/network-scripts
[root@studyingnetwork-scripts]#catifcfg-eth0
DEVICE=eth0 #網(wǎng)口名eth0
TYPE=Ethernet #以太網(wǎng)接口
ONBOOT=yes #LINUX在啟動時激活該網(wǎng)口
BOOTPROTO=none#使用什么協(xié)議激活網(wǎng)口
none表示不使用任何協(xié)議
static表示設(shè)置靜態(tài)IP
dhcp表示動態(tài)獲取IP
MASTER=bond0 #指定虛擬網(wǎng)口的名字(主人)
SLAVE=yes #備用(從設(shè)備)
[root@studyingnetwork-scripts]#catifcfg-eth1
DEVICE=eth1 #網(wǎng)口名eth1
TYPE=Ethernet #以太網(wǎng)接口
ONBOOT=yes #LINUX在啟動時激活該網(wǎng)口
BOOTPROTO=none#使用什么協(xié)議激活網(wǎng)口
none表示不使用任何協(xié)議
static表示設(shè)置靜態(tài)IP
dhcp表示動態(tài)獲取IP
MASTER=bond0 #指定虛擬網(wǎng)口的名字
SLAVE=yes #備用
備注:eth0、eth1的MASTER(主人)是bond0,本身是屬于從設(shè)備作為bond0的SLAVE(備用)
[root@studyingnetwork-scripts]#catifcfg-bond0
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.16.11.99
NETMASK=255.255.0.0
GATEWAY=172.16.1.1
4、關(guān)閉NetworkManager
systemctl stopNetworkManager
systemctl disable NetworkManager
5、加載bond模塊
modprobe bonding miimon=100mode=0
6、配置bonding
[root@studyingnetwork-scripts]#vim/etc/modprobe.d/bond.conf
末尾增加以下兩行
aliasbond0bonding
optionsbond0miimon=100mode=0
說明:miimon是用來進(jìn)行鏈路監(jiān)測的。 比如:miimon=100,那么系統(tǒng)每100ms監(jiān)測一次鏈路連接狀態(tài),如果有一條線路不通就轉(zhuǎn)入另一條線路;mode的值表示工作模式,常用的為0,1兩種。mode=0表示load balancing (round-robin)為負(fù)載均衡方式,兩塊網(wǎng)卡都工作。mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主備的工作方式,也就是說默認(rèn)情況下只有一塊網(wǎng)卡工作,另一塊做備份. bonding只能提供鏈路監(jiān)測,即從主機(jī)到交換機(jī)的鏈路是否接通。如果只是交換機(jī)對外的鏈路down掉了,而交換機(jī)本身并沒有故障,那么bonding會認(rèn)為鏈路沒有問題而繼續(xù)使用,Bond配置完成。
7、在/etc/rc.d/rc.local文件中加入如下語句,是系統(tǒng)啟動自動運行
ifenslave bond0 eth0 eth1
#route add -net 172.16.0.0 netmask 255.255.0.0 bond0---如果有需要添加該路由
5、reboot重啟
6、如果查看當(dāng)前哪個網(wǎng)口是主用網(wǎng)口
[root@studying~]#cat/proc/net/bonding/bond0
總結(jié)
以上是生活随笔為你收集整理的centos7下双网卡绑定(bonding技术)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 删除mysql会不会留下痕迹_MySQL
- 下一篇: 百度翻译api 实现简易微信翻译小程序