網(wǎng)卡(接口)綁定是將多塊 網(wǎng)卡邏輯地連接到一起從而允許故障轉(zhuǎn)移或者提高吞吐率的方法。提高服務(wù)器網(wǎng)絡(luò)可用性的一個(gè)方式是使用多個(gè)網(wǎng)卡。Linux 綁定驅(qū)動(dòng)程序提供了一種將多個(gè)網(wǎng)卡聚合到一個(gè)邏輯的綁定接口的方法。這是個(gè)新的實(shí)現(xiàn)綁定的方法,并不影響 linux 內(nèi)核中舊綁定驅(qū)動(dòng)。
網(wǎng)卡綁定為我們提供了兩個(gè)主要的好處:
現(xiàn)在讓我們?cè)?CentOS 7 上配置網(wǎng)卡綁定吧。我們需要決定選取哪些接口配置成一個(gè)組接口(Team interface)。
運(yùn)行 ip link命令查看系統(tǒng)中可用的接口。
$ ip link
這里我們使用 eno16777736和eno33554960網(wǎng)卡在 “主動(dòng)備份” 模式下創(chuàng)建一個(gè)組接口。(譯者注:關(guān)于不同模式可以參考:多網(wǎng)卡的7種bond模式原理)
按照下面的語法,用 nmcli命令為網(wǎng)絡(luò)組接口創(chuàng)建一個(gè)連接。
# nmcli con add type team con-name CNAME ifname INAME [config JSON]
CNAME指代連接的名稱,INAME是接口名稱,JSON(JavaScript Object Notation) 指定所使用的處理器(runner)。JSON語法格式如下:
'{"runner":{"name":"METHOD"}}'
METHOD是以下的其中一個(gè):broadcast、activebackup、roundrobin、loadbalance或者lacp。
1. 創(chuàng)建組接口
現(xiàn)在讓我們來創(chuàng)建組接口。這是我們創(chuàng)建組接口所使用的命令。
# nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'
運(yùn)行 # nmcli con show命令驗(yàn)證組接口配置。
# nmcli con show
2. 添加從設(shè)備
現(xiàn)在讓我們添加從設(shè)備到主設(shè)備 team0。這是添加從設(shè)備的語法:
# nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
在這里我們添加 eno16777736和eno33554960作為team0接口的從設(shè)備。
# nmcli con add type team-slave con-name team0-port1 ifname eno16777736 master team0
# nmcli con add type team-slave con-name team0-port2 ifname eno33554960 master team0
再次用命令 #nmcli con show驗(yàn)證連接配置?,F(xiàn)在我們可以看到從設(shè)備配置信息。
#nmcli con show
3. 分配 IP 地址
上面的命令會(huì)在 /etc/sysconfig/network-scripts/目錄下創(chuàng)建需要的配置文件。
現(xiàn)在讓我們?yōu)?team0 接口分配一個(gè) IP 地址并啟用這個(gè)連接。這是進(jìn)行 IP 分配的命令。
# nmcli con mod team0 ipv4.addresses "192.168.1.24/24 192.168.1.1"
# nmcli con mod team0 ipv4.method manual
# nmcli con up team0
4. 驗(yàn)證綁定
用 #ip add show team0命令驗(yàn)證 IP 地址信息。
#ip add show team0
現(xiàn)在用 teamdctl命令檢查主動(dòng)備份配置功能。
# teamdctl team0 state
現(xiàn)在讓我們把激活的端口斷開連接并再次檢查狀態(tài)來確認(rèn)主動(dòng)備份配置是否像希望的那樣工作。
# nmcli dev dis eno33554960
斷開激活端口后再次用命令 #teamdctl team0 state檢查狀態(tài)。
# teamdctl team0 state
是的,它運(yùn)行良好?。∥覀儠?huì)使用下面的命令連接回到 team0 的斷開的連接。
#nmcli dev con eno33554960
我們還有一個(gè) teamnl命令可以顯示teamnl命令的一些選項(xiàng)。
用下面的命令檢查在 team0 運(yùn)行的端口。
# teamnl team0 ports
顯示 team0當(dāng)前活動(dòng)的端口。
# teamnl team0 getoption activeport
好了,我們已經(jīng)成功地配置了網(wǎng)卡綁定 :-) ,如果有任何反饋,請(qǐng)告訴我們。
作者:Arun Pyasi譯者:ictlyh校對(duì):wxy
本文由 LCTT原創(chuàng)翻譯,Linux中國榮譽(yù)推出
本文由 LCTT 原創(chuàng)翻譯,Linux中國首發(fā)。也想加入譯者行列,為開源做一些自己的貢獻(xiàn)么?歡迎加入LCTT!
翻譯工作和譯文發(fā)表僅用于學(xué)習(xí)和交流目的,翻譯工作遵照CC 協(xié)議規(guī)定,如果我們的工作有侵犯到您的權(quán)益,請(qǐng)及時(shí)聯(lián)系我們。
歡迎遵照CC 協(xié)議規(guī)定轉(zhuǎn)載,敬請(qǐng)?jiān)谡闹袠?biāo)注并保留原文/譯文鏈接和作者/譯者等信息。
文章僅代表作者的知識(shí)和看法,如有不同觀點(diǎn),請(qǐng)樓下排隊(duì)吐槽:D