通過前面文章的學習已經(jīng)掌握了Linux系統(tǒng)配置管理的知識萍鲸,本文講解Centos7網(wǎng)絡(luò)配置知識。
Linux要對外提供服務,需要保證網(wǎng)絡(luò)通信正常脱柱,因此需要正確配置網(wǎng)絡(luò)參數(shù)。本文將講解如何使用Network Manager配置網(wǎng)絡(luò)參數(shù)拉馋、管理網(wǎng)絡(luò)會話服務榨为,以及如何手工綁定mode6模式雙網(wǎng)卡,實現(xiàn)網(wǎng)絡(luò)的負載均衡煌茴。
一随闺、Centos7網(wǎng)絡(luò)概述
1.1 Centos7網(wǎng)絡(luò)管理
對于網(wǎng)絡(luò)功能來說,CentOS7與之前的版本變化較大蔓腐。
在RHEL/CentOS 6及以前的版本中矩乐,網(wǎng)絡(luò)功能是通過一系列網(wǎng)絡(luò)相關(guān)的腳本文件實現(xiàn)(如/etc/init.d/network文件,及如下/sbin/if*文件等)回论。
從RHEL/CentOS 7開始散罕,網(wǎng)絡(luò)功能默認由NetworkManager以服務的形式提供。Network Manager是一個能夠動態(tài)控制和配置網(wǎng)絡(luò)的守護進程傀蓉,管理網(wǎng)絡(luò)服務和網(wǎng)絡(luò)連接欧漱,對應NetworkManager.service服務(其配置文件/etc/NetworkManager/NetworkManager.conf,默認為空葬燎,無需任何配置)
雖然RHEL/CentOS 6中的網(wǎng)絡(luò)相關(guān)的腳本文件仍然以network.service的形式被支持误甚,但是建議使用NetworkManager.service來進行配置和管理。并且只能選擇其中一種谱净,不然會有沖突窑邦。
1.2 network.service
etwork.service是系統(tǒng)提供的服務之一,以兼容遺留的網(wǎng)絡(luò)功能岳遥。該服務的運行也被納入SystemD的管理奕翔。
管理命令格式
? systemctl start|stop|restart|status network
設(shè)置開機啟動
? systemctl enable network
以上命令設(shè)置network.service在系統(tǒng)啟動時自動加載,注意浩蓉,系統(tǒng)啟動時派继,/etc/init.d/network會讀取ifcfg文件,并檢測NetworkManager是否已經(jīng)已經(jīng)啟動該設(shè)備捻艳。如果NetworkManager已經(jīng)啟動該設(shè)備驾窟,則/etc/init.d/network腳本什么也不做;否則/etc/init.d/network會啟動該設(shè)備认轨。
1.3 NetworkManager.service
啟動networkmanager(注意大小寫绅络,linux嚴格區(qū)分大小寫)
***systemctl start NetworkManager***
NetworkManager默認不會執(zhí)行任何腳本,當腳本滿足以下條件時,才會安裝字母順序順序執(zhí)行恩急。
(1)位于/etc/NetworkManager/dispatcher.d/目錄下
(2)擁有root用戶的可執(zhí)行權(quán)限
1.4 網(wǎng)絡(luò)配置文件
無論是network.service杉畜,還是NetworkManager.service,都能夠使用如下網(wǎng)絡(luò)相關(guān)的配置文件衷恭。
(1)全局配置文件
文件名:/etc/sysconfig/network
(2)網(wǎng)卡相關(guān)的配置文件
配置文件所在文件夾:/etc/sysconfig/network-scripts/
注意:修改網(wǎng)絡(luò)配置文件后此叠,需要重新加載網(wǎng)絡(luò)連接,如果是通過network.service則使用命令:systemctl restart network随珠;如果是通過NetworkManager.service則使用nmcli命令:nmcli connection reload灭袁。
二、網(wǎng)絡(luò)參數(shù)配置
配置服務本質(zhì)就是配置文件茸歧,以下演示2種方式
2.1 通過編輯配置文件配置網(wǎng)絡(luò)
在 RHEL7以前的版本中显沈,網(wǎng)卡配置文件的前綴為 eth,第 1 塊網(wǎng)卡為 eth0拉讯,第 2 塊網(wǎng)卡為 eth1铜涉;以此類推遂唧。而在 RHEL7中吊奢,網(wǎng)卡配置文件的前綴則以 ifcfg 開始盖彭, 加上網(wǎng)卡名稱共同組成了網(wǎng)卡配置文件的名字,例如 ifcfg-eno16777736页滚。
現(xiàn)在有一個名稱為 ifcfg-eno16777736 的網(wǎng)卡設(shè)備裹驰,我們將其配置為開機自啟動,并且 IP 地址贞盯、子網(wǎng)沪饺、網(wǎng)關(guān)等信息由人工指定,其步驟應該如下所示件余。
(1)找到網(wǎng)卡配置文件
網(wǎng)卡配置文件存放在/etc/sysconfig/network-scripts目錄下,形如:ifcfg-eno16777736旬渠。
[root@heimatengyun ~]# ls /etc/sysconfig/network-scripts/
ifcfg-eno16777736
...省略部分內(nèi)容
如圖所示就是網(wǎng)卡配置文件端壳。
(2)編輯網(wǎng)卡配置文件
由于在第一篇文章介紹linux的安裝時就已經(jīng)配置好了網(wǎng)絡(luò)參數(shù)并且可以正常上網(wǎng)更哄,所以先查看一下現(xiàn)有的配置文件內(nèi)容。
[root@heimatengyun ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="eno16777736"
UUID="ea487965-c5bc-4b43-9eab-36445d996179"
ONBOOT="yes"
HWADDR="00:0C:29:BC:5E:EF"
IPADDR0="192.168.78.100"
PREFIX0="24"
GATEWAY0="192.168.78.2"
DNS1="114.114.114.114"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
可以看到根據(jù)當時的配置生成了配置觅捆,并且也可以正常上網(wǎng)栅炒。但其實里邊有部分內(nèi)容可以精簡术羔,我們先把原來文件備份一下级历,然后在重新手動配置一下
[root@heimatengyun ~]# cd /etc/sysconfig/network-scripts/
[root@heimatengyun network-scripts]# ls
ifcfg-eno16777736
...省略部分內(nèi)容
[root@heimatengyun network-scripts]# cp ifcfg-eno16777736 ifcfg-eno16777736-autobackup
[root@heimatengyun network-scripts]# vi ifcfg-eno16777736
輸入以下內(nèi)容,并保存退出玩讳。
注意:備份目的是以防萬一配置錯誤方便恢復嚼贡,備份文件為ifcfg-eno16777736-autobackup粤策,雖然前綴相同,但是linux系統(tǒng)不會把他當成為網(wǎng)卡設(shè)備秩贰。
TYPE="Ethernet"
BOOTPROTO="static"
NAME="eno16777736"
ONBOOT="yes"
IPADDR="192.168.78.100"
NETMASK=255.255.255.0
GATEWAY="192.168.78.2"
DNS1="114.114.114.114"
配置項說明:
設(shè)備類型:TYPE=Ethernet
地址分配模式:BOOTPROTO=static 表示設(shè)置靜態(tài)ip地址
網(wǎng)卡名稱:NAME=eno16777736
是否啟動:ONBOOT=yes
IP 地址:IPADDR=192.168.78.100
子網(wǎng)掩碼:NETMASK=255.255.255.0 可以不配做
網(wǎng)關(guān)地址:GATEWAY=192.168.78.2
DNS 地址:DNS1=114.114.114.114
具體參數(shù)值根據(jù)自己實際情況進行配置萍膛。
(3)重啟網(wǎng)卡設(shè)備
[root@heimatengyun ~]# systemctl restart network
[root@heimatengyun ~]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38: icmp_seq=1 ttl=128 time=41.4 ms
重啟網(wǎng)卡服務后嚷堡,可以ping通說明配置成功。
2.2 通過nmtui命令配置網(wǎng)絡(luò)
通過nmtui命令運行網(wǎng)絡(luò)配置工具
[root@heimatengyun network-scripts]# nmtui
執(zhí)行后進入配置工具主界面
通過鍵盤方向鍵選擇操作項沼琉,此處選擇“Edit a connection”桩匪,按回車鍵傻昙,進入選擇網(wǎng)卡界面
選擇網(wǎng)卡,然后通過鍵盤方向鍵選擇編輯(注意僻爽,在此界面選擇網(wǎng)卡后如果選擇Delete會刪除配置文件下對應的網(wǎng)卡配置文件)
按回車鍵胸梆,進入編輯界面须板,然后在ipv4處選擇Manual手動指定ip地址
如果為折疊狀態(tài)习瑰,在選擇后邊Show甜奄,展示配置界面,如果默認為展開狀態(tài)則直接進行配置即可
配置ip地址、網(wǎng)關(guān)第喳、dns信息
配置完成后曲饱,選擇“OK”
選擇“Quit”退出
至此配置完畢扩淀。
配置完成后啤挎,手動重啟網(wǎng)絡(luò)服務卵凑,并測試是否生效勺卢。
[root@heimatengyun network-scripts]# systemctl restart network
[root@heimatengyun network-scripts]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38: icmp_seq=1 ttl=128 time=41.4 ms
...省略部分內(nèi)容
三黑忱、網(wǎng)絡(luò)會話管理
Centos7默認使用NetworkManager 來提供網(wǎng)絡(luò)服務勒魔,它是一種動態(tài)管理網(wǎng)絡(luò)配置的守護進程,能夠讓網(wǎng)絡(luò)設(shè)備保持連接狀態(tài)抚吠。
nmcli 是一款基于命令行的網(wǎng)絡(luò)配置工具埃跷,功能豐富邮利,可以使用 nmcli 命令來管理 Network Manager 服務。
3.1 查看網(wǎng)絡(luò)信息或網(wǎng)絡(luò)狀態(tài)
[root@heimatengyun network-scripts]# nmcli connection show
NAME UUID TYPE DEVICE
eno16777736 13756690-ac77-b776-4fc1-f5535cee6f16 802-3-ethernet eno16777736
[root@heimatengyun network-scripts]# nmcli con show eno16777736
connection.id: eno16777736
connection.uuid: 13756690-ac77-b776-4fc1-f5535cee6f16
connection.interface-name: --
connection.type: 802-3-ethernet
...省略部分內(nèi)容
3.2 網(wǎng)絡(luò)會話管理
CentosL7 系統(tǒng)支持網(wǎng)絡(luò)會話功能,允許用戶在多個配置文件中快速切換方庭,非常類似 于 firewalld 防火墻服務中的區(qū)域技術(shù)械念。
如果我們在公司網(wǎng)絡(luò)中使用筆記本電腦時需要手動指 定網(wǎng)絡(luò)的 IP 地址,而回到家中則是使用 DHCP 自動分配 IP 地址项钮。這就需要麻煩地頻繁修改 IP 地址希停,但是使用了網(wǎng)絡(luò)會話功能后一切就簡單多了—只需在不同的使用環(huán)境中激活相應 的網(wǎng)絡(luò)會話宠能,就可以實現(xiàn)網(wǎng)絡(luò)配置信息的自動切換了。
主要實現(xiàn)原理就是創(chuàng)建2個不同的網(wǎng)絡(luò)會話阿弃,根據(jù)需要激活相應的網(wǎng)絡(luò)會話即可,用到的nmcli命令格式為:connection add 會話名稱 type ifname畅哑。但是一般只有針對個人電腦使用才會有此需求荠呐,而我們主線主要基于服務器進行講解砂客,因此就不在演示具體用法,感興趣可以自學查閱相關(guān)資料即可媚创。
四钞钙、綁定雙網(wǎng)卡
生產(chǎn)環(huán)境的服務器要求是一天24小時不間斷提供服務声离,借助于網(wǎng)卡綁定技術(shù)术徊,不僅 可以提高網(wǎng)絡(luò)傳輸速度,還可以確保在其中一塊網(wǎng)卡出現(xiàn)故障時子寓,依然可以正常提供網(wǎng)絡(luò)服務笋除。
centos7進行雙網(wǎng)卡綁定有2種方式:采用bonding或采用team垃它。由于篇幅所限,本文只采用bonding模式進行演示。
我們還是以虛擬機中添加網(wǎng)卡進行模擬贝奇。具體步驟如下:
4.1 關(guān)閉虛擬機
4.2 添加網(wǎng)卡設(shè)備
注意靠胜,添加的網(wǎng)卡設(shè)備,模式必須相同霎褐。本例都采用的是NAT模式该镣。
4.3 配置網(wǎng)卡信息
需要對參與綁定的網(wǎng)卡設(shè)備逐個進行設(shè)置损合,把這些原本獨立的網(wǎng)卡設(shè)備被配置成為一塊“從屬”網(wǎng)卡,服務于“主”網(wǎng)卡跋炕, 不應該再有自己的 IP 地址等信息律适。在進行了初始設(shè)置之后捂贿,它們就可以支持網(wǎng)卡綁定。
開啟虛擬機分瘾,此時進入網(wǎng)卡配置文件查看德召,是沒有新加網(wǎng)卡的配置信息的汽纤,還是只有原來的網(wǎng)卡配置文件autobackup-ifcfg-eno16777736。
[root@heimatengyun ~]# cd /etc/sysconfig/network-scripts/
[root@heimatengyun network-scripts]# ls
autobackup-ifcfg-eno16777736 ifdown-sit ifup-plusb
ifcfg-eno16777736 ifdown-Team ifup-post
ifcfg-lo
此時通過ip命令可以查看到已經(jīng)新添加了網(wǎng)卡設(shè)備
[root@heimatengyun network-scripts]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:bc:5e:ef brd ff:ff:ff:ff:ff:ff
inet 192.168.78.100/24 brd 192.168.78.255 scope global eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:febc:5eef/64 scope link
valid_lft forever preferred_lft forever
3: eno33554976: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:bc:5e:f9 brd ff:ff:ff:ff:ff:ff
配置第一張網(wǎng)卡參數(shù)
[root@heimatengyun ~]# cd /etc/sysconfig/network-scripts/
[root@heimatengyun network-scripts]# vim ifcfg-eno16777736
輸入如下內(nèi)容并保存
TYPE="Ethernet"
BOOTPROTO=none
NAME="eno16777736"
ONBOOT="yes"
USERCTL="no"
MASTER=bond0
SLAVE=yes
配置第二張網(wǎng)卡參數(shù)
[root@heimatengyun network-scripts]# vi ifcfg-eno33554976
輸入如下內(nèi)容并保存
TYPE="Ethernet"
BOOTPROTO=none
NAME="eno33554976"
ONBOOT="yes"
USERCTL="no"
MASTER=bond0
SLAVE=yes
注意:網(wǎng)卡設(shè)備名稱必須要根據(jù)自身電腦來進行配置,修改為自己電腦的網(wǎng)卡名稱呆瞻。
配置主網(wǎng)卡參數(shù)
[root@heimatengyun network-scripts]# vim ifcfg-bond0
輸入如下內(nèi)容并保存
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=bond0
IPADDR=192.168.78.100
PREFIX=24
GATEWAY=192.168.78.2
DNS1="114.114.114.114"
NM_CONTROLLED=no
4.4 創(chuàng)建網(wǎng)卡驅(qū)動文件
Linux 內(nèi)核支持網(wǎng)卡綁定驅(qū)動bonding有七種模式痴脾,分別為mode0到mode6梳星。其中這三種mode0、mode1 和 mode6比較常用前域,mode0為默認模式匿垄。
? mode0(平衡負載模式):平時兩塊網(wǎng)卡均工作,且自動備援吞杭,但需要在與服務器本地 網(wǎng)卡相連的交換機設(shè)備上進行端口聚合來支持綁定技術(shù)芽狗。
? mode1(自動備援模式):平時只有一塊網(wǎng)卡工作痒蓬,在它故障后自動替換為另外的網(wǎng)卡攻晒。
? mode6(平衡負載模式):平時兩塊網(wǎng)卡均工作,且自動備援芯砸,無須交換機設(shè)備提供輔 助支持给梅。
創(chuàng)建一個用于網(wǎng)卡綁定的驅(qū)動文件动羽,使得綁定后的 bond0 網(wǎng)卡 設(shè)備能夠支持綁定技術(shù)(bonding);同時定義網(wǎng)卡以 mode6 模式進行綁定渴邦,且出現(xiàn)故障時自動切換的時間為 100 毫秒谋梭。
[root@heimatengyun network-scripts]# vim /etc/modprobe.d/bond.conf
填入如下內(nèi)容并保存
alias bond0 bonding
options bond0 miimon=100 mode=6
4.5 重啟網(wǎng)絡(luò)服務
重啟網(wǎng)絡(luò)服務(重啟系統(tǒng))后網(wǎng)卡綁定操作即可成功倦青。正常情況下只有 bond0 網(wǎng)卡設(shè)備才會 有 IP 地址等信息。
[root@heimatengyun network-scripts]# systemctl restart network
[root@heimatengyun network-scripts]# ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 192.168.78.100 netmask 255.255.255.0 broadcast 192.168.78.255
inet6 fe80::20c:29ff:febc:5ef9 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:bc:5e:f9 txqueuelen 0 (Ethernet)
RX packets 28 bytes 2856 (2.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 83 bytes 8273 (8.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:bc:5e:ef txqueuelen 1000 (Ethernet)
RX packets 1054 bytes 112121 (109.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 731 bytes 137795 (134.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eno33554976: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:bc:5e:f9 txqueuelen 1000 (Ethernet)
RX packets 28 bytes 2856 (2.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 83 bytes 8273 (8.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 12 bytes 1088 (1.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 12 bytes 1088 (1.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
在宿主機ping主網(wǎng)卡ip磷账,ping通表示雙網(wǎng)卡配置成功
注意:偶爾出現(xiàn)重啟network后逃糟,可以ping通但是卻ping不通百度,然而直接重啟虛擬機后又正常了菇肃。
4.6 驗證雙網(wǎng)卡自動備援功能
思路:開啟另外一臺centos(目的是在centos中ping不會自動停止除非按ctrl+c終止取募,這樣就能很好的模擬網(wǎng)卡故障和測試自動備援功能)玩敏,ping主網(wǎng)卡的ip地址,逐一關(guān)閉網(wǎng)卡织阳,直到網(wǎng)卡關(guān)閉完后不能ping通唧躲。
(1)在另外一臺centos中ping前邊設(shè)置的主網(wǎng)卡ip地址
[root@yum-local-server ~]# ping 192.168.78.100
PING 192.168.78.100 (192.168.78.100) 56(84) bytes of data.
64 bytes from 192.168.78.100: icmp_seq=1 ttl=64 time=0.844 ms
64 bytes from 192.168.78.100: icmp_seq=2 ttl=64 time=0.405 ms
(2)模擬網(wǎng)卡故障碱璃,逐一停止網(wǎng)卡厘贼,觀察步驟1中的數(shù)據(jù)
在虛擬機開啟的情況下,逐一斷掉網(wǎng)卡毁欣,觀察步驟1的數(shù)據(jù)收發(fā)情況
會發(fā)現(xiàn)當停止一塊網(wǎng)卡后凭疮,步驟1還是會收到數(shù)據(jù)串述,只是中途有短暫的終端。再繼續(xù)停止第二塊網(wǎng)卡后將沒有數(shù)據(jù)收到新蟆。直到再次打開網(wǎng)卡后才會繼續(xù)收到數(shù)據(jù)右蕊。
由此可見饶囚,多網(wǎng)卡確實有自動備援功能,避免單塊網(wǎng)卡壞掉導致斷網(wǎng)的情況嘀掸。
本文初步探討網(wǎng)絡(luò)配置规惰,下一篇文章將講解磁盤及存儲結(jié)構(gòu)相關(guān)知識卿拴。