濮阳杆衣贸易有限公司

主頁 > 知識庫 > linux 使用bond實現(xiàn)雙網(wǎng)卡綁定單個IP的示例代碼

linux 使用bond實現(xiàn)雙網(wǎng)卡綁定單個IP的示例代碼

熱門標(biāo)簽:高德地圖標(biāo)注在建線路 山東400電話如何辦理 電話機(jī)器人服務(wù)差 濟(jì)源電話外呼系統(tǒng)怎么樣 宿州防封外呼系統(tǒng)廠家 ai電銷機(jī)器人 如何開發(fā) 智能外呼系統(tǒng)如何部署 電銷機(jī)器人對公司貢獻(xiàn) 蘭州語音電銷機(jī)器人軟件

雙網(wǎng)卡綁定單個IP 地址 為了提供網(wǎng)絡(luò)的高可用性,我們可能需要將多塊網(wǎng)卡綁定成一塊虛擬網(wǎng)卡對外提供服務(wù),這樣即使其中的一塊物理網(wǎng)卡出現(xiàn)故障,也不會導(dǎo)致連接中斷。
bond在Linux下叫bonding,IBM稱為etherchanel,broadcom叫team,但是名字怎么變,效果都是將兩塊或更多的網(wǎng)卡當(dāng)做一塊網(wǎng)卡使用,在增加帶寬的同時也可以提高冗余性。

實現(xiàn)雙網(wǎng)卡綁定的方法有兩種: bond和team
這里先記下bond的綁定方法

bond支持的模式

共支持bond[0-6]共七種模式,常用的就三種,如下:

  • mode=0:默認(rèn),平衡負(fù)載模式,有自動備援,但需要配置交換機(jī)。
  • mode=1:主備模式,其中一條線若斷線,其他線路將會自動備援,不需要配置交換機(jī)。
  • mode=6:平衡負(fù)載模式,有自動備援,不需要配置交換機(jī)。

至于其他的模式,解釋如下:

mode=2:選擇網(wǎng)卡的序號=(源MAC地址 XOR 目標(biāo)MAC地址) % Slave網(wǎng)卡(從網(wǎng)卡)的數(shù)量,其他的傳輸策略可以通過xmit_hash_policy配置項指定
mode=3:使用廣播策略,數(shù)據(jù)包會被廣播至所有Slave網(wǎng)卡進(jìn)行傳送
mode=4:使用動態(tài)鏈接聚合策略,啟動時會創(chuàng)建一個聚合組,所有Slave網(wǎng)卡共享同樣的速率和雙工設(shè)定
但是,mode4有兩個必要條件

1.支持使用ethtool工具獲取每個slave網(wǎng)卡的速率和雙工設(shè)定;
2.需要交換機(jī)支持IEEE 802.3ad 動態(tài)鏈路聚合(Dynamic link aggregation)模式
mode=5:基于每個slave網(wǎng)卡的速率選擇傳輸網(wǎng)卡。必要條件:支持使用ethtool工具獲取每個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ù)一直啟動失敗,而且日志里面也檢查不出錯誤來,可以關(guān)閉NetworkManager后再次重啟網(wǎng)卡試試

重啟網(wǎng)絡(luò)后查看各個網(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)做到這一步的時候,ens33或ens36中任意一塊網(wǎng)卡down掉,都不會影響通信

注: 如果你是使用vmware workstaction虛擬機(jī)進(jìn)行測試,請不要直接執(zhí)行命令ifdown ens33或ifdown ens36進(jìn)行測試,這樣因為虛擬機(jī)的原因測試不到效果,可以在網(wǎng)絡(luò)適配器里將已連接√給取消掉

到此這篇關(guān)于linux 使用bond實現(xiàn)雙網(wǎng)卡綁定單個IP的示例代碼的文章就介紹到這了,更多相關(guān)linux 雙網(wǎng)卡綁定單個IP內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:畢節(jié) 佛山 衡水 巴中 晉中 南寧 安陽 云南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux 使用bond實現(xiàn)雙網(wǎng)卡綁定單個IP的示例代碼》,本文關(guān)鍵詞  linux,使用,bond,實現(xiàn),雙,網(wǎng)卡,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux 使用bond實現(xiàn)雙網(wǎng)卡綁定單個IP的示例代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于linux 使用bond實現(xiàn)雙網(wǎng)卡綁定單個IP的示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    莆田市| 叙永县| 瑞金市| 商丘市| 锡林浩特市| 炎陵县| 小金县| 会东县| 大宁县| 石棉县| 平阴县| 潼关县| 集贤县| 咸丰县| 天等县| 泾川县| 辽宁省| 太康县| 高陵县| 肇州县| 嫩江县| 韶山市| 黔江区| 阿瓦提县| 沽源县| 繁峙县| 武功县| 林周县| 永寿县| 泾阳县| 上林县| 隆安县| 宁阳县| 克东县| 天峻县| 张家界市| 廊坊市| 通海县| 盐山县| 白城市| 丰顺县|