Linux實現(xiàn)雙網(wǎng)卡綁定的代碼詳解
一、介紹
linux 主機安裝雙網(wǎng)卡,共享一個IP地址,對外提供訪問,實際同樣連接兩條物理線路到交換機實現(xiàn)平時雙網(wǎng)卡同時工作,分流網(wǎng)絡壓力,同時提供冗余備份,監(jiān)控,防止物理線路的單點故障。
配置雙網(wǎng)卡的目的:實現(xiàn)高可用、流量負載均衡
實現(xiàn)原理:
Linux bonding 驅動模塊 提供了一種方法,用以把多個網(wǎng)絡接口(network interface)組合成一個 邏輯的 “bonded” 接口。 Bonded 接口的工作方式取決于驅動的模式:不同的模式提供了熱備份或負載均衡等不同的服務。
幾種模式:
• 輪詢策略(round robin),mode=0,按照設備順序依次傳輸數(shù)據(jù)包,提供負載均衡和容錯能力
• 主備策略(active-backup),mode=1,只有主網(wǎng)卡處于工作狀態(tài),備網(wǎng)卡處于備用狀態(tài),主網(wǎng)卡壞掉后備網(wǎng)卡開始工作,提供容錯能力
• 異或策略(load balancing (xor)),mode=2,根據(jù)源MAC地址和目的MAC地址進行異或計算的結果來選擇傳輸設備,提供負載均衡和容錯能力
• 廣播策略(fault-tolerance (broadcast)),mode=3,將所有數(shù)據(jù)包傳輸給所有接口通過全部設備來傳輸所有數(shù)據(jù),一個報文會復制兩份通過bond下的兩個網(wǎng)卡分別發(fā)送出去,提供高容錯能力
• 動態(tài)鏈接聚合(lacp),mode=4,按照802.3ad協(xié)議的聚合自動配置來共享相同的傳輸速度,網(wǎng)卡帶寬最高可以翻倍,鏈路聚合控制協(xié)議(LACP)自動通知交換機聚合哪些端口,需要交換機支持 802.3ad協(xié)議,提供容錯能力
• 輸出負載均衡模式(transmit load balancing),mode=5,輸出負載均衡模式,只有輸出實現(xiàn)負載均衡,輸入數(shù)據(jù)時則只選定其中一塊網(wǎng)卡接收,需要網(wǎng)卡和驅動支持ethtool命令
• 輸入/輸出負載均衡模式(adaptive load balancing),mode=6,輸入和輸出都實現(xiàn)負載均衡,需要網(wǎng)卡和驅動支持ethtool命令
二、步驟
1、進入網(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)在啟動時加載bonding模塊,對外虛擬網(wǎng)絡接口設備為 bond0
miimon=100,表示系統(tǒng)每100ms監(jiān)測一次鏈路連接狀態(tài),如果有一條線路不通就轉入另一條線
mode=1,表示綁定模式為1
primary=eth0,系統(tǒng)首先eth0作為bond0接口與外界信息的傳輸接口
6、vim /etc/rc.local:
modprobe bonding miimon=100 mode=1
7、所有配置都已完成,重啟網(wǎng)絡:
systemctl restart network ifconfig查看信息
ifconfig
8、檢查bonding mode,想查看那個網(wǎng)卡再工作,使用下面這個命令
cat /proc/net/bonding/bond0 cat /sys/class/net/bond0/bonding/mode
9、 網(wǎng)卡切換
ifenslave –c bond0 eth0 //測試bonding能否正常切換 Bonding完成后配置全局網(wǎng)關,vi /etc/sysconfig/network
三、測試
通過斷開不同網(wǎng)卡,觀察網(wǎng)絡是否可以用
(注意:VMware實驗環(huán)境不能使用ifdown去斷開網(wǎng)卡,而是要在界面下方點擊斷開連接)
這里通過ping命令
到此這篇關于Linux實現(xiàn)雙網(wǎng)卡綁定的代碼詳解的文章就介紹到這了,更多相關Linux雙網(wǎng)卡綁定內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解Supervisor安裝與配置(Linux/Unix進程管理工具)
這篇文章主要介紹了詳解Supervisor安裝與配置(Linux/Unix進程管理工具),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06linux下查看系統(tǒng)進程占用的句柄數(shù)方法
下面小編就為大家?guī)硪黄猯inux下查看系統(tǒng)進程占用的句柄數(shù)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11