Linux中國

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

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

區域網路由器硬體

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

有點跑題了。從理論上講,你的 Linux 路由器是一個至少有兩個網路介面的小型機器。Linux Gizmos 有一個很大的單板機名單:98 個開放規格、適於黑客的 SBC 的目錄。你能夠使用一個很老的筆記本電腦或者台式計算機。你也可以使用一個緊湊型計算機,像 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

路由器能做什麼

我們需要網路路由器做什麼?一個路由器連接不同的網路。如果沒有路由,那麼每個網路都是相互隔離的,所有的悲傷和孤獨都沒有人與你分享,所有節點只能孤獨終老。假設你有一個 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 圖表IPv4 私有地址空間和過濾、以及 IANA IPv4 地址空間註冊 開始。接下來的我們將學習如何創建和管理路由器。

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

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

作者: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中國