通過前面文章的學習已經掌握了Linux系統配置管理的知識,本文講解Centos7網路配置知識,
Linux要對外提供服務,需要保證網路通信正常,因此需要正確配置網路引數,本文將講解如何使用Network Manager配置網路引數、管理網路會話服務,以及如何手工系結mode6模式雙網卡,實作網路的負載均衡,
一、Centos7網路概述
1.1 Centos7網路管理
對于網路功能來說,CentOS7與之前的版本變化較大,
在RHEL/CentOS 6及以前的版本中,網路功能是通過一系列網路相關的腳本檔案實作(如/etc/init.d/network檔案,及如下/sbin/if*檔案等),
從RHEL/CentOS 7開始,網路功能默認由NetworkManager以服務的形式提供,Network Manager是一個能夠動態控制和配置網路的守護行程,管理網路服務和網路連接,對應NetworkManager.service服務(其組態檔/etc/NetworkManager/NetworkManager.conf,默認為空,無需任何配置)
雖然RHEL/CentOS 6中的網路相關的腳本檔案仍然以network.service的形式被支持,但是建議使用NetworkManager.service來進行配置和管理,并且只能選擇其中一種,不然會有沖突,
1.2 network.service
etwork.service是系統提供的服務之一,以兼容遺留的網路功能,該服務的運行也被納入SystemD的管理,
管理命令格式
? systemctl start|stop|restart|status network
設定開機啟動
? systemctl enable network
以上命令設定network.service在系統啟動時自動加載,注意,系統啟動時,/etc/init.d/network會讀取ifcfg檔案,并檢測NetworkManager是否已經已經啟動該設備,如果NetworkManager已經啟動該設備,則/etc/init.d/network腳本什么也不做;否則/etc/init.d/network會啟動該設備,
1.3 NetworkManager.service
啟動networkmanager(注意大小寫,linux嚴格區分大小寫)
***systemctl start NetworkManager***
NetworkManager默認不會執行任何腳本,當腳本滿足以下條件時,才會安裝字母順序順序執行,
(1)位于/etc/NetworkManager/dispatcher.d/目錄下
(2)擁有root用戶的可執行權限
1.4 網路組態檔
無論是network.service,還是NetworkManager.service,都能夠使用如下網路相關的組態檔,
(1)全域組態檔
檔案名:/etc/sysconfig/network
(2)網卡相關的組態檔
組態檔所在檔案夾:/etc/sysconfig/network-scripts/
注意:修改網路組態檔后,需要重新加載網路連接,如果是通過network.service則使用命令:systemctl restart network;如果是通過NetworkManager.service則使用nmcli命令:nmcli connection reload,
二、網路引數配置
配置服務本質就是組態檔,以下演示2種方式
2.1 通過編輯組態檔配置網路
在 RHEL7以前的版本中,網卡組態檔的前綴為 eth,第 1 塊網卡為 eth0,第 2 塊網卡為 eth1;以此類推,而在 RHEL7中,網卡組態檔的前綴則以 ifcfg 開始, 加上網卡名稱共同組成了網卡組態檔的名字,例如 ifcfg-eno16777736,
現在有一個名稱為 ifcfg-eno16777736 的網卡設備,我們將其配置為開機自啟動,并且 IP 地址、子網、網關等資訊由人工指定,其步驟應該如下所示,
(1)找到網卡組態檔
網卡組態檔存放在/etc/sysconfig/network-scripts目錄下,形如:ifcfg-eno16777736,
[root@heimatengyun ~]# ls /etc/sysconfig/network-scripts/
ifcfg-eno16777736
...省略部分內容
如圖所示就是網卡組態檔,
(2)編輯網卡組態檔
由于在第一篇文章介紹linux的安裝時就已經配置好了網路引數并且可以正常上網,所以先查看一下現有的組態檔內容,
[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"
可以看到根據當時的配置生成了配置,并且也可以正常上網,但其實里邊有部分內容可以精簡,我們先把原來檔案備份一下,然后在重新手動配置一下
[root@heimatengyun ~]# cd /etc/sysconfig/network-scripts/
[root@heimatengyun network-scripts]# ls
ifcfg-eno16777736
...省略部分內容
[root@heimatengyun network-scripts]# cp ifcfg-eno16777736 ifcfg-eno16777736-autobackup
[root@heimatengyun network-scripts]# vi ifcfg-eno16777736
輸入以下內容,并保存退出,
注意:備份目的是以防萬一配置錯誤方便恢復,備份檔案為ifcfg-eno16777736-autobackup,雖然前綴相同,但是linux系統不會把他當成為網卡設備,
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"
配置項說明:
設備型別:TYPE=Ethernet
地址分配模式:BOOTPROTO=static 表示設定靜態ip地址
網卡名稱:NAME=eno16777736
是否啟動:ONBOOT=yes
IP 地址:IPADDR=192.168.78.100
子網掩碼:NETMASK=255.255.255.0 可以不配做
網關地址:GATEWAY=192.168.78.2
DNS 地址:DNS1=114.114.114.114
具體引數值根據自己實際情況進行配置,
(3)重啟網卡設備
[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
重啟網卡服務后,可以ping通說明配置成功,
2.2 通過nmtui命令配置網路
通過nmtui命令運行網路配置工具
[root@heimatengyun network-scripts]# nmtui
執行后進入配置工具主界面

通過鍵盤方向鍵選擇操作項,此處選擇“Edit a connection”,按回車鍵,進入選擇網卡界面

選擇網卡,然后通過鍵盤方向鍵選擇編輯(注意,在此界面選擇網卡后如果選擇Delete會洗掉組態檔下對應的網卡組態檔)

按回車鍵,進入編輯界面,然后在ipv4處選擇Manual手動指定ip地址

如果為折疊狀態,在選擇后邊Show,展示配置界面,如果默認為展開狀態則直接進行配置即可

配置ip地址、網關、dns資訊

配置完成后,選擇“OK”

選擇“Quit”退出

至此配置完畢,
配置完成后,手動重啟網路服務,并測驗是否生效,
[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
...省略部分內容
三、網路會話管理
Centos7默認使用NetworkManager 來提供網路服務,它是一種動態管理網路配置的守護行程,能夠讓網路設備保持連接狀態,
nmcli 是一款基于命令列的網路配置工具,功能豐富,可以使用 nmcli 命令來管理 Network Manager 服務,
3.1 查看網路資訊或網路狀態
[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
...省略部分內容
3.2 網路會話管理
CentosL7 系統支持網路會話功能,允許用戶在多個組態檔中快速切換,非常類似 于 firewalld 防火墻服務中的區域技術,
如果我們在公司網路中使用筆記本電腦時需要手動指 定網路的 IP 地址,而回到家中則是使用 DHCP 自動分配 IP 地址,這就需要麻煩地頻繁修改 IP 地址,但是使用了網路會話功能后一切就簡單多了—只需在不同的使用環境中激活相應 的網路會話,就可以實作網路配置資訊的自動切換了,
主要實作原理就是創建2個不同的網路會話,根據需要激活相應的網路會話即可,用到的nmcli命令格式為:connection add 會話名稱 type ifname,但是一般只有針對個人電腦使用才會有此需求,而我們主線主要基于服務器進行講解,因此就不在演示具體用法,感興趣可以自學查閱相關資料即可,
四、系結雙網卡
生產環境的服務器要求是一天24小時不間斷提供服務,借助于網卡系結技術,不僅 可以提高網路傳輸速度,還可以確保在其中一塊網卡出現故障時,依然可以正常提供網路服務,
centos7進行雙網卡系結有2種方式:采用bonding或采用team,由于篇幅所限,本文只采用bonding模式進行演示,
我們還是以虛擬機中添加網卡進行模擬,具體步驟如下:
4.1 關閉虛擬機
4.2 添加網卡設備

注意,添加的網卡設備,模式必須相同,本例都采用的是NAT模式,
4.3 配置網卡資訊
需要對參與系結的網卡設備逐個進行設定,把這些原本獨立的網卡設備被配置成為一塊“從屬”網卡,服務于“主”網卡, 不應該再有自己的 IP 地址等資訊,在進行了初始設定之后,它們就可以支持網卡系結,
開啟虛擬機,此時進入網卡組態檔查看,是沒有新加網卡的配置資訊的,還是只有原來的網卡組態檔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命令可以查看到已經新添加了網卡設備
[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
配置第一張網卡引數
[root@heimatengyun ~]# cd /etc/sysconfig/network-scripts/
[root@heimatengyun network-scripts]# vim ifcfg-eno16777736
輸入如下內容并保存
TYPE="Ethernet"
BOOTPROTO=none
NAME="eno16777736"
ONBOOT="yes"
USERCTL="no"
MASTER=bond0
SLAVE=yes
配置第二張網卡引數
[root@heimatengyun network-scripts]# vi ifcfg-eno33554976
輸入如下內容并保存
TYPE="Ethernet"
BOOTPROTO=none
NAME="eno33554976"
ONBOOT="yes"
USERCTL="no"
MASTER=bond0
SLAVE=yes
注意:網卡設備名稱必須要根據自身電腦來進行配置,修改為自己電腦的網卡名稱,
配置主網卡引數
[root@heimatengyun network-scripts]# vim ifcfg-bond0
輸入如下內容并保存
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 創建網卡驅動檔案
Linux 內核支持網卡系結驅動bonding有七種模式,分別為mode0到mode6,其中這三種mode0、mode1 和 mode6比較常用,mode0為默認模式,
? mode0(平衡負載模式):平時兩塊網卡均作業,且自動備援,但需要在與服務器本地 網卡相連的交換機設備上進行埠聚合來支持系結技術,
? mode1(自動備援模式):平時只有一塊網卡作業,在它故障后自動替換為另外的網卡,
? mode6(平衡負載模式):平時兩塊網卡均作業,且自動備援,無須交換機設備提供輔 助支持,
創建一個用于網卡系結的驅動檔案,使得系結后的 bond0 網卡 設備能夠支持系結技術(bonding);同時定義網卡以 mode6 模式進行系結,且出現故障時自動切換的時間為 100 毫秒,
[root@heimatengyun network-scripts]# vim /etc/modprobe.d/bond.conf
填入如下內容并保存
alias bond0 bonding
options bond0 miimon=100 mode=6
4.5 重啟網路服務
重啟網路服務(重啟系統)后網卡系結操作即可成功,正常情況下只有 bond0 網卡設備才會 有 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主網卡ip,ping通表示雙網卡配置成功

注意:偶爾出現重啟network后,可以ping通但是卻ping不通百度,然而直接重啟虛擬機后又正常了,
4.6 驗證雙網卡自動備援功能
思路:開啟另外一臺centos(目的是在centos中ping不會自動停止除非按ctrl+c終止,這樣就能很好的模擬網卡故障和測驗自動備援功能),ping主網卡的ip地址,逐一關閉網卡,直到網卡關閉完后不能ping通,
(1)在另外一臺centos中ping前邊設定的主網卡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)模擬網卡故障,逐一停止網卡,觀察步驟1中的資料
在虛擬機開啟的情況下,逐一斷掉網卡,觀察步驟1的資料收發情況

會發現當停止一塊網卡后,步驟1還是會收到資料,只是中途有短暫的終端,再繼續停止第二塊網卡后將沒有資料收到,直到再次打開網卡后才會繼續收到資料,
由此可見,多網卡確實有自動備援功能,避免單塊網卡壞掉導致斷網的情況,
本文初步探討網路配置,下一篇文章將講解磁盤及存盤結構相關知識,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/239472.html
標籤:其他
上一篇:YUM源部署和使用
