Linux 局域網路由新手指南:第 1 部分

Linux 局域網路由新手指南:第 1 部分

編譯自: https://www.linux.com/learn/intro-to-linux/2018/2/linux-lan-routing-beginners-part-1

譯者: qhwdw

前面我們學習了 IPv6 路由[1]。現在我們繼續深入學習 Linux 中的 IPv4 路由的基礎知識。我們從硬件概述、操作系統和 IPv4 地址的基礎知識開始,下週我們將繼續學習它們如何配置,以及測試路由。

局域網路由器硬件

Linux 實際上是一個網絡操作系統,一直都是,從一開始它就有內置的網絡功能。要將你的局域網連入因特網,構建一個局域網路由器比起構建網關路由器要簡單的多。你不要太過於執念安全或者防火牆規則,對於處理網絡地址轉換(NAT)它還是比較複雜的,NAT是 IPv4 的一個痛點。我們為什麼不放棄 IPv4 去轉到 IPv6 呢?這樣將使網絡管理員的工作更加簡單。

有點跑題了。從理論上講,你的 Linux 路由器是一個至少有兩個網絡接口的小型機器。Linux Gizmos 有一個很大的單板機名單:98 個開放規格、適於黑客的 SBC 的目錄[2]。你能夠使用一個很老的筆記本電腦或者臺式計算機。你也可以使用一個緊湊型計算機,像 ZaReason Zini 或者 System76 Meerkat 一樣,雖然這些有點貴,差不多要 $600。但是它們又結實又可靠,並且你不用在 Windows 許可證上浪費錢。

如果對路由器的要求不高,使用樹莓派 3 Model B 作為路由器是一個非常好的選擇。它有一個 10/100 以太網端口,板載 2.4GHz 的 802.11n 無線網卡,並且它還有四個 USB 端口,因此你可以插入多個 USB 網卡。USB 2.0 和低速板載網卡可能會讓樹莓派變成你的網絡上的瓶頸,但是,你不能對它期望太高(畢竟它只有 $35,既沒有存儲也沒有電源)。它支持很多種風格的 Linux,因此你可以選擇使用你喜歡的版本。基於 Debian 的樹莓派是我的最愛。

操作系統

你可以在你選擇的硬件上安裝將你喜歡的 Linux 的簡化版,因為定製的路由器操作系統,比如 OpenWRT、 Tomato、DD-WRT、Smoothwall、Pfsense 等等,都有它們自己的非標準界面。我的觀點是,沒有必要這麼麻煩,它們對你並沒有什麼幫助。儘量使用標準的 Linux 工具,因為你只需要學習它們一次就夠了。

Debian 的網絡安裝鏡像大約有 300MB 大小,並且支持多種架構,包括 ARM、i386、amd64 和 armhf。Ubuntu 的服務器網絡安裝鏡像也小於 50MB,這樣你就可以控制你要安裝哪些包。Fedora、Mageia、和 openSUSE 都提供精簡的網絡安裝鏡像。如果你需要創意,你可以瀏覽 Distrowatch[3]。

路由器能做什麼

我們需要網絡路由器做什麼?一個路由器連接不同的網絡。如果沒有路由,那麼每個網絡都是相互隔離的,所有的悲傷和孤獨都沒有人與你分享,所有節點只能孤獨終老。假設你有一個 192.168.1.0/24 和一個 192.168.2.0/24 網絡。如果沒有路由器,你的兩個網絡之間不能相互溝通。這些都是 C 類的私有地址,它們每個都有 254 個可用網絡地址。使用 ipcalc 可以非常容易地得到它們的這些信息:

$ ipcalc 192.168.1.0/24

Address: 192.168.1.0 11000000.10101000.00000001. 00000000

Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000

Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111

=>

Network: 192.168.1.0/24 11000000.10101000.00000001. 00000000

HostMin: 192.168.1.1 11000000.10101000.00000001. 00000001

HostMax: 192.168.1.254 11000000.10101000.00000001. 11111110

Broadcast: 192.168.1.255 11000000.10101000.00000001. 11111111

Hosts/Net: 254 Class C, Private Internet

我喜歡 ipcalc 的二進制輸出信息,它更加可視地表示了掩碼是如何工作的。前三個八位組表示了網絡地址,第四個八位組是主機地址,因此,當你分配主機地址時,你將 “掩蓋” 掉網絡地址部分,只使用剩餘的主機部分。你的兩個網絡有不同的網絡地址,而這就是如果兩個網絡之間沒有路由器它們就不能互相通訊的原因。

每個八位組一共有 256 字節,但是它們並不能提供 256 個主機地址,因為第一個和最後一個值 ,也就是 0 和 255,是被保留的。0 是網絡標識,而 255 是廣播地址,因此,只有 254 個主機地址。ipcalc 可以幫助你很容易地計算出這些。

當然,這並不意味著你不能有一個結尾是 0 或者 255 的主機地址。假設你有一個 16 位的前綴:

$ ipcalc 192.168.0.0/16

Address: 192.168.0.0 11000000.10101000. 00000000.00000000

Netmask: 255.255.0.0 = 16 11111111.11111111. 00000000.00000000

Wildcard: 0.0.255.255 00000000.00000000. 11111111.11111111

=>

Network: 192.168.0.0/16 11000000.10101000. 00000000.00000000

HostMin: 192.168.0.1 11000000.10101000. 00000000.00000001

HostMax: 192.168.255.254 11000000.10101000. 11111111.11111110

Broadcast: 192.168.255.255 11000000.10101000. 11111111.11111111

Hosts/Net: 65534 Class C, Private Internet

ipcalc 列出了你的第一個和最後一個主機地址,它們是 192.168.0.1 和 192.168.255.254。你是可以有以 0 或者 255 結尾的主機地址的,例如,192.168.1.0 和 192.168.0.255,因為它們都在最小主機地址和最大主機地址之間。

不論你的地址塊是私有的還是公共的,這個原則同樣都是適用的。不要羞於使用 ipcalc 來幫你計算地址。

CIDR

CIDR(無類域間路由)就是通過可變長度的子網掩碼來擴展 IPv4 的。CIDR 允許對網絡空間進行更精細地分割。我們使用 ipcalc 來演示一下:

$ ipcalc 192.168.1.0/22

Address: 192.168.1.0 11000000.10101000.000000 01.00000000

Netmask: 255.255.252.0 = 22 11111111.11111111.111111 00.00000000

Wildcard: 0.0.3.255 00000000.00000000.000000 11.11111111

=>

Network: 192.168.0.0/22 11000000.10101000.000000 00.00000000

HostMin: 192.168.0.1 11000000.10101000.000000 00.00000001

HostMax: 192.168.3.254 11000000.10101000.000000 11.11111110

Broadcast: 192.168.3.255 11000000.10101000.000000 11.11111111

Hosts/Net: 1022 Class C, Private Internet

網絡掩碼並不侷限於整個八位組,它可以跨越第三和第四個八位組,並且子網部分的範圍可以是從 0 到 3,而不是非得從 0 到 255。可用主機地址的數量並不一定是 8 的倍數,因為它是由整個八位組定義的。

給你留一個家庭作業,複習 CIDR 和 IPv4 地址空間是如何在公共、私有和保留塊之間分配的,這個作業有助你更好地理解路由。一旦你掌握了地址的相關知識,配置路由器將不再是件複雜的事情了。

從 理解 IP 地址和 CIDR 圖表[4]、IPv4 私有地址空間和過濾[5]、以及 IANA IPv4 地址空間註冊[6] 開始。接下來的我們將學習如何創建和管理路由器。

通過來自 Linux 基金會和 edX 的免費課程 “Linux 入門”[7]學習更多 Linux 知識。


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


分享到:


相關文章: