linux 使用bond實(shí)現(xiàn)雙網(wǎng)卡綁定單個(gè)IP的示例代碼
雙網(wǎng)卡綁定單個(gè)IP 地址 為了提供網(wǎng)絡(luò)的高可用性,我們可能需要將多塊網(wǎng)卡綁定成一塊虛擬網(wǎng)卡對外提供服務(wù),這樣即使其中的一塊物理網(wǎng)卡出現(xiàn)故障,也不會(huì)導(dǎo)致連接中斷。
bond在Linux下叫bonding,IBM稱為etherchanel,broadcom叫team,但是名字怎么變,效果都是將兩塊或更多的網(wǎng)卡當(dāng)做一塊網(wǎng)卡使用,在增加帶寬的同時(shí)也可以提高冗余性。
實(shí)現(xiàn)雙網(wǎng)卡綁定的方法有兩種: bond和team
這里先記下bond的綁定方法
bond支持的模式
共支持bond[0-6]共七種模式,常用的就三種,如下:
- mode=0:默認(rèn),平衡負(fù)載模式,有自動(dòng)備援,但需要配置交換機(jī)。
- mode=1:主備模式,其中一條線若斷線,其他線路將會(huì)自動(dòng)備援,不需要配置交換機(jī)。
- mode=6:平衡負(fù)載模式,有自動(dòng)備援,不需要配置交換機(jī)。
至于其他的模式,解釋如下:
mode=2:選擇網(wǎng)卡的序號(hào)=(源MAC地址 XOR 目標(biāo)MAC地址) % Slave網(wǎng)卡(從網(wǎng)卡)的數(shù)量,其他的傳輸策略可以通過xmit_hash_policy配置項(xiàng)指定
mode=3:使用廣播策略,數(shù)據(jù)包會(huì)被廣播至所有Slave網(wǎng)卡進(jìn)行傳送
mode=4:使用動(dòng)態(tài)鏈接聚合策略,啟動(dòng)時(shí)會(huì)創(chuàng)建一個(gè)聚合組,所有Slave網(wǎng)卡共享同樣的速率和雙工設(shè)定
但是,mode4有兩個(gè)必要條件
1.支持使用ethtool工具獲取每個(gè)slave網(wǎng)卡的速率和雙工設(shè)定;
2.需要交換機(jī)支持IEEE 802.3ad 動(dòng)態(tài)鏈路聚合(Dynamic link aggregation)模式
mode=5:基于每個(gè)slave網(wǎng)卡的速率選擇傳輸網(wǎng)卡。必要條件:支持使用ethtool工具獲取每個(gè)slave網(wǎng)卡的速率。
配置bond
| 網(wǎng)卡 | bond1 IP | bond 模式 |
|---|---|---|
| ens33、ens36 | 192.168.171.111 | mode 1 |
注: ip地址配置在bond1 上,物理網(wǎng)卡無需配置IP地址
#加載bonding模塊,并確認(rèn)已經(jīng)加載 [root@web01 ~]# modprobe --first-time bonding [root@web01 ~]# lsmod | grep bonding bonding 141566 0 #編輯bond1配置文件 [root@web01 ~]# cat > /etc/sysconfig/network-scripts/ifcfg-bond1 << EOF > DEVICE=bond1 > TYPE=Bond > IPADDR=192.168.171.111 > NETMASK=255.255.255.0 > GATEWAY==192.168.171.2 > DNS1=114.114.114.114 > DNS2=8.8.8.8 > USERCTL=no > BOOTPROTO=none > ONBOOT=yes > EOF #修改ens33配置文件 [root@web01 ~]# cat > /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF > DEVICE=ens33 > TYPE=Ethernet > ONBOOT=yes > BOOTPROTO=none > DEFROUTE=yes > IPV4_FAILURE_FATAL=no > NMAE=ens33 > MASTER=bond1 # 需要和上面的ifcfg-bond0配置文件中的DEVICE的值一致 > SLAVE=yes > EOF #修改ens36配置文件 [root@web01 ~]# cat > /etc/sysconfig/network-scripts/ifcfg-ens33 << EOF > DEVICE=ens36 > TYPE=Ethernet > ONBOOT=yes > BOOTPROTO=none > DEFROUTE=yes > IPV4_FAILURE_FATAL=no > NAME=ens36 > MASTER=bood1 > SLAVE=yes > EOF # 配置bonding [root@web01 ~]# cat >> /etc/modules-load.d/bonding.conf << EOF > alias bond1 bonding > options bonding mode=1 miimon=200 # 加載bonding模塊,對外虛擬網(wǎng)絡(luò)接口設(shè)備為 bond1 > EOF #重啟網(wǎng)卡使配置生效 [root@web01 ~]# systemctl restart network
注:如果配置完畢后重啟網(wǎng)卡服務(wù)一直啟動(dòng)失敗,而且日志里面也檢查不出錯(cuò)誤來,可以關(guān)閉NetworkManager后再次重啟網(wǎng)卡試試
重啟網(wǎng)絡(luò)后查看各個(gè)網(wǎng)卡的信息
[root@web01 ~]# ip a show ens33
2: ens33: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond1 state UP group default qlen 1000
link/ether 00:0c:29:9f:33:9f brd ff:ff:ff:ff:ff:ff
[root@web01 ~]# ip a show ens36
3: ens36: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond1 state UP group default qlen 1000
link/ether 00:0c:29:9f:33:9f brd ff:ff:ff:ff:ff:ff
[root@web01 ~]# ip a show bond1
7: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:9f:33:9f brd ff:ff:ff:ff:ff:ff
inet 192.168.171.111/24 brd 192.168.171.255 scope global noprefixroute bond1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe9f:339f/64 scope link
valid_lft forever preferred_lft forever
查看bond1相關(guān)信息
#查看bond1的接口狀態(tài) [root@web01 ~]# cat /proc/net/bonding/bond1 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: load balancing (round-robin) # 綁定模式 MII Status: up # 接口狀態(tài) MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: ens33 # 備用接口: ens33 MII Status: up # 接口狀態(tài) Speed: 1000 Mbps # 端口速率 Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:9f:33:9f # 接口永久MAC地址 Slave queue ID: 0 Slave Interface: ens36 # 備用接口: ens36 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:9f:33:a9 Slave queue ID: 0
當(dāng)做到這一步的時(shí)候,ens33或ens36中任意一塊網(wǎng)卡down掉,都不會(huì)影響通信
注: 如果你是使用vmware workstaction虛擬機(jī)進(jìn)行測試,請不要直接執(zhí)行命令ifdown ens33或ifdown ens36進(jìn)行測試,這樣因?yàn)樘摂M機(jī)的原因測試不到效果,可以在網(wǎng)絡(luò)適配器里將已連接√給取消掉
到此這篇關(guān)于linux 使用bond實(shí)現(xiàn)雙網(wǎng)卡綁定單個(gè)IP的示例代碼的文章就介紹到這了,更多相關(guān)linux 雙網(wǎng)卡綁定單個(gè)IP內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Ubuntu下ssh服務(wù)的安裝與登陸(ssh遠(yuǎn)程登陸)
本篇文章主要介紹了Ubuntu下ssh服務(wù)的安裝與登陸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-11-11
Linux文件編輯命令vi詳細(xì)整理(總結(jié))
本篇文章主要介紹了Linux文件編輯命令詳細(xì)整理(總結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
linux查看防火墻是否關(guān)閉的實(shí)例方法
在本篇文章里小編給各位分享的是關(guān)于linux查看防火墻是否關(guān)閉的實(shí)例方法,需要的朋友們可以學(xué)習(xí)下。2020-03-03
ubuntu下讓python腳本可直接運(yùn)行的實(shí)現(xiàn)方法
今天小編就為大家分享一篇ubuntu下讓python腳本可直接運(yùn)行的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Apache Kafka單節(jié)點(diǎn)極速部署指南及搭建開發(fā)單節(jié)點(diǎn)環(huán)境的操作步驟
本文介紹了如何在10分鐘內(nèi)快速部署Apache Kafka單節(jié)點(diǎn)開發(fā)環(huán)境,首先,簡要介紹了Kafka的背景、特性和應(yīng)用場景,然后,詳細(xì)描述了環(huán)境準(zhǔn)備、安裝、配置文件詳解、配置為系統(tǒng)服務(wù)、驗(yàn)證服務(wù)和關(guān)鍵配置項(xiàng)深度解析等內(nèi)容,感興趣的朋友一起看看吧2025-03-03
如何使用curl命令發(fā)送POST請求(帶token)
這篇文章主要介紹了如何使用curl命令發(fā)送POST請求(帶token),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04

