天天看點

centos7 配置網絡_linux入門系列11--Centos7網絡服務管理

centos7 配置網絡_linux入門系列11--Centos7網絡服務管理

通過前面文章的學習已經掌握了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。

[[email protected] ~]# ls /etc/sysconfig/network-scripts/
ifcfg-eno16777736
...省略部分内容
           

如圖所示就是網卡配置檔案。

(2)編輯網卡配置檔案

由于在第一篇文章介紹linux的安裝時就已經配置好了網絡參數并且可以正常上網,是以先檢視一下現有的配置檔案内容。

[[email protected] ~]# 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"
           

可以看到根據當時的配置生成了配置,并且也可以正常上網。但其實裡邊有部分内容可以精簡,我們先把原來檔案備份一下,然後在重新手動配置一下

[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# ls
ifcfg-eno16777736
...省略部分内容
[[email protected] network-scripts]# cp ifcfg-eno16777736 ifcfg-eno16777736-autobackup
[[email protected] 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)重新開機網卡裝置

[[email protected] ~]# systemctl restart network
[[email protected] ~]# 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指令運作網絡配置工具

[[email protected] network-scripts]# nmtui
           

執行後進入配置工具主界面

centos7 配置網絡_linux入門系列11--Centos7網絡服務管理

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

centos7 配置網絡_linux入門系列11--Centos7網絡服務管理

選擇網卡,然後通過鍵盤方向鍵選擇編輯(注意,在此界面選擇網卡後如果選擇Delete會删除配置檔案下對應的網卡配置檔案)

centos7 配置網絡_linux入門系列11--Centos7網絡服務管理

按Enter鍵,進入編輯界面,然後在ipv4處選擇Manual手動指定ip位址

centos7 配置網絡_linux入門系列11--Centos7網絡服務管理

如果為折疊狀态,在選擇後邊Show,展示配置界面,如果預設為展開狀态則直接進行配置即可

centos7 配置網絡_linux入門系列11--Centos7網絡服務管理

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

centos7 配置網絡_linux入門系列11--Centos7網絡服務管理

配置完成後,選擇“OK”

centos7 配置網絡_linux入門系列11--Centos7網絡服務管理

選擇“Quit”退出

centos7 配置網絡_linux入門系列11--Centos7網絡服務管理

至此配置完畢。

配置完成後,手動重新開機網絡服務,并測試是否生效。

[[email protected] network-scripts]# systemctl restart network
[[email protected] 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 檢視網絡資訊或網絡狀态

[[email protected] network-scripts]# nmcli connection show 
NAME         UUID                                  TYPE            DEVICE      
eno16777736  13756690-ac77-b776-4fc1-f5535cee6f16  802-3-ethernet  eno16777736 
[[email protected] 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 添加網卡裝置

centos7 配置網絡_linux入門系列11--Centos7網絡服務管理

注意,添加的網卡裝置,模式必須相同。本例都采用的是NAT模式。

4.3 配置網卡資訊

需要對參與綁定的網卡裝置逐個進行設定,把這些原本獨立的網卡裝置被配置成為一塊“從屬”網卡,服務于“主”網卡, 不應該再有自己的 IP 位址等資訊。在進行了初始設定之後,它們就可以支援網卡綁定。

開啟虛拟機,此時進入網卡配置檔案檢視,是沒有新加網卡的配置資訊的,還是隻有原來的網卡配置檔案autobackup-ifcfg-eno16777736。

[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# ls
autobackup-ifcfg-eno16777736  ifdown-sit       ifup-plusb
ifcfg-eno16777736             ifdown-Team      ifup-post
ifcfg-lo 
           

此時通過ip指令可以檢視到已經新添加了網卡裝置

[[email protected] 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
           

配置第一張網卡參數

[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] network-scripts]# vim ifcfg-eno16777736 
           

輸入如下内容并儲存

TYPE="Ethernet"
BOOTPROTO=none
NAME="eno16777736"
ONBOOT="yes"
USERCTL="no"
MASTER=bond0
SLAVE=yes
           

配置第二張網卡參數

[[email protected] network-scripts]# vi ifcfg-eno33554976
           

輸入如下内容并儲存

TYPE="Ethernet"
BOOTPROTO=none
NAME="eno33554976"
ONBOOT="yes"
USERCTL="no"
MASTER=bond0
SLAVE=yes
           
注意:網卡裝置名稱必須要根據自身電腦來進行配置,修改為自己電腦的網卡名稱。

配置主網卡參數

[[email protected] 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 毫秒。

[[email protected] network-scripts]# vim /etc/modprobe.d/bond.conf
           

填入如下内容并儲存

alias bond0 bonding
options bond0 miimon=100 mode=6
           

4.5 重新開機網絡服務

重新開機網絡服務(重新開機系統)後網卡綁定操作即可成功。正常情況下隻有 bond0 網卡裝置才會 有 IP 位址等資訊。

[[email protected] network-scripts]# systemctl restart network
[[email protected] 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通表示雙網卡配置成功

centos7 配置網絡_linux入門系列11--Centos7網絡服務管理
注意:偶爾出現重新開機network後,可以ping通但是卻ping不通百度,然而直接重新開機虛拟機後又正常了。

4.6 驗證雙網卡自動備援功能

思路:開啟另外一台centos(目的是在centos中ping不會自動停止除非按ctrl+c終止,這樣就能很好的模拟網卡故障和測試自動備援功能),ping主網卡的ip位址,逐一關閉網卡,直到網卡關閉完後不能ping通。

(1)在另外一台centos中ping前邊設定的主網卡ip位址

[[email protected] ~]# 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的資料收發情況

centos7 配置網絡_linux入門系列11--Centos7網絡服務管理

會發現當停止一塊網卡後,步驟1還是會收到資料,隻是中途有短暫的終端。再繼續停止第二塊網卡後将沒有資料收到。直到再次打開網卡後才會繼續收到資料。

由此可見,多網卡确實有自動備援功能,避免單塊網卡壞掉導緻斷網的情況。

本文初步探讨網絡配置,下一篇文章将講解磁盤及存儲結構相關知識。

繼續閱讀