首頁 > 軟體

RHCE 系列(一):如何設定和測試靜態網路路由

2020-06-16 17:51:11

RHCE(Red Hat Certified Engineer,紅帽認證工程師)是紅帽公司的一個認證,紅帽向企業社群貢獻開源作業系統和軟體,同時它還給公司提供訓練、支援和咨詢服務。

RHCE 考試準備指南

這個 RHCE 是一個績效考試(代號 EX300),面向那些擁有更多的技能、知識和能力的紅帽企業版 Linux(RHEL)系統高階系統管理員。

重要紅帽認證系統管理員 (Red Hat Certified System Administrator,RHCSA)認證要求先有 RHCE 認證。

以下是基於紅帽企業版 Linux 7 考試的考試目標,我們會在該 RHCE 系列中分別介紹:

  • 第一部分:如何在 RHEL 7 中設定和測試靜態路由
  • 第二部分:如何進行包過濾、網路地址轉換和設定核心執行時引數
  • 第三部分:如何使用 Linux 工具集產生和傳送系統活動報告
  • 第四部分:使用 Shell 指令碼進行自動化系統維護
  • 第五部分:如何在 RHEL 7 中管理系統紀錄檔(設定、輪換和匯入到資料庫)
  • 第六部分:設定 Samba 伺服器並設定 FirewallD 和 SELinux 支援用戶端檔案共用
  • 第七部分:設定 NFS 伺服器及基於 Kerberos 認證的用戶端
  • 第八部分:在 Apache 上使用網路安全服務(NSS)通過 TLS 提供 HTTPS 服務
  • 第九部分:如何使用無用戶端設定來設定 Postfix 郵件伺服器(SMTP)
  • 第十部分:在 RHEL/CentOS 7 中設定網路時間協定(NTP)伺服器
  • 第十一部分:如何設定一個只快取的 DNS 伺服器

在你的國家檢視考試費用和註冊考試,可以到 RHCE 認證 網頁。

在 RHCE 的第一和第二部分,我們會介紹一些基本的但典型的情形,也就是靜態路由原理、包過濾和網路地址轉換。

RHCE 系列第一部分:設定和測試網路靜態路由

請注意我們不會作深入的介紹,但以這種方式組織內容能幫助你開始第一步並繼續後面的內容。

 

紅帽企業版 Linux 7 中的靜態路由

現代網路的一個奇蹟就是有很多可用裝置能將一組計算機連線起來,不管是在一個房間裡少量的機器還是在一棟建築物、城市、國家或者大洲之間的多台機器。

然而,為了能在任意情形下有效的實現這些,需要對網路包進行路由,或者換句話說,它們從源到目的地的路徑需要按照某種規則。

靜態路由是為網路包指定一個路由的過程,而不是使用網路裝置提供的預設閘道器。除非另有指定靜態路由,網路包會被導向預設閘道器;而靜態路由則基於預定義標準所定義的其它路徑,例如封包目的地。

我們在該篇指南中會考慮以下場景。我們有一台 RHEL 7,連線到 1號路由器 [192.168.0.1] 以存取因特網以及 192.168.0.0/24 中的其它機器。

第二個路由器(2號路由器)有兩個網絡卡:enp0s3 同樣連線到路由器1號以存取網際網路,及與 RHEL 7 和同一網路中的其它機器通訊,另外一個網絡卡(enp0s8)用於授權存取內部服務所在的 10.0.0.0/24 網路,例如 web 或資料庫伺服器。

該場景可以用下面的示意圖表示:

靜態路由網路示意圖

在這篇文章中我們會集中介紹在 RHEL 7 中設定路由表,確保它能通過1號路由器存取因特網以及通過2號路由器存取內部網路。

在 RHEL 7 中,你可以通過命令列用 ip 命令 設定和顯示裝置和路由。這些更改能在執行的系統中及時生效,但由於重新啟動後不會儲存,我們會使用 /etc/sysconfig/network-scripts 目錄下的 ifcfg-enp0sXroute-enp0sX 檔案永久儲存我們的設定。

首先,讓我們列印出當前的路由表:

  1. #iproute show

檢查當前路由表

從上面的輸出中,我們可以得出以下結論:

  • 預設閘道器的 IP 是 192.168.0.1,可以通過網絡卡 enp0s3 存取。
  • 系統啟動的時候,它啟用了到 169.254.0.0/16 的 zeroconf 路由(只是在本例中)。也就是說,如果機器設定通過 DHCP 獲取 IP 地址,但是由於某些原因失敗了,它就會在上述網段中自動分配到一個地址。這一行的意思是,該路由會允許我們通過 enp0s3 和其它沒有從 DHCP 伺服器中成功獲得 IP 地址的機器機器相連線。
  • 最後,但同樣重要的是,我們也可以通過 IP 地址是 192.168.0.18 的 enp0s3 與 192.168.0.0/24 網路中的其它機器連線。

下面是這樣的設定中你需要做的一些典型任務。除非另有說明,下面的任務都在2號路由器上進行。

確保正確安裝了所有網絡卡:

  1. #iplink show

如果有某塊網絡卡停用了,啟動它:

  1. #iplinkset dev enp0s8 up

分配 10.0.0.0/24 網路中的一個 IP 地址給它:

  1. #ip addr add 10.0.0.17 dev enp0s8

噢!我們分配了一個錯誤的 IP 地址。我們需要刪除之前分配的那個並新增正確的地址(10.0.0.18):

  1. #ip addr del10.0.0.17 dev enp0s8
  2. #ip addr add 10.0.0.18 dev enp0s8

現在,請注意你只能新增一個通過閘道器到目標網路的路由,閘道器需要可以存取到。因為這個原因,我們需要在 192.168.0.0/24 範圍中給 enp0s3 分配一個 IP 地址,這樣我們的 RHEL 7 才能連線到它:

  1. #ip addr add 192.168.0.19 dev enp0s3

最後,我們需要啟用包轉發:

  1. #echo"1">/proc/sys/net/ipv4/ip_forward

並停用/取消防火牆(從現在開始,直到下一篇文章中我們介紹了包過濾):

  1. #systemctl stop firewalld
  2. #systemctl disable firewalld

回到我們的 RHEL 7(192.168.0.18),讓我們設定一個通過 192.168.0.19(2號路由器的 enp0s3)到 10.0.0.0/24 的路由:

  1. #iproute add 10.0.0.0/24 via 192.168.0.19

之後,路由表看起來像下面這樣:

  1. #iproute show

確認網路路由表

同樣,在你嘗試連線的 10.0.0.0/24 網路的機器中新增對應的路由:

  1. #iproute add 192.168.0.0/24 via 10.0.0.18

你可以使用 ping 測試基本連線:

在 RHEL 7 中執行:

  1. #ping-c 410.0.0.20

10.0.0.20 是 10.0.0.0/24 網路中一個 web 伺服器的 IP 地址。

在 web 伺服器(10.0.0.20)中執行

  1. #ping-c 192.168.0.18

192.168.0.18 也就是我們的 RHEL 7 機器的 IP 地址。

另外,我們還可以使用 tcpdump(??要通過 yum install tcpdump 安裝)來檢查我們 RHEL 7 和 10.0.0.20 中 web 伺服器之間的 TCP 雙向通訊。

首先在第一台機器中啟用紀錄檔:

  1. #tcpdump-qnnvvv -i enp0s3 host 10.0.0.20

在同一個系統上的另一個終端,讓我們通過 telnet 連線到 web 伺服器的 80 號埠(假設 Apache 正在監聽該埠;否則應在下面命令中使用正確的監聽埠):

  1. # telnet 10.0.0.2080

tcpdump 紀錄檔看起來像下面這樣:

檢查伺服器之間的網路連線

通過檢視我們 RHEL 7(192.168.0.18)和 web 伺服器(10.0.0.20)之間的雙向通訊,可以看出已經正確地初始化了連線。

請注意你重新啟動系統後會丟失這些更改。如果你想把它們永久儲存下來,你需要在我們執行上面的命令的相同系統中編輯(如果不存在的話就建立)以下的檔案。

儘管對於我們的測試例子不是嚴格要求,你需要知道 /etc/sysconfig/network 包含了一些系統範圍的網路引數。一個典型的 /etc/sysconfig/network 看起來類似下面這樣:

  1. #Enable networking on this system?
  2. NETWORKING=yes
  3. #Hostname.Should match the value in/etc/hostname
  4. HOSTNAME=yourhostnamehere
  5. #Default gateway
  6. GATEWAY=XXX.XXX.XXX.XXX
  7. #Device used to connect to default gateway.Replace X with the appropriate number.
  8. GATEWAYDEV=enp0sX

當需要為每個網絡卡設定特定的變數和值時(正如我們在2號路由器上面做的),你需要編輯 /etc/sysconfig/network-scripts/ifcfg-enp0s3/etc/sysconfig/network-scripts/ifcfg-enp0s8 檔案。

下面是我們的例子,

  1. TYPE=Ethernet
  2. BOOTPROTO=static
  3. IPADDR=192.168.0.19
  4. NETMASK=255.255.255.0
  5. GATEWAY=192.168.0.1
  6. NAME=enp0s3
  7. ONBOOT=yes

以及

  1. TYPE=Ethernet
  2. BOOTPROTO=static
  3. IPADDR=10.0.0.18
  4. NETMASK=255.255.255.0
  5. GATEWAY=10.0.0.1
  6. NAME=enp0s8
  7. ONBOOT=yes

其分別對應 enp0s3 和 enp0s8。

由於要為我們的用戶端機器(192.168.0.18)進行路由,我們需要編輯 /etc/sysconfig/network-scripts/route-enp0s3

  1. 10.0.0.0/24 via 192.168.0.19 dev enp0s3

現在reboot你的系統,就可以在路由表中看到該路由規則。

 

總結

在這篇文章中我們介紹了紅帽企業版 Linux 7 的靜態路由。儘管場景可能不同,這裡介紹的例子說明了所需的原理以及進行該任務的步驟。結束之前,我還建議你看一下 Linux 文件專案(The Linux Documentation Project)網站上的《安全加固和優化 Linux(Securing and Optimizing Linux)》的第四章,以了解這裡介紹主題的更詳細內容。

在下篇文章中我們會介紹封包過濾和網路地址轉換,結束 RHCE 驗證需要的網路基本技巧。

如往常一樣,我們期望聽到你的回復,用下面的表格留下你的疑問、評論和建議吧。


via: http://www.tecmint.com/how-to-setup-and-configure-static-network-routing-in-rhel/

作者:Gabriel Cánepa 譯者:ictlyh 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

本文永久更新連結地址http://www.linuxidc.com/Linux/2015-10/124400.htm


IT145.com E-mail:sddin#qq.com