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

2023-05-12 10:09 更新

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

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

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

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

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

第2步:使用Vim文本編輯器來配置網(wǎng)卡設(shè)備的綁定參數(shù)。網(wǎng)卡綁定的理論知識類似于前面學(xué)習(xí)的RAID硬盤組,我們需要對參與綁定的網(wǎng)卡設(shè)備逐個進行“初始設(shè)置”。需要注意的是,這些原本獨立的網(wǎng)卡設(shè)備此時需要被配置成為一塊“從屬”網(wǎng)卡,服務(wù)于“主”網(wǎng)卡,不應(yīng)該再有自己的IP地址等信息。在進行了初始設(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地址等信息填寫進去,這樣當用戶訪問相應(yīng)服務(wù)的時候,實際上就是由這兩塊網(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ū)動。常見的網(wǎng)卡綁定驅(qū)動有三種模式—mode0、mode1和mode6。下面以綁定兩塊網(wǎng)卡為例,講解使用的情景。

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

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

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

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

下面使用Vim文本編輯器創(chuàng)建一個用于網(wǎng)卡綁定的驅(qū)動文件,使得綁定后的bond0網(wǎng)卡設(shè)備能夠支持綁定技術(shù)(bonding);同時定義網(wǎng)卡以mode6模式進行綁定,且出現(xiàn)故障時自動切換的時間為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è)備才會有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

可以在本地主機執(zhí)行ping 192.168.10.10命令檢查網(wǎng)絡(luò)的連通性。為了檢驗網(wǎng)卡綁定技術(shù)的自動備援功能,我們突然在虛擬機硬件配置中隨機移除一塊網(wǎng)卡設(shè)備,可以非常清晰地看到網(wǎng)卡切換的過程(一般只有1個數(shù)據(jù)丟包)。然后另外一塊網(wǎng)卡會繼續(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)問題?大膽提問!

因讀者們硬件不同或操作錯誤都可能導(dǎo)致實驗配置出錯,請耐心再仔細看看操作步驟吧,不要氣餒~

Linux技術(shù)交流請加A群:560843(滿),B群:340829(推薦),C群:463590(推薦),點此查看全國群。

*本群特色:通過口令驗證確保每一個群員都是《Linux就該這么學(xué)》的讀者,答疑更有針對性,不定期免費領(lǐng)取定制禮品。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號