時間:2016-03-12來源:linux網站 作者:進京
環境介紹:
系統:目前最新的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後的數字比較長,如果是在真實服務器上,你應該能看到eno1、eno2 ……,下圖是網卡的配置文件,系統會自動創建,但也有可能沒有,原因我也不清楚,沒有也沒關系,可以自己創建,所以如果你發現自己的服務器沒有網卡配置文件也不要奇怪
上面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
4、bond測試
我們的環境一共有5塊網卡,2塊剛才配置成bond0,有2塊沒有配置,也就沒有IP,有1塊用來連接ssh的有Ip地址,需要停用掉,否則影響實驗效果,使用 ifdown 設備名將設備停用,詳見下圖:
最後使用 ip addr命令查看,確保只有bond0有ip地址就可以了,其他接口都使用ifdown停掉。
測試時使用 ifdown eno1斷開一塊網卡再測試。
5、CLI配置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
本文永久更新地址:http://www.linuxdiyf.com/linux/18870.html