Linux中國

Linux 區域網路由新手指南:第 2 部分

上周 我們學習了 IPv4 地址 和如何使用管理員不可或缺的工具 —— ipcalc,今天我們繼續學習更精彩的內容:區域網路由器。

VirtualBox 和 KVM 是測試路由的好工具,在本文中的所有示例都是在 KVM 中執行的。如果你喜歡使用物理硬體去做測試,那麼你需要三台計算機:一台用作路由器,另外兩台用於表示兩個不同的網路。你也需要兩台乙太網交換機和相應的線纜。

我們假設這個示例是一個有線以太區域網,為了更符合真實使用場景,我們將假設有一些橋接的無線接入點,當然我並不會使用這些無線接入點做任何事情。(我也不會去嘗試所有的無線路由器,以及使用一個移動寬頻設備連接到乙太網的區域網口進行混合組網,因為它們需要進一步的安裝和設置)

網段

最簡單的網段是兩台計算機連接在同一個交換機上的相同地址空間中。這樣兩台計算機不需要路由器就可以相互通訊。這就是我們常說的術語 —— 「廣播域」,它表示所有在相同的網路中的一組主機。它們可能連接到一台單個的乙太網交換機上,也可能是連接到多台交換機上。一個廣播域可以包括通過乙太網橋連接的兩個不同的網路,通過網橋可以讓兩個網路像一個單個網路一樣運轉。無線訪問點一般是橋接到有線乙太網上。

一個廣播域僅當在它們通過一台網路路由器連接的情況下,才可以與不同的廣播域進行通訊。

簡單的網路

以下示例的命令並不是永久生效的,重啟之後你所做的改變將會消失。

一個廣播域需要一台路由器才可以與其它廣播域通訊。我們使用兩台計算機和 ip 命令來解釋這些。我們的兩台計算機是 192.168.110.125 和 192.168.110.126,它們都插入到同一台乙太網交換機上。在 VirtualBox 或 KVM 中,當你配置一個新網路的時候會自動創建一個虛擬交換機,因此,當你分配一個網路到虛擬虛擬機上時,就像是插入一個交換機一樣。使用 ip addr show 去查看你的地址和網路介面名字。現在,這兩台主機可以互 ping 成功。

現在,給其中一台主機添加一個不同網路的地址:

# ip addr add 192.168.120.125/24 dev ens3

你可以指定一個網路介面名字,在示例中它的名字是 ens3。這不需要去添加一個網路前綴,在本案例中,它是 /24,但是顯式地添加它並沒有什麼壞處。你可以使用 ip 命令去檢查你的配置。下面的示例輸出為了清晰其見進行了刪減:

$ ip addr show
ens3:
 inet 192.168.110.125/24 brd 192.168.110.255 scope global dynamic ens3
 valid_lft 875sec preferred_lft 875sec
 inet 192.168.120.125/24 scope global ens3
 valid_lft forever preferred_lft forever

主機在 192.168.120.125 上可以 ping 它自己(ping 192.168.120.125),這是對你的配置是否正確的一個基本校驗,這個時候第二台計算機就已經不能 ping 通那個地址了。

現在我們需要做一些網路變更。添加第三台主機作為路由器。它需要兩個虛擬網路介面並添加第二個虛擬網路。在現實中,你的路由器必須使用一個靜態 IP 地址,但是現在,我們可以讓 KVM 的 DHCP 伺服器去為它分配地址,所以,你僅需要兩個虛擬網路:

  • 第一個網路:192.168.110.0/24
  • 第二個網路:192.168.120.0/24

接下來你的路由器必須配置去轉發數據包。數據包轉發默認是禁用的,你可以使用 sysctl 命令去檢查它的配置:

$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0

0 意味著禁用,使用如下的命令去啟用它:

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

接下來配置你的另一台主機做為第二個網路的一部分,你可以通過將原來在 192.168.110.0/24 的網路中的一台主機分配到 192.168.120.0/24 虛擬網路中,然後重新啟動兩個 「連網的」 主機,注意不是路由器。(或者重啟動主機上的網路服務;我年齡大了還有點懶,我記不住那些重啟服務的奇怪命令,還不如重啟主機來得乾脆。)重啟後各台機器的地址應該如下所示:

  • 主機 1: 192.168.110.125
  • 主機 2: 192.168.120.135
  • 路由器: 192.168.110.126 和 192.168.120.136

現在可以去隨意 ping 它們,可以從任何一台計算機上 ping 到任何一台其它計算機上。使用虛擬機和各種 Linux 發行版做這些事時,可能會產生一些意想不到的問題,因此,有時候 ping 的通,有時候 ping 不通。不成功也是一件好事,這意味著你需要動手去創建一條靜態路由。首先,查看已經存在的路由表。主機 1 和主機 2 的路由表如下所示:

$ ip route show
default via 192.168.110.1 dev ens3 proto static metric 100
192.168.110.0/24 dev ens3 proto kernel scope link src 192.168.110.164 metric 100

$ ip route show
default via 192.168.110.1 dev ens3 proto static metric 100
default via 192.168.120.1 dev ens3 proto static metric 101
169.254.0.0/16 dev ens3 scope link metric 1000
192.168.110.0/24 dev ens3 proto kernel scope link
 src 192.168.110.126 metric 100
192.168.120.0/24 dev ens9 proto kernel scope link
 src 192.168.120.136 metric 100

這顯示了我們使用的由 KVM 分配的預設路由。169.* 地址是自動鏈接的本地地址,我們不去管它。接下來我們看兩條路由,這兩條路由指向到我們的路由器。你可以有多條路由,在這個示例中我們將展示如何在主機 1 上添加一個非默認路由:

# ip route add 192.168.120.0/24 via 192.168.110.126 dev ens3

這意味著主機 1 可以通過路由器介面 192.168.110.126 去訪問 192.168.110.0/24 網路。看一下它們是如何工作的?主機 1 和路由器需要連接到相同的地址空間,然後路由器轉發到其它的網路。

以下的命令去刪除一條路由:

# ip route del 192.168.120.0/24

在真實的案例中,你不需要像這樣手動配置一台路由器,而是使用一個路由器守護程序,並通過 DHCP 做路由器通告,但是理解基本原理很重要。接下來我們將學習如何去配置一個易於使用的路由器守護程序來為你做這些事情。

通過來自 Linux 基金會和 edX 的免費課程 「Linux 入門」 來學習更多 Linux 的知識。

via: https://www.linux.com/learn/intro-to-linux/2018/3/linux-lan-routing-beginners-part-2

作者:CARLA SCHRODER 譯者:qhwdw 校對:wxy

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


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國