9.1.3 綁定兩塊網(wǎng)卡

2023-05-12 10:09 更新

一般來(lái)講,生產(chǎn)環(huán)境必須提供7×24小時(shí)的網(wǎng)絡(luò)傳輸服務(wù)。借助于網(wǎng)卡綁定技術(shù),不僅可以提高網(wǎng)絡(luò)傳輸速度,更重要的是,還可以確保在其中一塊網(wǎng)卡出現(xiàn)故障時(shí),依然可以正常提供網(wǎng)絡(luò)服務(wù)。假設(shè)我們對(duì)兩塊網(wǎng)卡實(shí)施了綁定技術(shù),這樣在正常工作中它們會(huì)共同傳輸數(shù)據(jù),使得網(wǎng)絡(luò)傳輸?shù)乃俣茸兊酶?;而且即使有一塊網(wǎng)卡突然出現(xiàn)了故障,另外一塊網(wǎng)卡便會(huì)立即自動(dòng)頂替上去,保證數(shù)據(jù)傳輸不會(huì)中斷。

下面我們來(lái)看一下如何綁定網(wǎng)卡。

第1步:在虛擬機(jī)系統(tǒng)中再添加一塊網(wǎng)卡設(shè)備,請(qǐng)確保兩塊網(wǎng)卡都處在同一個(gè)網(wǎng)絡(luò)連接中(即網(wǎng)卡模式相同),如圖9-10和圖9-11所示。處于相同模式的網(wǎng)卡設(shè)備才可以進(jìn)行網(wǎng)卡綁定,否則這兩塊網(wǎng)卡無(wú)法互相傳送數(shù)據(jù)。

圖9-10 在虛擬機(jī)中再添加一塊網(wǎng)卡設(shè)備

圖9-11 確保兩塊網(wǎng)卡處在同一個(gè)網(wǎng)絡(luò)連接中(即網(wǎng)卡模式相同)

第2步:使用Vim文本編輯器來(lái)配置網(wǎng)卡設(shè)備的綁定參數(shù)。網(wǎng)卡綁定的理論知識(shí)類似于前面學(xué)習(xí)的RAID硬盤(pán)組,我們需要對(duì)參與綁定的網(wǎng)卡設(shè)備逐個(gè)進(jìn)行“初始設(shè)置”。需要注意的是,這些原本獨(dú)立的網(wǎng)卡設(shè)備此時(shí)需要被配置成為一塊“從屬”網(wǎng)卡,服務(wù)于“主”網(wǎng)卡,不應(yīng)該再有自己的IP地址等信息。在進(jìn)行了初始設(shè)置之后,它們就可以支持網(wǎng)卡綁定。

    [root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    USERCTL=no
    DEVICE=eno16777736
    MASTER=bond0
    SLAVE=yes
    [root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno33554968
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    USERCTL=no
    DEVICE=eno33554968
    MASTER=bond0
    SLAVE=yes

還需要將綁定后的設(shè)備命名為bond0并把IP地址等信息填寫(xiě)進(jìn)去,這樣當(dāng)用戶訪問(wèn)相應(yīng)服務(wù)的時(shí)候,實(shí)際上就是由這兩塊網(wǎng)卡設(shè)備在共同提供服務(wù)。

    [root@linuxprobe ~]# vim /etc/sysconfig/network-scripts/ifcfg-bond0
    TYPE=Ethernet
    BOOTPROTO=none
    ONBOOT=yes
    USERCTL=no
    DEVICE=bond0
    IPADDR=192.168.10.10
    PREFIX=24
    DNS=192.168.10.1
    NM_CONTROLLED=no

第3步:讓Linux內(nèi)核支持網(wǎng)卡綁定驅(qū)動(dòng)。常見(jiàn)的網(wǎng)卡綁定驅(qū)動(dòng)有三種模式—mode0、mode1和mode6。下面以綁定兩塊網(wǎng)卡為例,講解使用的情景。

mode0(平衡負(fù)載模式):平時(shí)兩塊網(wǎng)卡均工作,且自動(dòng)備援,但需要在與服務(wù)器本地網(wǎng)卡相連的交換機(jī)設(shè)備上進(jìn)行端口聚合來(lái)支持綁定技術(shù)。

mode1(自動(dòng)備援模式):平時(shí)只有一塊網(wǎng)卡工作,在它故障后自動(dòng)替換為另外的網(wǎng)卡。

mode6(平衡負(fù)載模式):平時(shí)兩塊網(wǎng)卡均工作,且自動(dòng)備援,無(wú)須交換機(jī)設(shè)備提供輔助支持。

比如有一臺(tái)用于提供NFS或者samba服務(wù)的文件服務(wù)器,它所能提供的最大網(wǎng)絡(luò)傳輸速度為100Mbit/s,但是訪問(wèn)該服務(wù)器的用戶數(shù)量特別多,那么它的訪問(wèn)壓力一定很大。在生產(chǎn)環(huán)境中,網(wǎng)絡(luò)的可靠性是極為重要的,而且網(wǎng)絡(luò)的傳輸速度也必須得以保證。針對(duì)這樣的情況,比較好的選擇就是mode6網(wǎng)卡綁定驅(qū)動(dòng)模式了。因?yàn)閙ode6能夠讓兩塊網(wǎng)卡同時(shí)一起工作,當(dāng)其中一塊網(wǎng)卡出現(xiàn)故障后能自動(dòng)備援,且無(wú)需交換機(jī)設(shè)備支援,從而提供了可靠的網(wǎng)絡(luò)傳輸保障。

下面使用Vim文本編輯器創(chuàng)建一個(gè)用于網(wǎng)卡綁定的驅(qū)動(dòng)文件,使得綁定后的bond0網(wǎng)卡設(shè)備能夠支持綁定技術(shù)(bonding);同時(shí)定義網(wǎng)卡以mode6模式進(jìn)行綁定,且出現(xiàn)故障時(shí)自動(dòng)切換的時(shí)間為100毫秒。

    [root@linuxprobe ~]# vim /etc/modprobe.d/bond.conf
    alias bond0 bonding
    options bond0 miimon=100 mode=6

第4步:重啟網(wǎng)絡(luò)服務(wù)后網(wǎng)卡綁定操作即可成功。正常情況下只有bond0網(wǎng)卡設(shè)備才會(huì)有IP地址等信息:

    [root@linuxprobe ~]# systemctl restart network
    [root@linuxprobe ~]# ifconfig
    bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
    inet 192.168.10.10 netmask 255.255.255.0 broadcast 192.168.10.255
    inet6 fe80::20c:29ff:fe9c:637d prefixlen 64 scopeid 0x20<link>
    ether 00:0c:29:9c:63:7d txqueuelen 0 (Ethernet)
    RX packets 700 bytes 82899 (80.9 KiB)
    RX errors 0 dropped 6 overruns 0 frame 0
    TX packets 588 bytes 40260 (39.3 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


    eno16777736: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
    ether 00:0c:29:9c:63:73 txqueuelen 1000 (Ethernet)
    RX packets 347 bytes 40112 (39.1 KiB)
    RX errors 0 dropped 6 overruns 0 frame 0
    TX packets 263 bytes 20682 (20.1 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


    eno33554968: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
    ether 00:0c:29:9c:63:7d txqueuelen 1000 (Ethernet)
    RX packets 353 bytes 42787 (41.7 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 325 bytes 19578 (19.1 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

可以在本地主機(jī)執(zhí)行ping 192.168.10.10命令檢查網(wǎng)絡(luò)的連通性。為了檢驗(yàn)網(wǎng)卡綁定技術(shù)的自動(dòng)備援功能,我們突然在虛擬機(jī)硬件配置中隨機(jī)移除一塊網(wǎng)卡設(shè)備,可以非常清晰地看到網(wǎng)卡切換的過(guò)程(一般只有1個(gè)數(shù)據(jù)丟包)。然后另外一塊網(wǎng)卡會(huì)繼續(xù)為用戶提供服務(wù)。

    [root@linuxprobe ~]# ping 192.168.10.10
    PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
    64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.109 ms
    64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.102 ms
    64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.066 ms
    ping: sendmsg: Network is unreachable
    64 bytes from 192.168.10.10: icmp_seq=5 ttl=64 time=0.065 ms
    64 bytes from 192.168.10.10: icmp_seq=6 ttl=64 time=0.048 ms
    64 bytes from 192.168.10.10: icmp_seq=7 ttl=64 time=0.042 ms
    64 bytes from 192.168.10.10: icmp_seq=8 ttl=64 time=0.079 ms
    ^C
    --- 192.168.10.10 ping statistics ---
    8 packets transmitted, 7 received, 12% packet loss, time 7006ms
    rtt min/avg/max/mdev = 0.042/0.073/0.109/0.023 ms

出現(xiàn)問(wèn)題?大膽提問(wèn)!

因讀者們硬件不同或操作錯(cuò)誤都可能導(dǎo)致實(shí)驗(yàn)配置出錯(cuò),請(qǐng)耐心再仔細(xì)看看操作步驟吧,不要?dú)怵H~

Linux技術(shù)交流請(qǐng)加A群:560843(滿),B群:340829(推薦),C群:463590(推薦),點(diǎn)此查看全國(guó)群。

*本群特色:通過(guò)口令驗(yàn)證確保每一個(gè)群?jiǎn)T都是《Linux就該這么學(xué)》的讀者,答疑更有針對(duì)性,不定期免費(fèi)領(lǐng)取定制禮品。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)