日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 双网卡绑定(bonding)实现负载均衡或故障转移

發(fā)布時(shí)間:2023/12/31 linux 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 双网卡绑定(bonding)实现负载均衡或故障转移 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

linux 雙網(wǎng)卡綁定(bonding)實(shí)現(xiàn)負(fù)載均衡或故障轉(zhuǎn)移

我們?cè)谶@介紹Linux雙網(wǎng)卡綁定實(shí)現(xiàn)就使用兩塊網(wǎng)卡虛擬成為一塊網(wǎng)卡,這個(gè)聚合起來的設(shè)備看起來是一個(gè)單獨(dú)的以太網(wǎng)接口設(shè)備,通俗點(diǎn)講就是兩塊網(wǎng)卡具有相同的IP地址而并行鏈接聚合成一個(gè)邏輯鏈路工作。其實(shí)這項(xiàng)技術(shù)在Sun和Cisco中早已存在,被稱為Trunking和Etherchannel 技術(shù),在Linux的2.4.x的內(nèi)核中也采用這這種技術(shù),被稱為bonding。

? ? ?bonding技術(shù)的最早應(yīng)用是在集群——beowulf上,為了提高集群節(jié)點(diǎn)間的數(shù)據(jù)傳輸而設(shè)計(jì)的。下面我們討論一下bonding 的原理,什么是bonding需要從網(wǎng)卡的混雜(promisc)模式說起。我們知道,在正常情況下,網(wǎng)卡只接收目的硬件地址(MAC Address)是自身Mac的以太網(wǎng)幀,對(duì)于別的數(shù)據(jù)幀都濾掉,以減輕驅(qū)動(dòng)程序的負(fù)擔(dān)。但是網(wǎng)卡也支持另外一種被稱為混雜promisc的模式,可以接收網(wǎng)絡(luò)上所有的幀,比如說tcpdump,就是運(yùn)行在這個(gè)模式下。bonding也運(yùn)行在這個(gè)模式下,而且修改了驅(qū)動(dòng)程序中的mac地址,將兩塊網(wǎng)卡的 Mac地址改成相同,可以接收特定mac的數(shù)據(jù)幀。然后把相應(yīng)的數(shù)據(jù)幀傳送給bond驅(qū)動(dòng)程序處理。

? ? ?直接給兩塊網(wǎng)卡設(shè)置同一IP地址是不可能的。Kernels 2.4.12及以后的版本均供bonding模塊,以前的版本可以通過patch實(shí)現(xiàn)。

一、編輯虛擬網(wǎng)絡(luò)接口配置文件,指定網(wǎng)卡IP

假設(shè)eth0是對(duì)外服務(wù)的網(wǎng)卡,已經(jīng)調(diào)試好網(wǎng)絡(luò);eth1是希望與eth0同時(shí)對(duì)外提供服務(wù)的網(wǎng)卡。
  • # cd /etc/sysconfig/network-scripts/

  • # vi ifcfg-bond0

  • 復(fù)制代碼寫入如下信息和原來 ifcfg-eth0 的配置其實(shí)差不

    所以我建議執(zhí)行如下語句,將ifcfg-eth0復(fù)制一份再改。
  • # cp ifcfg-eth0 ifcfg-bon0

  • 復(fù)制代碼將ifcfg-bon0的信息修改大致如下:
  • DEVICE=bond0

  • BOOTPROTO=static

  • IPADDR=[IP]

  • NETMASK=[MASK]

  • BROADCAST=[BROADCAST]

  • GATEWAY=[GATEWAY]

  • ONBOOT=yes

  • TYPE=Ethernet

  • 復(fù)制代碼二、配置真實(shí)網(wǎng)卡

    修改ifcfg-eth0如下:
  • DEVICE=eth0

  • BOOTPROTO=none

  • ONBOOT=yes

  • MASTER=bond0 #如果不寫,則必須做第四步

  • SLAVE=yes ? ? ? #如果不寫,則必須做第四步

  • USERCTL=yes

  • 復(fù)制代碼類似地修ifcfg-eth1如下:
  • DEVICE=eth1

  • BOOTPROTO=none

  • ONBOOT=yes

  • MASTER=bond0 #如果不寫,則必須做第四步

  • SLAVE=yes ? ? ? #如果不寫,則必須做第四步

  • USERCTL=yes

  • 復(fù)制代碼三、加載模塊,讓系統(tǒng)支持bonding

    默認(rèn)情況下,內(nèi)核已支持bonding,只需要簡單修改/etc/modprobe.conf 這個(gè)配置文檔就可以了:添加兩行
  • alias bond0 bonding

  • options bond0 miimon=100 mode=1

  • 復(fù)制代碼說明:

    ? ? ?mode指定了bond0的工作模式,常用的是0和1,0表示負(fù)載均衡方式,1表示主從方式,可根據(jù)需要自行配置。常用的為0,1兩種。mode=0表示 load balancing (round-robin)為負(fù)載均衡方式,兩塊網(wǎng)卡都工作。mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主備的工作方式,也就是說默認(rèn)情況下只有一塊網(wǎng)卡工作,另一塊做備份。bonding只能提供鏈路監(jiān)測(cè),即從主機(jī)到交換機(jī)的鏈路是否接通。如果只是交換機(jī)對(duì)外的鏈路down掉了,而交換機(jī)本身并沒有故障,那么bonding會(huì)認(rèn)為鏈路沒有問題而繼續(xù)使用。 miimon是用來進(jìn)行鏈路監(jiān)測(cè)的。比如:miimon=100,那么系統(tǒng)每100ms監(jiān)測(cè)一次鏈路連接狀態(tài),如果有一條線路不通就轉(zhuǎn)入另一條線路。



    四、增加開機(jī)啟動(dòng)腳本

    在 /etc/rc.d/rc.local里加上
  • ifenslave bond0 eth0 eth1

  • 復(fù)制代碼如果eth0和eth1都寫了MASTER和SLAVE,則上面的步驟做不做都無所謂。

    五、重啟

    reboot或者service network restart 都可以看到結(jié)果。

    六、測(cè)試

    ? ? ?ping著某個(gè)地址,當(dāng)然是能ping通的地址啦。如果發(fā)現(xiàn)網(wǎng)絡(luò)不通,請(qǐng)檢查ifcfg-bond0的網(wǎng)絡(luò)設(shè)置。

    然后拔掉一根網(wǎng)線,如果ping沒斷,證明拔了一根backup的線,不是主線,重新插上等兩分鐘。

    此時(shí)拔掉另一根網(wǎng)線,估計(jì)現(xiàn)在可以看到ping超時(shí)或者卡在那里,稍等10~30秒,ping繼續(xù)連同。

    測(cè)試成功。


    轉(zhuǎn)載于:https://blog.51cto.com/netkailong/1200887

    總結(jié)

    以上是生活随笔為你收集整理的linux 双网卡绑定(bonding)实现负载均衡或故障转移的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。