Linux實(shí)現(xiàn)雙網(wǎng)卡綁定的代碼詳解
一、介紹
linux 主機(jī)安裝雙網(wǎng)卡,共享一個(gè)IP地址,對外提供訪問,實(shí)際同樣連接兩條物理線路到交換機(jī)實(shí)現(xiàn)平時(shí)雙網(wǎng)卡同時(shí)工作,分流網(wǎng)絡(luò)壓力,同時(shí)提供冗余備份,監(jiān)控,防止物理線路的單點(diǎn)故障。
配置雙網(wǎng)卡的目的:實(shí)現(xiàn)高可用、流量負(fù)載均衡
實(shí)現(xiàn)原理:
Linux bonding 驅(qū)動模塊 提供了一種方法,用以把多個(gè)網(wǎng)絡(luò)接口(network interface)組合成一個(gè) 邏輯的 “bonded” 接口。 Bonded 接口的工作方式取決于驅(qū)動的模式:不同的模式提供了熱備份或負(fù)載均衡等不同的服務(wù)。
幾種模式:
• 輪詢策略(round robin),mode=0,按照設(shè)備順序依次傳輸數(shù)據(jù)包,提供負(fù)載均衡和容錯(cuò)能力
• 主備策略(active-backup),mode=1,只有主網(wǎng)卡處于工作狀態(tài),備網(wǎng)卡處于備用狀態(tài),主網(wǎng)卡壞掉后備網(wǎng)卡開始工作,提供容錯(cuò)能力
• 異或策略(load balancing (xor)),mode=2,根據(jù)源MAC地址和目的MAC地址進(jìn)行異或計(jì)算的結(jié)果來選擇傳輸設(shè)備,提供負(fù)載均衡和容錯(cuò)能力
• 廣播策略(fault-tolerance (broadcast)),mode=3,將所有數(shù)據(jù)包傳輸給所有接口通過全部設(shè)備來傳輸所有數(shù)據(jù),一個(gè)報(bào)文會復(fù)制兩份通過bond下的兩個(gè)網(wǎng)卡分別發(fā)送出去,提供高容錯(cuò)能力
• 動態(tài)鏈接聚合(lacp),mode=4,按照802.3ad協(xié)議的聚合自動配置來共享相同的傳輸速度,網(wǎng)卡帶寬最高可以翻倍,鏈路聚合控制協(xié)議(LACP)自動通知交換機(jī)聚合哪些端口,需要交換機(jī)支持 802.3ad協(xié)議,提供容錯(cuò)能力
• 輸出負(fù)載均衡模式(transmit load balancing),mode=5,輸出負(fù)載均衡模式,只有輸出實(shí)現(xiàn)負(fù)載均衡,輸入數(shù)據(jù)時(shí)則只選定其中一塊網(wǎng)卡接收,需要網(wǎng)卡和驅(qū)動支持ethtool命令
• 輸入/輸出負(fù)載均衡模式(adaptive load balancing),mode=6,輸入和輸出都實(shí)現(xiàn)負(fù)載均衡,需要網(wǎng)卡和驅(qū)動支持ethtool命令
二、步驟
1、進(jìn)入網(wǎng)卡配置目錄下:
cd /etc/sysconfig/network-scripts/
2、vim ifcfg-bond0:
TYPE=Ethernet BOOTPROTO=static NAME=bond0 DEVICE=bond0 IPADDR="192.168.50.8" NETMASK=255.255.255.0 GATEWAY=192.168.50.2 DNS1=114.114.114.114 ONBOOT=yes BONDING_OPTS="miimon=100 mode=1"
3、vim ifcfg-ens33:
TYPE=Ethernet BOOTPROTO=none NAME=ens33 DEVICE=ens33 ONBOOT=yes MASTER=bond0 SLAVE=yes
4、vim ifcfg-ens36:
TYPE=Ethernet BOOTPROTO=none NAME=ens36 DEVICE=ens36 ONBOOT=yes MASTER=bond0 SLAVE=yes
5、vim /etc/modprobe.d/dist.conf:
alias bond0 bonding options bond0 miimon=100 mode=1 primary=eth0
alias bond0 bonding,表示系統(tǒng)在啟動時(shí)加載bonding模塊,對外虛擬網(wǎng)絡(luò)接口設(shè)備為 bond0
miimon=100,表示系統(tǒng)每100ms監(jiān)測一次鏈路連接狀態(tài),如果有一條線路不通就轉(zhuǎn)入另一條線
mode=1,表示綁定模式為1
primary=eth0,系統(tǒng)首先eth0作為bond0接口與外界信息的傳輸接口
6、vim /etc/rc.local:
modprobe bonding miimon=100 mode=1
7、所有配置都已完成,重啟網(wǎng)絡(luò):
systemctl restart network ifconfig查看信息
ifconfig
8、檢查bonding mode,想查看那個(gè)網(wǎng)卡再工作,使用下面這個(gè)命令
cat /proc/net/bonding/bond0 cat /sys/class/net/bond0/bonding/mode
9、 網(wǎng)卡切換
ifenslave –c bond0 eth0 //測試bonding能否正常切換 Bonding完成后配置全局網(wǎng)關(guān),vi /etc/sysconfig/network
三、測試
通過斷開不同網(wǎng)卡,觀察網(wǎng)絡(luò)是否可以用
(注意:VMware實(shí)驗(yàn)環(huán)境不能使用ifdown去斷開網(wǎng)卡,而是要在界面下方點(diǎn)擊斷開連接)
這里通過ping命令
到此這篇關(guān)于Linux實(shí)現(xiàn)雙網(wǎng)卡綁定的代碼詳解的文章就介紹到這了,更多相關(guān)Linux雙網(wǎng)卡綁定內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux服務(wù)器tomact 8.0啟動慢的完美解決方法
這篇文章主要介紹了Linux服務(wù)器tomact 8.0啟動慢的完美解決方法,需要的朋友可以參考下2017-08-08
解決nginx/apache靜態(tài)資源跨域訪問問題詳解
有時(shí)為了優(yōu)化網(wǎng)站訪問速度,會給一些靜態(tài)資源配置cdn加速,但是有時(shí)候會出現(xiàn)跨域訪問的問題,在nginx和apache服務(wù)中可進(jìn)行如下配置2018-10-10
重啟寶塔面板后提示-ModuleNotFoundError: No module named ''geventwebso
這篇文章主要介紹了重啟寶塔面板后提示-ModuleNotFoundError: No module named 'geventwebsocket',本文給出了解決方法,需要的朋友可以參考下2019-11-11
深入淺析Linux輕量級自動運(yùn)維工具-Ansible
這篇文章主要介紹了Linux輕量級自動運(yùn)維工具-Ansible的相關(guān)知識,需要的朋友可以參考下2017-09-09
Linux磁盤分區(qū)實(shí)現(xiàn)原理及方法解析
這篇文章主要介紹了Linux磁盤分區(qū)實(shí)現(xiàn)原理及方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Win7下XAMPP集成環(huán)境中Apache無法啟動的問題解決
這篇文章主要介紹了Win7下XAMPP集成環(huán)境中Apache無法啟動的問題解決,通常是端口沖突,文中也講到了PotgreSQL的相關(guān)問題,需要的朋友可以參考下2015-07-07
Ubuntu搭建web站點(diǎn)并發(fā)布公網(wǎng)訪問詳細(xì)步驟(內(nèi)網(wǎng)穿透)
這篇文章主要給大家介紹了關(guān)于Ubuntu搭建web站點(diǎn)并發(fā)布公網(wǎng)訪問(內(nèi)網(wǎng)穿透)的相關(guān)資料,內(nèi)網(wǎng)穿透是一種實(shí)現(xiàn)在外網(wǎng)任意地點(diǎn)訪問內(nèi)網(wǎng)的方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
Ubuntu環(huán)境編譯安裝PHP和Nginx的方法
這篇文章主要介紹了Ubuntu環(huán)境編譯安裝PHP和Nginx的方法,較為詳細(xì)的分析了Ubuntu環(huán)境編譯安裝PHP和Nginx的具體步驟、相關(guān)命令與操作技巧,需要的朋友可以參考下2019-08-08

