溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux網(wǎng)絡(luò)管理之網(wǎng)卡別名及網(wǎng)卡綁定配置

發(fā)布時(shí)間:2020-06-08 01:07:48 來源:網(wǎng)絡(luò) 閱讀:2006 作者:肖康帥 欄目:網(wǎng)絡(luò)管理

在日常的運(yùn)維工作當(dāng)中,有時(shí)候需要在一塊物理網(wǎng)卡上配置多個(gè)IP地址,這就是網(wǎng)卡子接口的概念,以及多塊網(wǎng)卡實(shí)現(xiàn)網(wǎng)卡的綁定,通俗來講就是多塊網(wǎng)卡使用的一個(gè)IP地址,下面我來詳細(xì)說明實(shí)現(xiàn)的過程。

創(chuàng)建網(wǎng)卡子接口

CentOS系統(tǒng)當(dāng)中網(wǎng)絡(luò)是由NetworkManager這個(gè)服務(wù)來管理的,它提供了一個(gè)圖形的界面,但此服務(wù)不支持物理網(wǎng)卡子接口的設(shè)置,所以在配置網(wǎng)卡子接口的時(shí)候,我們需要關(guān)閉此服務(wù)

臨時(shí)關(guān)閉:service NetworkManager stop

永久關(guān)閉:chkconfig  NetworkMangager  off

如果有時(shí)需要臨時(shí)創(chuàng)建子接口需要這么操作

[root@server ~]#  ip   addr add 10.1.252.100/16 dev eth0 label  eth0:0

注意:一旦重啟網(wǎng)絡(luò)服務(wù),將會(huì)失效

創(chuàng)建永久的網(wǎng)卡子接口,這時(shí)候就需要寫到網(wǎng)卡的配置文件里面去了網(wǎng)卡的配置文件路徑在/etc/sysconfig/network-scripts/目錄下以ifcfg開頭跟設(shè)備名的文件,加入我設(shè)置的子接口的配置文件叫做eth0:0

vim /etc/sysconfig/network-scripts/ifcfg-eth0:0(如果你每次編輯網(wǎng)卡配置文件,每次這個(gè)路徑覺得很長的時(shí)候可以定義別名,直接cd切換目錄到這個(gè)文件的當(dāng)前目錄下)

DEVICE=eth0:0   //網(wǎng)卡的子接口名稱                                                                                 

BOOTPROTO=none  //使用的協(xié)議這里是靜態(tài)                                                                   

IPADDR=192.168.1.100   //子接口的IP地址                                                                     

NETMASK=255.255.255.0  //子接口的子網(wǎng)掩碼                                                                

GATEWAY=192.168.1.254   //子接口的網(wǎng)關(guān)                                                                       

DNS1=8.8.8.8       //子接口指定的dns                                                                        

編輯網(wǎng)卡的配置文件之后需要重啟網(wǎng)絡(luò)服務(wù)                                                                     

[root@server network-scripts]# service network restart                                                    

[root@server network-scripts]# ifconfig                                                                                  

eth0     Link encap:Ethernet  HWaddr00:0C:29:D1:18:FD 

         inet addr:10.1.252.100 Bcast:10.1.255.255 Mask:255.255.0.0

         inet6 addr: fe80::20c:29ff:fed1:18fd/64 Scope:Link

         UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1

         RX packets:103623 errors:0 dropped:0 overruns:0 frame:0

         TX packets:824 errors:0 dropped:0 overruns:0 carrier:0

         collisions:0 txqueuelen:1000

         RX bytes:7615694 (7.2 MiB)  TXbytes:80710 (78.8 KiB)

 

eth0:0   Link encap:Ethernet  HWaddr00:0C:29:D1:18:FD 

         inet addr:192.168.1.100 Bcast:0.0.0.0  Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:              

至此網(wǎng)絡(luò)子接口就配置完成了

 

 

網(wǎng)卡綁定

在講解如何實(shí)現(xiàn)bonding網(wǎng)卡綁定前我先來講講bond的原理以及bond的工作模式,最后將實(shí)現(xiàn)網(wǎng)卡綁定的配置

bonding

就是將多塊網(wǎng)卡綁定同一IP地址對(duì)外提供服務(wù),可以實(shí)現(xiàn)高可用或者負(fù)載均衡。當(dāng)然給兩塊網(wǎng)卡設(shè)置同一IP地址是不可能的。通過bonding,虛擬一塊網(wǎng)卡對(duì)外提供連接,物理網(wǎng)卡被修改為相同的MAC地址。

正常情況下,網(wǎng)卡只接受目的硬件地址是自身MAC的以太網(wǎng)幀,對(duì)于別的數(shù)據(jù)幀都過濾掉,以減輕負(fù)擔(dān)。但是網(wǎng)卡也支持混雜promisc的模式,接收網(wǎng)絡(luò)上的所有幀,tcpdumpbonding就運(yùn)行在這個(gè)模式下,驅(qū)動(dòng)程序中的mac地址,將兩塊網(wǎng)卡的MAC地址改成相同,可以接受特定的mac數(shù)據(jù)幀,然后把相應(yīng)的數(shù)據(jù)幀傳給bond驅(qū)動(dòng)程序處理。雙網(wǎng)卡工作的時(shí)候表現(xiàn)為一個(gè)虛擬網(wǎng)卡(bond0),該虛擬網(wǎng)卡也需要驅(qū)動(dòng),驅(qū)動(dòng)名叫bonding。

bonding的工作模式

mode 0 balance-rr

  輪詢(round-robin)策略:從頭到尾順序的在每一個(gè)slave接口上面發(fā)送數(shù)據(jù)包。本模式提供負(fù)載均衡和容錯(cuò)的能力,兩塊網(wǎng)卡都工作。但是我們知道如果一個(gè)連接或者會(huì)話的數(shù)據(jù)包從不同的接口發(fā)出的話,中途再經(jīng)過不同的鏈路,在客戶端很有可能會(huì)出現(xiàn)數(shù)據(jù)包無序到達(dá)的問題,而無序到達(dá)的數(shù)據(jù)包需要重新要求被發(fā)送,這樣網(wǎng)絡(luò)的吞吐量就會(huì)下降


mode  1 active-backup

  主備策略:在綁定中,只有一個(gè)slave被激活。當(dāng)且僅當(dāng)活動(dòng)的slvae接口失敗時(shí)才會(huì)激活其他slave。為了避免交換機(jī)發(fā)生混亂時(shí)綁定的MAC地址只有一個(gè)外部端口上可見。此模式只提供了容錯(cuò)能力;由此可見此算法的優(yōu)點(diǎn)是可以提供高網(wǎng)絡(luò)連接的可用性,但是它的資源利用率較低,只有一個(gè)接口處于工作狀態(tài),在有 N 個(gè)網(wǎng)絡(luò)接口的情況下,資源利用率為1/N。

 

mode 2 (balance-xor)

    平衡策略:基于指定的傳輸HASH策略傳輸數(shù)據(jù)包。缺省的策略是:(源MAC地址 XOR 目標(biāo)MAC地址) % slave數(shù)量。其他的傳輸策略可以通過xmit_hash_policy選項(xiàng)指定,此模式提供負(fù)載平衡和容錯(cuò)能力


mode 3broadcast)

 廣播策略:在所有的slave接口上傳送所有的保溫。本模式提供容錯(cuò)能力。

 

mode 4 (802.ad)IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 動(dòng)態(tài)鏈接聚合)
特點(diǎn):創(chuàng)建一個(gè)聚合組,它們共享同樣的速率和雙工設(shè)定。根據(jù)802.3ad規(guī)范將多個(gè)slave工作在同一個(gè)激活的聚合體下。
外出流量的slave選舉是基于傳輸hash策略,該策略可以通過xmit_hash_policy選項(xiàng)從缺省的XOR策略改變到其他策略。需要注意的 是,并不是所有的傳輸策略都是802.3ad適應(yīng)的,尤其考慮到在802.3ad標(biāo)準(zhǔn)43.2.4章節(jié)提及的包亂序問題。不同的實(shí)現(xiàn)可能會(huì)有不同的適應(yīng) 性。

說明:如果想做成mode 0的負(fù)載均衡,僅僅設(shè)置這里options bond0 miimon=100 mode=0是不夠的,與網(wǎng)卡相連的交換機(jī)必須做特殊配置(這兩個(gè)端口應(yīng)該采取聚合方式),因?yàn)樽鯾onding的這兩塊網(wǎng)卡是使用同一個(gè)MAC地址.從原理分析一下(bond運(yùn)行在mode 0下):
mode 0下bond所綁定的網(wǎng)卡的IP都被修改成相同的mac地址,如果這些網(wǎng)卡都被接在同一個(gè)交換機(jī),那么交換機(jī)的arp表里這個(gè)mac地址對(duì)應(yīng)的端口就有多 個(gè),那么交換機(jī)接受到發(fā)往這個(gè)mac地址的包應(yīng)該往哪個(gè)端口轉(zhuǎn)發(fā)呢?正常情況下mac地址是全球唯一的,一個(gè)mac地址對(duì)應(yīng)多個(gè)端口肯定使交換機(jī)迷惑了。所以 mode0下的bond如果連接到交換機(jī),交換機(jī)這幾個(gè)端口應(yīng)該采取聚合方式(cisco稱為 ethernetchannel,foundry稱為portgroup),因?yàn)榻粨Q機(jī)做了聚合后,聚合下的幾個(gè)端口也被捆綁成一個(gè)mac地址.我們的解 決辦法是,兩個(gè)網(wǎng)卡接入不同的交換機(jī)即可。


mode 5 (balance-tlb)

   適配器傳輸負(fù)載均衡:不需要任何特別的switch(交換機(jī))支持的通道bonding。在每個(gè)slave上根據(jù)當(dāng)前的負(fù)載(根據(jù)速度計(jì)算)分配外出流量。如果正在接受數(shù)據(jù)的slave出故障了,另一個(gè)slave接管失敗的slave的MAC地址。

mode 6 (balance alb)

   適配器適應(yīng)性負(fù)載均衡:該模式包含了balance-tlb模式,同時(shí)加上針對(duì)IPV4流量的接收負(fù)載均衡(receive load balance, rlb),而且不需要任何switch(交換機(jī))的支持。接收負(fù)載均衡是通過ARP協(xié)商實(shí)現(xiàn)的。bonding驅(qū)動(dòng)截獲本機(jī)發(fā)送的ARP應(yīng)答,并把源硬件地址改寫為bond中某個(gè)slave的唯一硬件地址,從而使得不同的對(duì)端使用不同的硬件地址進(jìn)行通信。


    網(wǎng)卡綁定mode共有七種(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6等7種,其中常用的有三種:
mode=0:平衡負(fù)載模式,有自動(dòng)備援,但需要”Switch”支援及設(shè)定。
mode=1:自動(dòng)備援模式,其中一條線若斷線,其他線路將會(huì)自動(dòng)備援。
mode=6:平衡負(fù)載模式,有自動(dòng)備援,不必”Switch”支援及設(shè)定。

這里我給大家配置的mode 1模式,我這里使用的是vmware虛擬機(jī)來做的實(shí)驗(yàn),在做實(shí)驗(yàn)之前需要再添加一塊網(wǎng)卡,這樣linux系統(tǒng)中才會(huì)有兩塊網(wǎng)卡


第一步:創(chuàng)建bonding設(shè)備的配置文件

   [root@server network-scripts]# vimifcfg-bond0

    DEVICE=bond0

    BOOTPROTO=none

    IPADRR=10.1.252.100

    NETMASK=255.255.0.0

    GATEWAY=10.1.0.1

    DNS1=8.8.8.8

    BONDING_OPTS=” miion=100 mode=1”


                                                                           

第二步:編輯兩塊物理網(wǎng)卡的配置文件                                                                              

    [root@servernetwork-scripts]# vim ifcfg-eth0  

    DEVICE=eth0

    MASTER=bond0

    SLAVE=yes

                                                                                                                                         

    [root@servernetwork-scripts]# vim ifcfg-eth2  

    DEVICE=eth2

    MASTER=bond0

    SLAVE=yes

                                                                                                                                                      

         

注:miimon是用來進(jìn)行鏈路檢測的。如果miimon=100,那么系統(tǒng)每100毫秒檢測一次鏈路狀態(tài),如果有一條線路不通就轉(zhuǎn)入另一條線路。

    mode=1表示工作模式為主備模式

    MASTER=bond0 主設(shè)備為bond0

 

第三步:修改modprobe相關(guān)設(shè)定文件,并加載bonding模塊

1、vim /etc/modprobe.d/bonding.conf在文件最后追加以下內(nèi)容

alias bond0 bonding

options bonding mode=1 miimon=200

2、加載模塊

modprobe bonding

3、確認(rèn)模塊是否加載成功

lsmod|grep bonding

4、重啟網(wǎng)絡(luò)服務(wù),之后就是查看bond的狀態(tài)及測試


配置完成只需要重啟網(wǎng)絡(luò)服務(wù)即可,測試使用另一臺(tái)主機(jī)來ping bond0IP地址接口,接下來測試bond的狀態(tài),將其中的一塊網(wǎng)卡down掉,看另一塊網(wǎng)卡能不能頂上來,如果能,則表示成功

查看bond的狀態(tài):watch –n 1 cat /proc/net/bonding/bond 動(dòng)態(tài)觀察bond的狀態(tài)

   

    Ethernet Channel Bonding Driver: v3.7.1(April 27, 2011)

    Bonding Mode: load balancing (round-robin)

    MII Status: up

    MII Polling Interval (ms): 100

    Up Delay (ms): 0

    Down Delay (ms): 0

    Slave Interface: eth0

    MII Status: up

    Speed: 1000 Mbps

    Duplex: full

    Link Failure Count: 0

    Permanent HW addr: 00:0c:29:d1:18:fd

    Slave queue ID: 0

    Slave Interface: eth2

    MII Status: up

    Speed: 1000 Mbps

    Duplex: full

    Link Failure Count: 0

    Permanent HW addr: 00:0c:29:d1:18:07

    Slave queue ID: 0



當(dāng)我把eth0網(wǎng)卡down掉,當(dāng)前活動(dòng)的網(wǎng)卡就變成了eth2

    Ethernet Channel Bonding Driver: v3.7.1(April 27, 2011)

    Bonding Mode: load balancing (round-robin)

    MII Status: up

    MII Polling Interval (ms): 100

    Up Delay (ms): 0

    Down Delay (ms): 0

    Slave Interface: eth2

    MII Status: up

    Speed: 1000 Mbps

    Duplex: full

    Link Failure Count: 0

    Permanent HW addr: 00:0c:29:d1:18:fd

    Slave queue ID: 0

    Slave Interface: eth0

    MII Status: down

    Speed: 1000 Mbps

    Duplex: full

    Link Failure Count: 0

    Permanent HW addr: 00:0c:29:d1:18:07

    Slave queue ID: 0

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI