Centos 7 配置 Bonding

環境介紹:

系統:目前最新的7.2

[root@localhostnetwork-scripts]# lsb_release -a

LSBVersion:        :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch

DistributorID:        CentOS

Description:        CentOSLinux release 7.2.1511 (Core)

Release:        7.2.1511

Codename:        Core

網絡:

VMware虛擬機,添加5塊網卡都配置NAT,有一塊負責跟主機ssh

 

1、環境準備

centos 7最小化安裝,啓動後看一下網卡IP,可以通過 ssh 連接了,先安裝幾個網絡管理工具,像 ifconfig默認都沒有安裝。

 

yum -y install vimwget pciutils net-tools

 

2、查看網絡設備

[root@localhostnetwork-scripts]# nmcli device status

DEVICE                   TYPE     STATE         CONNECTION        

eno16777736  ethernet connected     eno16777736       

eno83886664  ethernet connected     Wired connection 1

eno33554960  ethernet disconnected  --                

eno50332216  ethernet disconnected  --                

eno67109440  ethernet disconnected  --                

lo           loopback  unmanaged    --                

 

DEVICE列能看到我們有5塊網卡,名字爲什麼這麼奇怪可以看命名規則的文章,因爲我這用的是虛擬機,eno後的數字比較長,如果是在真實服務器上,你應該能看到eno1eno2 ……,下圖是網卡的配置文件,系統會自動創建,但也有可能沒有,原因我也不清楚,沒有也沒關係,可以自己創建,所以如果你發現自己的服務器沒有網卡配置文件也不要奇怪。


上面nmcli device status命令的輸出結果我們再看一下,STATE狀態這一行有connected disconnected,我一開始以爲是有沒有連接網線的,後來發現是表示有沒有正確獲取IP地址,上面的結果顯示只有兩塊網卡正確獲取IP,可能有朋友會問那不接網線會顯示什麼呢?

 

[root@localhostnetwork-scripts]# nmcli dev sta

DEVICE       TYPE     STATE         CONNECTION        

eno83886664  ethernet connected     Wired connection 1

eno33554960  ethernet disconnected  --                

eno50332216  ethernet disconnected  --                

eno67109440  ethernet disconnected  --                

eno16777736 ethernet  unavailable   --                

lo           loopback  unmanaged    --                

 

不接網線網絡肯定沒法用,所以顯示unavailable網絡不可用。細心的朋友有沒有發現nmcli命令的不同,可以使用縮寫,不知道紅帽有沒有借鑑思科,nmcli device status 可以縮寫成 nmcli d s,命令不能縮寫啊,可以補全,呵呵。

 

好了,網卡介紹就到這,下面我們看一下網卡的分配:

eno16777736 -- eno1 -- bond 0 (外網)

eno33554960 -- eno2-- bond 0

              

eno50332216 -- eno3 -- bond 1(內網)      

eno67109440 -- eno4-- bond 1

 

eno83886664 -- NAT

 

bond 0連接外網, bond 1連接內網,爲了以後方便對網卡操作可以在配置文件中修改設備名。

 

3、配置Bonding

Centos 7 提供三種方式配置

nmtui

nmcli

cli

nmtui是一種圖形化方式,剛開始可以使用這種方式。(配置bond會對網卡重新生成配置文件,系統自動生成的可以刪除),我們先使用nmtui來配置。



配置完成後會生成三個配置文件,



配置文件可以精簡一下:


[root@localhostnetwork-scripts]# cat ifcfg-bond0

DEVICE=bond0

TYPE=Bond

BONDING_MASTER=yes

BOOTPROTO=static

NAME=bond0

ONBOOT=yes

BONDING_OPTS="resend_igmp=1updelay=0 use_carrier=1 miimon=100 downdelay=0 xmit_hash_policy=0primary_reselect=0 fail_over_mac=0 arp_validate=0 mode=balance-rr lacp_rate=0arp_interval=0 ad_select=0"

IPADDR=192.168.64.20

NETMASK=255.255.255.0

GATEWAY=192.168.64.2

DNS1=192.168.64.1

 

[root@localhostnetwork-scripts]# cat ifcfg-eno1

TYPE=Ethernet

NAME=eno1

DEVICE=eno16777736

ONBOOT=yes

MASTER=bond0

SLAVE=yes

 

[root@localhostnetwork-scripts]# cat ifcfg-eno2

TYPE=Ethernet

NAME=eno2

DEVICE=eno33554960

ONBOOT=yes

MASTER=bond0

SLAVE=yes


重啓服務:

[root@localhostnetwork-scripts]# nmcli conn reload

[root@localhostnetwork-scripts]# systemctl restart network

][root@localhostnetwork-scripts]# nmcli  dev sta

DEVICE       TYPE     STATE         CONNECTION        

bond0        bond      connected     bond0             

eno16777736  ethernet connected     eno1              

eno33554960  ethernet connected     eno2              

eno83886664  ethernet connected     Wired connection 1

eno50332216  ethernet disconnected  --                

eno67109440  ethernet disconnected  --                

lo           loopback  unmanaged    --                

[root@localhostnetwork-scripts]# ifconfig bond0

bond0:flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500

        inet 192.168.220.20  netmask 255.255.255.0  broadcast 192.168.220.255

        inet6 fe80::4d1:d2ff:fe5b:804a  prefixlen 64 scopeid 0x20<link>

        ether 00:0c:29:d7:dc:0d  txqueuelen 0 (Ethernet)

        RX packets 8  bytes 690 (690.0 B)

        RX errors 0  dropped 0 overruns 0  frame 0

        TX packets 2  bytes 138 (138.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0 collisions 0


4bond測試

我們的環境一共有5塊網卡,2塊剛纔配置成bond0,有2塊沒有配置,也就沒有IP,有1塊用來連接ssh的有Ip地址,需要停用掉,否則影響實驗效果,使用 ifdown 設備名將設備停用,詳見下圖:



最後使用 ip addr命令查看,確保只有bond0ip地址就可以了,其他接口都使用ifdown停掉。

測試時使用  ifdown eno1斷開一塊網卡再測試。




5CLI配置Bonding

可以直接修改配置文件來配置bonding,將之前的配置文件複製一份,把IP地址、device名稱修改一下就可以了。

 

[root@localhostnetwork-scripts]# cat ifcfg-bond1

DEVICE=bond1

TYPE=Bond

BONDING_MASTER=yes

BOOTPROTO=static

NAME=bond1

ONBOOT=yes

BONDING_OPTS="resend_igmp=1updelay=0 use_carrier=1 miimon=100 downdelay=0 xmit_hash_policy=0primary_reselect=0 fail_over_mac=0 arp_validate=0 mode=balance-rr lacp_rate=0arp_interval=0 ad_select=0"

IPADDR=192.168.64.30

NETMASK=255.255.255.0

GATEWAY=192.168.64.2

DNS1=192.168.64.2

 

[root@localhostnetwork-scripts]# cat ifcfg-eno3

TYPE=Ethernet

NAME=eno3

DEVICE=eno67109440

ONBOOT=yes

MASTER=bond1

SLAVE=yes

 

[root@localhostnetwork-scripts]# cat ifcfg-eno4

TYPE=Ethernet

NAME=eno4

DEVICE=eno50332216

ONBOOT=yes

MASTER=bond1

SLAVE=yes

 

重啓網絡服務,service命令系統還支持,但會提示轉給 systemctl,可以直接使用 systemctl重啓服務。


測試一下應該沒問題的,所以以後要配置bond,可以直接修改配置文件就可以了。



6、使用nmcli命令創建Bonding

nmcli con add type bond ifname bond0 mode balance-rr      #創建master,模式爲round-robin
nmcli con add type bond-slave ifname eno1 master bond0   #添加eno1爲slave
nmcli con add type bond-slave ifname eno2 master bond0   #添加eno2爲slave

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章