網(wǎng)絡(luò)管理初學(xué)者指南
大多數(shù)人每一天至少會接觸到兩種類型的網(wǎng)絡(luò)。當你打開計算機或者移動設(shè)備,設(shè)備連接到本地 WiFi,本地 WiFi 然后連接到所謂“互聯(lián)網(wǎng)”的互聯(lián)網(wǎng)絡(luò)。
但是網(wǎng)絡(luò)實際上是如何工作的?你的設(shè)備如何能夠找到互聯(lián)網(wǎng)、共享打印機或文件共享?這些東西如何知道響應(yīng)你的設(shè)備?系統(tǒng)管理員用什么措施來優(yōu)化網(wǎng)絡(luò)的性能?
開源思想在網(wǎng)絡(luò)技術(shù)領(lǐng)域根深蒂固,因此任何想更多了解網(wǎng)絡(luò)的人,可以免費獲得網(wǎng)絡(luò)相關(guān)的資源。本文介紹了使用開源技術(shù)的網(wǎng)絡(luò)管理相關(guān)的基礎(chǔ)知識。
網(wǎng)絡(luò)是什么?
計算機網(wǎng)絡(luò)是由兩臺或者多臺計算機組成的、互相通信的集合。為了使得網(wǎng)絡(luò)能夠工作,網(wǎng)絡(luò)上一臺計算機必須能夠找到其他計算機,且通信必須能夠從一臺計算機到達另外一臺。為了解決這一需求,開發(fā)和定義了兩種不同的通信協(xié)議:TCP 和 IP。
用于傳輸?shù)?TCP 協(xié)議
為了使得計算機之間能夠通信,它們之間必須有一種傳輸信息的手段。人說話產(chǎn)生的聲音是通過聲波來傳遞的,計算機是通過以太網(wǎng)電纜、無線電波或微波傳輸?shù)臄?shù)字信號進行通信的。這方面的規(guī)范被正式定義為 TCP 協(xié)議。
用于尋址的 IP 協(xié)議
計算機必須有一些識別手段才能相互尋址。當人類相互稱呼時,我們使用名字和代名詞。當計算機相互尋址時,它們使用 IP 地址,如 192.168.0.1,IP 地址可以被映射到名稱上,如“Laptop”、“Desktop”、“Tux” 或 “Penguin”。這方面的規(guī)范被定義為 IP 協(xié)議。
最小配置設(shè)置
最簡單的網(wǎng)絡(luò)是一個兩臺計算機的網(wǎng)絡(luò),使用稱為“交叉電纜”的特殊布線方式的以太網(wǎng)電纜。交叉電纜將來自一臺計算機的信號連接并傳輸?shù)搅硪慌_計算機上的適當受體。還有一些交叉適配器可以將標準的以太網(wǎng)轉(zhuǎn)換為交叉電纜。
Crossover cable由于在這兩臺計算機之間沒有路由器,所有的網(wǎng)絡(luò)管理都必須在每臺機器上手動完成,因此這是一個很好的網(wǎng)絡(luò)基礎(chǔ)知識的入門練習(xí)。
用一根交叉電纜,你可以把兩臺計算機連接在一起。因為這兩臺計算機是直接連接的,沒有網(wǎng)絡(luò)控制器提供指導(dǎo),所以這兩臺計算機都不用做什么創(chuàng)建網(wǎng)絡(luò)或加入網(wǎng)絡(luò)的事情。通常情況下,這項任務(wù)會由交換機和 DHCP 服務(wù)器或路由器來提示,但在這個簡單的網(wǎng)絡(luò)設(shè)置中,這一切都由你負責(zé)。
要創(chuàng)建一個網(wǎng)絡(luò),你必須先為每臺計算機分配一個 IP 地址,為自行分配而保留的地址從 169.254 開始,這是一個約定俗成的方式,提醒你本 IP 段是一個閉環(huán)系統(tǒng)。
找尋網(wǎng)絡(luò)接口
首先,你必須知道你正在使用什么網(wǎng)絡(luò)接口。以太網(wǎng)端口通常用 “eth” 加上一個從 0 開始的數(shù)字來指定,但有些設(shè)備用不同的術(shù)語來表示接口。你可以用 ip 命令來查詢計算機上的接口:
- $ ip address show
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 ...
- link/loopback 00:00:00:00:00:00 brd ...
- inet 127.0.0.1/8 scope host lo
- valid_lft forever preferred_lft forever
- inet6 ::1/128 scope host
- valid_lft forever preferred_lft forever
- 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
- link/ether dc:a6:32:be:a3:e1 brd ...
- 3: wlan0: <BROADCAST,MULTICAST> ...
- link/ether dc:a6:32:be:a3:e2 brd ...
在這個例子中,eth0 是正確的接口名稱。然而,在某些情況下,你會看到 en0 或 enp0s1 或類似的東西,所以在使用設(shè)備名稱之前,一定要先檢查它。
分配 IP 地址
通常情況下,IP 地址是從路由器獲得的,路由器在網(wǎng)絡(luò)上廣播提供地址。當一臺計算機連接到一個網(wǎng)絡(luò)時,它請求一個地址。路由器通過介質(zhì)訪問控制(MAC)地址識別設(shè)備(注意這個 MAC 與蘋果 Mac 電腦無關(guān)),并被分配 IP 地址。這就是計算機在網(wǎng)絡(luò)上找到彼此的方式。
在本文的簡單網(wǎng)絡(luò)中,沒有路由器來分配 IP 地址及注冊設(shè)備,因此我們需要手動分配 IP 地址,使用 ip 命令來給計算機分配 IP 地址:
- $ sudo ip address add 169.254.0.1 dev eth0
給另外一臺計算機分配 IP 地址,將 IP 地址增 1:
- $ sudo ip address add 169.254.0.2 dev eth0
現(xiàn)在計算機有了交叉電纜作為通信介質(zhì),有了獨一無二的 IP 地址用來識別身份。但是這個網(wǎng)絡(luò)還缺少一個重要成分:計算機不知道自己是網(wǎng)絡(luò)的一部分。
設(shè)置路由
路由器另外的一個功能是設(shè)置從一個地方到另一個地方的網(wǎng)絡(luò)路徑,稱作路由表,路由表可以簡單的看作網(wǎng)絡(luò)的城市地圖。
雖然現(xiàn)在我們還沒有設(shè)置路由表,但是我們可以通過 route 命令來查看路由表:
- $ route
- Kernel IP routing table
- Destination | Gateway | Genmask | Flags|Metric|Ref | Use | Iface
- $
同樣,你可以通過 ip 命令來查看路由表:
- $ ip route
- $
通過 ip 命令添加一條路由信息:
- $ sudo ip route \
- add 169.254.0.0/24 \
- dev eth0 \
- proto static
這條命令為 eth0 接口添加一個地址范圍(從 169.254.0.0 開始到 169.254.0.255 結(jié)束)的路由。它將路由協(xié)議設(shè)置為“靜態(tài)”,表示作為管理員的你創(chuàng)建了這個路由,作為對該范圍內(nèi)的任何動態(tài)路由進行覆蓋。
通過 route 命令來查詢路由表:
- $ route
- Kernel IP routing table
- Destination | Gateway | Genmask | ... | Iface
- link-local | 0.0.0.0 | 255.255.255.0 | ... | eth0
或者使用ip命令從不同角度來查詢路由表:
- $ ip route
- 169.254.0.0/24 dev eth0 proto static scope link
探測相鄰網(wǎng)絡(luò)
現(xiàn)在,你的網(wǎng)絡(luò)有了傳輸方式、尋址方法以及網(wǎng)絡(luò)路由。你可以聯(lián)系到你的計算機以外的主機。向另一臺計算機發(fā)送的最簡單的信息是一個 “呯”,這也是產(chǎn)生該信息的命令的名稱(ping)。
- $ ping -c1 169.254.0.2
- 64 bytes from 169.254.0.2: icmp_seq=1 ttl=64 time=0.233 ms
- --- 169.254.0.2 ping statistics ---
- 1 packets transmitted, 1 received, 0% packet loss, time 0ms
- rtt min/avg/max/mdev = 0.244/0.244/0.244/0.000 ms
你可以通過下面的命令看到與你交互的鄰居:
- $ ip neighbour
- 169.254.0.2 dev eth0 lladdr e8:6a:64:ac:ef:7c STALE
通過交換機擴展你的網(wǎng)絡(luò)
只需要雙節(jié)點的網(wǎng)絡(luò)并不多。為了解決這個問題,人們開發(fā)了特殊的硬件,稱為網(wǎng)絡(luò)“交換機”。網(wǎng)絡(luò)交換機允許你將幾條以太網(wǎng)電纜連接到它上面,它將消息不加區(qū)分地從發(fā)送消息的計算機分發(fā)到交換機上所有監(jiān)聽的計算機。除了擁有與預(yù)期接收者相匹配的 IP 地址的計算機外,其他所有計算機都會忽略該信息。這使得網(wǎng)絡(luò)變得相對嘈雜,但這是物理上,將一組計算機連接在一起的簡單方法。
在大多數(shù)現(xiàn)代家庭網(wǎng)絡(luò)中,用于物理電纜的物理交換機并不實用。所以 WiFi 接入點代替了物理交換機。WiFi 接入點的功能與交換機相同:它允許許多計算機連接到它并在它們之間傳遞信息。
接入互聯(lián)網(wǎng)不僅僅是一種期望,它通常是家庭網(wǎng)絡(luò)存在的原因。沒有接入互聯(lián)網(wǎng)的交換機或 WiFi 接入點不是很有用,但要將你的網(wǎng)絡(luò)連接到另一個網(wǎng)絡(luò),你需要一個路由器。
添加路由器
實際上,本地網(wǎng)絡(luò)連接了許多設(shè)備,并且越來越多的設(shè)備具備聯(lián)網(wǎng)能力,使得網(wǎng)絡(luò)的規(guī)模呈數(shù)量級級別增長。
手動配置網(wǎng)絡(luò)是不切實際的,因此這些任務(wù)分配給網(wǎng)絡(luò)中特定的節(jié)點來處理,網(wǎng)絡(luò)中每臺計算機運行一個后臺守護進程,以填充從網(wǎng)絡(luò)上的權(quán)威服務(wù)器收到的網(wǎng)絡(luò)設(shè)置。家庭網(wǎng)絡(luò)中,這些工作通常被整合到一個小型嵌入式設(shè)備中,通常由你的互聯(lián)網(wǎng)服務(wù)提供商(ISP)提供,稱為路由器(人們有時錯誤地將其稱為調(diào)制解調(diào)器)。在一個大型網(wǎng)絡(luò)中,每項工作通常被分配到一個單獨的專用服務(wù)器上,以確保專用服務(wù)器能夠?qū)W⒂谧约旱墓ぷ饕约氨WC工作彈性。這些任務(wù)包括:
- DHCP 服務(wù)器,為加入網(wǎng)絡(luò)的設(shè)備分配和跟蹤 IP 地址
- DNS 服務(wù)器將諸如域名 redhat.com 轉(zhuǎn)換成 IP 地址 209.132.183.105
- 防火墻 保護你的網(wǎng)絡(luò)免受不需要的傳入流量或被禁止的傳出流量
- 路由器有效傳輸網(wǎng)絡(luò)流量,作為其他網(wǎng)絡(luò)(如互聯(lián)網(wǎng))的網(wǎng)關(guān),并進行網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)
你現(xiàn)在的網(wǎng)絡(luò)上可能有一個路由器,它可能管理著所有這些任務(wù),甚至可能更多。感謝像 VyOS 這樣的項目,現(xiàn)在你可以運行 自己的開源路由器。對于這樣一個項目,你應(yīng)該使用一臺專門的計算機,至少有兩個網(wǎng)絡(luò)接口控制器(NIC):一個連接到你的 ISP,另一個連接到交換機,或者更有可能是一個 WiFi 接入點。
擴大你的知識規(guī)模
無論你的網(wǎng)絡(luò)上有多少設(shè)備,或你的網(wǎng)絡(luò)連接到多少其他網(wǎng)絡(luò),其原則仍然與你的雙節(jié)點網(wǎng)絡(luò)相同。你需要一種傳輸方式,一種尋址方案,以及如何路由到網(wǎng)絡(luò)的知識。
網(wǎng)絡(luò)知識速查表
了解網(wǎng)絡(luò)是如何運作的,對管理網(wǎng)絡(luò)至關(guān)重要。除非你了解你的測試結(jié)果,否則你無法排除問題,除非你知道哪些命令能夠與你的網(wǎng)絡(luò)設(shè)備交互,否則你無法運行測試。