網絡管理初學者指南
大多數人每一天至少會接觸到兩種類型的網絡。當你打開計算機或者移動設備,設備連接到本地 WiFi,本地 WiFi 然后連接到所謂“互聯網”的互聯網絡。
但是網絡實際上是如何工作的?你的設備如何能夠找到互聯網、共享打印機或文件共享?這些東西如何知道響應你的設備?系統管理員用什么措施來優化網絡的性能?
開源思想在網絡技術領域根深蒂固,因此任何想更多了解網絡的人,可以免費獲得網絡相關的資源。本文介紹了使用開源技術的網絡管理相關的基礎知識。
網絡是什么?
計算機網絡是由兩臺或者多臺計算機組成的、互相通信的集合。為了使得網絡能夠工作,網絡上一臺計算機必須能夠找到其他計算機,且通信必須能夠從一臺計算機到達另外一臺。為了解決這一需求,開發和定義了兩種不同的通信協議:TCP 和 IP。
用于傳輸的 TCP 協議
為了使得計算機之間能夠通信,它們之間必須有一種傳輸信息的手段。人說話產生的聲音是通過聲波來傳遞的,計算機是通過以太網電纜、無線電波或微波傳輸的數字信號進行通信的。這方面的規范被正式定義為 TCP 協議。
用于尋址的 IP 協議
計算機必須有一些識別手段才能相互尋址。當人類相互稱呼時,我們使用名字和代名詞。當計算機相互尋址時,它們使用 IP 地址,如 192.168.0.1,IP 地址可以被映射到名稱上,如“Laptop”、“Desktop”、“Tux” 或 “Penguin”。這方面的規范被定義為 IP 協議。
最小配置設置
最簡單的網絡是一個兩臺計算機的網絡,使用稱為“交叉電纜”的特殊布線方式的以太網電纜。交叉電纜將來自一臺計算機的信號連接并傳輸到另一臺計算機上的適當受體。還有一些交叉適配器可以將標準的以太網轉換為交叉電纜。
Crossover cable由于在這兩臺計算機之間沒有路由器,所有的網絡管理都必須在每臺機器上手動完成,因此這是一個很好的網絡基礎知識的入門練習。
用一根交叉電纜,你可以把兩臺計算機連接在一起。因為這兩臺計算機是直接連接的,沒有網絡控制器提供指導,所以這兩臺計算機都不用做什么創建網絡或加入網絡的事情。通常情況下,這項任務會由交換機和 DHCP 服務器或路由器來提示,但在這個簡單的網絡設置中,這一切都由你負責。
要創建一個網絡,你必須先為每臺計算機分配一個 IP 地址,為自行分配而保留的地址從 169.254 開始,這是一個約定俗成的方式,提醒你本 IP 段是一個閉環系統。
找尋網絡接口
首先,你必須知道你正在使用什么網絡接口。以太網端口通常用 “eth” 加上一個從 0 開始的數字來指定,但有些設備用不同的術語來表示接口。你可以用 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 或類似的東西,所以在使用設備名稱之前,一定要先檢查它。
分配 IP 地址
通常情況下,IP 地址是從路由器獲得的,路由器在網絡上廣播提供地址。當一臺計算機連接到一個網絡時,它請求一個地址。路由器通過介質訪問控制(MAC)地址識別設備(注意這個 MAC 與蘋果 Mac 電腦無關),并被分配 IP 地址。這就是計算機在網絡上找到彼此的方式。
在本文的簡單網絡中,沒有路由器來分配 IP 地址及注冊設備,因此我們需要手動分配 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
現在計算機有了交叉電纜作為通信介質,有了獨一無二的 IP 地址用來識別身份。但是這個網絡還缺少一個重要成分:計算機不知道自己是網絡的一部分。
設置路由
路由器另外的一個功能是設置從一個地方到另一個地方的網絡路徑,稱作路由表,路由表可以簡單的看作網絡的城市地圖。
雖然現在我們還沒有設置路由表,但是我們可以通過 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 結束)的路由。它將路由協議設置為“靜態”,表示作為管理員的你創建了這個路由,作為對該范圍內的任何動態路由進行覆蓋。
通過 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
探測相鄰網絡
現在,你的網絡有了傳輸方式、尋址方法以及網絡路由。你可以聯系到你的計算機以外的主機。向另一臺計算機發送的最簡單的信息是一個 “呯”,這也是產生該信息的命令的名稱(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
通過交換機擴展你的網絡
只需要雙節點的網絡并不多。為了解決這個問題,人們開發了特殊的硬件,稱為網絡“交換機”。網絡交換機允許你將幾條以太網電纜連接到它上面,它將消息不加區分地從發送消息的計算機分發到交換機上所有監聽的計算機。除了擁有與預期接收者相匹配的 IP 地址的計算機外,其他所有計算機都會忽略該信息。這使得網絡變得相對嘈雜,但這是物理上,將一組計算機連接在一起的簡單方法。
在大多數現代家庭網絡中,用于物理電纜的物理交換機并不實用。所以 WiFi 接入點代替了物理交換機。WiFi 接入點的功能與交換機相同:它允許許多計算機連接到它并在它們之間傳遞信息。
接入互聯網不僅僅是一種期望,它通常是家庭網絡存在的原因。沒有接入互聯網的交換機或 WiFi 接入點不是很有用,但要將你的網絡連接到另一個網絡,你需要一個路由器。
添加路由器
實際上,本地網絡連接了許多設備,并且越來越多的設備具備聯網能力,使得網絡的規模呈數量級級別增長。
手動配置網絡是不切實際的,因此這些任務分配給網絡中特定的節點來處理,網絡中每臺計算機運行一個后臺守護進程,以填充從網絡上的權威服務器收到的網絡設置。家庭網絡中,這些工作通常被整合到一個小型嵌入式設備中,通常由你的互聯網服務提供商(ISP)提供,稱為路由器(人們有時錯誤地將其稱為調制解調器)。在一個大型網絡中,每項工作通常被分配到一個單獨的專用服務器上,以確保專用服務器能夠專注于自己的工作以及保證工作彈性。這些任務包括:
- DHCP 服務器,為加入網絡的設備分配和跟蹤 IP 地址
- DNS 服務器將諸如域名 redhat.com 轉換成 IP 地址 209.132.183.105
- 防火墻 保護你的網絡免受不需要的傳入流量或被禁止的傳出流量
- 路由器有效傳輸網絡流量,作為其他網絡(如互聯網)的網關,并進行網絡地址轉換(NAT)
你現在的網絡上可能有一個路由器,它可能管理著所有這些任務,甚至可能更多。感謝像 VyOS 這樣的項目,現在你可以運行 自己的開源路由器。對于這樣一個項目,你應該使用一臺專門的計算機,至少有兩個網絡接口控制器(NIC):一個連接到你的 ISP,另一個連接到交換機,或者更有可能是一個 WiFi 接入點。
擴大你的知識規模
無論你的網絡上有多少設備,或你的網絡連接到多少其他網絡,其原則仍然與你的雙節點網絡相同。你需要一種傳輸方式,一種尋址方案,以及如何路由到網絡的知識。
網絡知識速查表
了解網絡是如何運作的,對管理網絡至關重要。除非你了解你的測試結果,否則你無法排除問題,除非你知道哪些命令能夠與你的網絡設備交互,否則你無法運行測試。