Linux局域網(wǎng)路由新手指南:第1部分
前面我們學(xué)習(xí)了 IPv6 路由。現(xiàn)在我們繼續(xù)深入學(xué)習(xí) Linux 中的 IPv4 路由的基礎(chǔ)知識。我們從硬件概述、操作系統(tǒng)和 IPv4 地址的基礎(chǔ)知識開始,下周我們將繼續(xù)學(xué)習(xí)它們?nèi)绾闻渲茫约皽y試路由。
局域網(wǎng)路由器硬件
Linux 實際上是一個網(wǎng)絡(luò)操作系統(tǒng),一直都是,從一開始它就有內(nèi)置的網(wǎng)絡(luò)功能。要將你的局域網(wǎng)連入因特網(wǎng),構(gòu)建一個局域網(wǎng)路由器比起構(gòu)建網(wǎng)關(guān)路由器要簡單的多。你不要太過于執(zhí)念安全或者防火墻規(guī)則,對于處理網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)它還是比較復(fù)雜的,NAT是 IPv4 的一個痛點。我們?yōu)槭裁床环艞?IPv4 去轉(zhuǎn)到 IPv6 呢?這樣將使網(wǎng)絡(luò)管理員的工作更加簡單。
有點跑題了。從理論上講,你的 Linux 路由器是一個至少有兩個網(wǎng)絡(luò)接口的小型機器。Linux Gizmos 有一個很大的單板機名單:98 個開放規(guī)格、適于黑客的 SBC 的目錄。你能夠使用一個很老的筆記本電腦或者臺式計算機。你也可以使用一個緊湊型計算機,像 ZaReason Zini 或者 System76 Meerkat 一樣,雖然這些有點貴,差不多要 $600。但是它們又結(jié)實又可靠,并且你不用在 Windows 許可證上浪費錢。
如果對路由器的要求不高,使用樹莓派 3 Model B 作為路由器是一個非常好的選擇。它有一個 10/100 以太網(wǎng)端口,板載 2.4GHz 的 802.11n 無線網(wǎng)卡,并且它還有四個 USB 端口,因此你可以插入多個 USB 網(wǎng)卡。USB 2.0 和低速板載網(wǎng)卡可能會讓樹莓派變成你的網(wǎng)絡(luò)上的瓶頸,但是,你不能對它期望太高(畢竟它只有 $35,既沒有存儲也沒有電源)。它支持很多種風(fēng)格的 Linux,因此你可以選擇使用你喜歡的版本。基于 Debian 的樹莓派是我的***。
操作系統(tǒng)
你可以在你選擇的硬件上安裝將你喜歡的 Linux 的簡化版,因為定制的路由器操作系統(tǒng),比如 OpenWRT、 Tomato、DD-WRT、Smoothwall、Pfsense 等等,都有它們自己的非標準界面。我的觀點是,沒有必要這么麻煩,它們對你并沒有什么幫助。盡量使用標準的 Linux 工具,因為你只需要學(xué)習(xí)它們一次就夠了。
Debian 的網(wǎng)絡(luò)安裝鏡像大約有 300MB 大小,并且支持多種架構(gòu),包括 ARM、i386、amd64 和 armhf。Ubuntu 的服務(wù)器網(wǎng)絡(luò)安裝鏡像也小于 50MB,這樣你就可以控制你要安裝哪些包。Fedora、Mageia、和 openSUSE 都提供精簡的網(wǎng)絡(luò)安裝鏡像。如果你需要創(chuàng)意,你可以瀏覽 Distrowatch。
路由器能做什么
我們需要網(wǎng)絡(luò)路由器做什么?一個路由器連接不同的網(wǎng)絡(luò)。如果沒有路由,那么每個網(wǎng)絡(luò)都是相互隔離的,所有的悲傷和孤獨都沒有人與你分享,所有節(jié)點只能孤獨終老。假設(shè)你有一個 192.168.1.0/24 和一個 192.168.2.0/24 網(wǎng)絡(luò)。如果沒有路由器,你的兩個網(wǎng)絡(luò)之間不能相互溝通。這些都是 C 類的私有地址,它們每個都有 254 個可用網(wǎng)絡(luò)地址。使用 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
的二進制輸出信息,它更加可視地表示了掩碼是如何工作的。前三個八位組表示了網(wǎng)絡(luò)地址,第四個八位組是主機地址,因此,當你分配主機地址時,你將 “掩蓋” 掉網(wǎng)絡(luò)地址部分,只使用剩余的主機部分。你的兩個網(wǎng)絡(luò)有不同的網(wǎng)絡(luò)地址,而這就是如果兩個網(wǎng)絡(luò)之間沒有路由器它們就不能互相通訊的原因。
每個八位組一共有 256 字節(jié),但是它們并不能提供 256 個主機地址,因為***個和***一個值 ,也就是 0 和 255,是被保留的。0 是網(wǎng)絡(luò)標識,而 255 是廣播地址,因此,只有 254 個主機地址。ipcalc
可以幫助你很容易地計算出這些。
當然,這并不意味著你不能有一個結(jié)尾是 0 或者 255 的主機地址。假設(shè)你有一個 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 結(jié)尾的主機地址的,例如,192.168.1.0 和 192.168.0.255,因為它們都在最小主機地址和***主機地址之間。
不論你的地址塊是私有的還是公共的,這個原則同樣都是適用的。不要羞于使用 ipcalc
來幫你計算地址。
CIDR
CIDR(無類域間路由)就是通過可變長度的子網(wǎng)掩碼來擴展 IPv4 的。CIDR 允許對網(wǎng)絡(luò)空間進行更精細地分割。我們使用 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
網(wǎng)絡(luò)掩碼并不局限于整個八位組,它可以跨越第三和第四個八位組,并且子網(wǎng)部分的范圍可以是從 0 到 3,而不是非得從 0 到 255。可用主機地址的數(shù)量并不一定是 8 的倍數(shù),因為它是由整個八位組定義的。
給你留一個家庭作業(yè),復(fù)習(xí) CIDR 和 IPv4 地址空間是如何在公共、私有和保留塊之間分配的,這個作業(yè)有助你更好地理解路由。一旦你掌握了地址的相關(guān)知識,配置路由器將不再是件復(fù)雜的事情了。
從 理解 IP 地址和 CIDR 圖表、IPv4 私有地址空間和過濾、以及 IANA IPv4 地址空間注冊 開始。接下來的我們將學(xué)習(xí)如何創(chuàng)建和管理路由器。