linux入門系列11--Centos7網絡服務管理

經過前面文章的學習已經掌握了Linux系統配置管理的知識,本文講解Centos7網絡配置知識。linux

Linux要對外提供服務,須要保證網絡通訊正常,所以須要正確配置網絡參數。本文將講解如何使用Network Manager配置網絡參數、管理網絡會話服務,以及如何手工綁定mode6模式雙網卡,實現網絡的負載均衡。vim

1、Centos7網絡概述

1.1 Centos7網絡管理

對於網絡功能來講,CentOS7與以前的版本變化較大。centos

在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的管理。工具

管理命令格式oop

systemctl start|stop|restart|status networkpost

設置開機啓動學習

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種方式

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

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

file

經過鍵盤方向鍵選擇操做項,此處選擇「Edit a connection」,按回車鍵,進入選擇網卡界面

file

選擇網卡,而後經過鍵盤方向鍵選擇編輯(注意,在此界面選擇網卡後若是選擇Delete會刪除配置文件下對應的網卡配置文件)

file

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

file

若是爲摺疊狀態,在選擇後邊Show,展現配置界面,若是默認爲展開狀態則直接進行配置便可

file

配置ip地址、網關、dns信息

file

配置完成後,選擇「OK」

file

選擇「Quit」退出

file

至此配置完畢。

配置完成後,手動重啓網絡服務,並測試是否生效。

[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
 ...省略部份內容

3、網絡會話管理

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。可是通常只有針對我的電腦使用纔會有此需求,而咱們主線主要基於服務器進行講解,所以就不在演示具體用法,感興趣能夠自學查閱相關資料便可。

4、綁定雙網卡

生產環境的服務器要求是一天24小時不間斷提供服務,藉助於網卡綁定技術,不只 能夠提升網絡傳輸速度,還能夠確保在其中一塊網卡出現故障時,依然能夠正常提供網絡服務。

centos7進行雙網卡綁定有2種方式:採用bonding或採用team。因爲篇幅所限,本文只採用bonding模式進行演示。

咱們仍是以虛擬機中添加網卡進行模擬。具體步驟以下:

4.1 關閉虛擬機

4.2 添加網卡設備

file

注意,添加的網卡設備,模式必須相同。本例都採用的是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通表示雙網卡配置成功

file

> 注意:偶爾出現重啓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的數據收發狀況

file

會發現當中止一塊網卡後,步驟1仍是會收到數據,只是中途有短暫的終端。再繼續中止第二塊網卡後將沒有數據收到。直到再次打開網卡後纔會繼續收到數據。

因而可知,多網卡確實有自動備援功能,避免單塊網卡壞掉致使斷網的狀況。

本文初步探討網絡配置,下一篇文章將講解磁盤及存儲結構相關知識。</host></up,loopback,running></up,broadcast,running,slave,multicast></up,broadcast,running,multicast></up,broadcast,running,master,multicast></broadcast,multicast,up,lower_up></broadcast,multicast,up,lower_up></loopback,up,lower_up>

相關文章
相關標籤/搜索