- 完美應用RHEL 8
- 何曉龍編著
- 3019字
- 2024-01-22 19:27:15
2.2 RHEL 8的網絡配置
RHEL 8的網絡配置大致分為IPv4和IPv6兩大部分。由于IPv6的應用較少,因此這里重點介紹IPv4。
2.2.1 網絡配置基礎命令
由于RHEL 8默認沒有安裝經典的network.service,因此只能通過Netware Manager管理網絡配置,否則無法使用網絡,不過RHEL中可以使用如下命令手動恢復傳統的network.service。

還可以通過如下命令安裝相應的網絡工具。

鑒于上述服務已被官方所拋棄,不建議繼續使用network.service管理網絡,與其被迫改變,不如積極地進行改變。
1.使用nmcli或nmtui命令管理網卡
(1)獲得網卡列表:

需要提醒大家的是,device可以簡寫為d,上述命令可簡寫為:

(2)查看網卡連接信息。
需要注意的是,網卡連接名稱不是網卡名稱,默認名稱相同。

需要提醒大家的是,connection可以簡寫為c,show可以簡寫為s,因此上述命令可簡寫為:

(3)啟用網卡連接:

(4)停止網卡連接:

(5)刪除網卡連接:

(6)創建網絡連接并配置靜態IP地址:

(7)創建網絡連接并配置動態IP地址:

(8)修改IP地址:

2.使用nmtui命令管理網卡
推薦大家使用nmtui這個文本界面配置工具來管理網絡設備,便捷高效,具體操作為:

或者直接指定網卡,具體操作為:

此工具類似CentOS 4/5時代的netconfig或system-config-network-tui文本界面配置工具,使用起來十分便捷,下面以nmtui命令為例來介紹其使用方法。
nmtui首先出現習慣的文本界面,即NetworkManager文本界面,該界面有以下4個選項。
(1)Edit a connection:編輯一個網絡連接。
(2)Activate a connection:激活一個網絡連接。
(3)Set system hostname:設置主機名,本書將主機名設置為www.example.com。
(4)Quit:退出。
通常,高頻的操作是配置網卡,選擇Edit a connection選項即可開始配置,服務器大多有多塊網卡,所以首先從連接列表中選中要配置的連接名稱,默認網絡連接名稱應該與網卡名稱相同。需要提醒大家的是,網卡不等于網絡連接,一塊網卡可以創建多個網絡連接。按Enter鍵后便出現了熟悉的配置界面,首先將鼠標光標置于IPv4 CONFIGURATION右側,按下Enter鍵將出現一個菜單,選中手動配置(Manual)選項即可開始具體配置,如IP地址、子網掩碼、網關和DNS服務器等。至于配置方法,需要提醒大家的是,子網掩碼可以斜杠方式和IP地址一起配置,如IP/8、IP/24或其他數字,還可以通過Tab(下一個)鍵或Shift+Tab(上一個)組合鍵快速移動光標,在按下OK鍵之前,檢查一下Automatically connect選項是否選中,如果選中就按下OK鍵,這時將返回選擇網絡連接界面,直接按下Esc鍵回到主界面,最后選擇Quit選項退出即可完成配置。網卡的配置實際上保存在/etc/sysconfig/network-scripts/ifcfg-ens3*的文件中,以ens33為例,文件內容如下。

這是一個靜態IP的典型配置,即使可以方便地通過nmtui等工具配置,但鑒于網卡配置極為重要,建議大家熟練掌握,最后運行如下命令重啟網絡服務。

或者重啟服務器,命令如下。

2.2.2 配置Bonding
Bonding是企業中最為常用的技術之一,由于服務器網卡較多,因此企業通常將網卡創建Bonding虛擬網卡來使用。所謂Bonding,是指企業服務器中將多塊物理網卡充當一塊虛擬網卡使用,實現了負載均衡和高可用,也就是常說的多塊網卡配置為一個IP地址,不過以兩塊網卡居多。配置Bonding,首先需要加載bonding模塊,配置方法為:

然后可以使用如下命令檢測模塊情況:

為了穩妥起見,將內核的配置寫到文件,具體方法為:

Tips:Bonding模式知多少?
● balance-rr:使用數字0表示,用于容錯和負載均衡的循環模式。
● active-backup:使用數字1表示,可用于容錯的活動備份模式。
● balance-xor:使用數字2表示,容錯和負載均衡設置為異或模式。
● broadcast:使用數字3表示,容錯的廣播模式,所有傳輸都從接口上發送。
● 802.3ad:使用數字4表示,IEEE 802.3ad動態鏈接聚合模式,創建共享相同速度和雙工設置的聚合組。
● balance-tlb:使用數字5表示,傳輸負載均衡模式(TLB)以實現容錯和負載均衡。
● balance-alb:使用數字6表示,活動負載均衡模式(ALB),通常為容錯和負載均衡設置。
成功加載和配置完內核模塊后,編輯Bonding虛擬設備的配置文件,配置方法為:

添加如下內容:

上述內容僅供參考,可根據自己的實際情況修改,然后配置作為Slave的兩塊網卡,具體操作如下。
第一塊網卡(ens33)的命令為:

添加如下內容:

第二塊網卡(ens34)的命令為:

添加如下內容:

保存退出后,運行如下命令重啟網絡服務:

或者重啟服務器,命令如下:

2.2.3 配置Bridge
與Bonding類似,Bridge也是一個虛擬網絡設備,其實就是基于網卡的一部虛擬交換機,而且是一種成熟可靠的虛擬交換技術,比后起之秀Open vSwitch(OvS)要成熟和可靠很多,實現也比較簡單。要使用KVM虛擬化環境一般需要配置Bridge,有了它,KVM虛擬機就可以使用橋接模式接入網絡。
Bridge是通過內核模塊bridge實現橋接的,所以要運行如下命令來檢測相關模塊是否加載。

默認應該已經加載,如果沒有被加載,那么可以運行如下命令手動加載。

保存配置文件,重啟系統,即可開始創建網橋配置文件ifcfg-br0,具體操作為:

添加如下內容:

與Bonding類似,上述配置可以根據實際情況修改,在成功創建Bridge之后,添加網卡到網橋,關鍵配置為:

添加如下內容:

重啟后生效,需要注意的是,連接到網橋上的網卡,無法再設置IP地址,并且即使配置文件設置了IP地址,也不會生效。
1.徹底手動管理自己的網卡
在上述配置中,如果要徹底手動管理自己的網卡,不受NetworkManager的管理,那么只需在相應網卡的配置文件中添加如下關鍵配置:

重啟NetworkManager服務后,再次使用nmcli命令查看網卡狀態時,就會發現那塊網卡的狀態變為unmanaged了,配置過程中不建議關閉NetworkManager服務,如果非要關閉,就在網絡配置好后關閉。
2.停用IPv6
運行如下命令停止IPv6:

然后永久停用IPv6,具體操作為:

添加如下兩行配置:

再運行如下命令生效:

重啟后生效,在進行上述操作前建議先關閉SELinux。
2.2.4 停用和啟用IPv6
在停用IPv6前,檢查一下網卡的狀態:

上述結果中,以inet6開頭的便是IPv6的地址,如果用不到IPv6,那么可以運行如下命令暫時停用IPv6。

上述命令只能暫時關閉IPv6,系統重啟后,IPv6又回來了。如果需要永久停用IPv6,就需要編輯GRUB的啟動配置,具體操作為:

重啟后生效,當然有禁用就有啟用,如果要再次啟用IPv6,就要從GRUB的啟動配置開始,關鍵操作為:

通常重啟后就可以看到IPv6地址了,但有時依然需要重啟系統,這時執行如下命令:

需要提醒大家的是,在進行上述操作前最好先關閉SELinux。
1.ifconfig和ip命令
RHEL 8默認使用較新的ip系列命令,同樣可以實現上述配置,而且其功能比ifconfig更為強大和全面,具體實現方法如下。
(1)顯示網絡配置信息。顯示網絡配置信息的關鍵操作為:

或

(2)設置/刪除IP地址。可以通過ip命令設置/刪除IP地址,關鍵操作為:

(3)啟用或禁用網卡。可以通過ip命令啟用或禁用網卡,關鍵操作為:

(4)配置默認網關。可以通過ip命令設置默認網關,具體操作為:

刪除默認網關的操作為:

(5)顯示當前路由表。除了route命令,還可以使用ip命令來顯示當前路由表。

此外,ip命令還可以開啟或關閉網卡的混雜模式,這在虛擬化或云計算中十分有用,具體實現方法為:

當然,作為后起之秀的ip命令還有很多ifconfig命令所沒有的功能和用法,更多信息請參考其manpage。
2.netstat和ss命令
netstat命令是一個常用的檢測端口與服務工具,在CentOS 7和Ubuntu server 18.04中也出現了替代品,即ss命令。ss命令可以實現netstat的多數功能,具體操作為:

查看進程,網絡服務及端口信息可使用如下命令。

獲得正在偵聽的端口的命令為:

獲得當前所有端口的命令為:

查看主機監聽的端口的命令為:

查看所建立的TCP連接的命令為:

在RHEL 8中,默認的ip和ss命令成為ifconfig、route、arp和netstat命令的替代品,為了便于大家掌握,歸納的對應關系如下。

此外,如果實在不習慣上述命令,那么可以使用如下命令將“老朋友”找回來。

配置完網絡,RHEL 8就可以聯網了,這時最適合激活RHEL 8的訂閱服務,設置好主機名再激活訂閱,具體操作為:


看到Subscribed,說明訂閱成功,上述命令中的“XXXX”和“XXXXXXXX”分別為訂閱服務的賬號和密碼,訂閱服務被激活后,即可運行如下命令更新系統了。

或

此外,還可以通過最新的Web控制臺Cockpit來管理網絡及訂閱服務,十分直觀和方便。