網路管理初學者指南
大多數人每一天至少會接觸到兩種類型的網路。當你打開計算機或者移動設備,設備連接到本地 WiFi,本地 WiFi 然後連接到所謂「互聯網」的互聯網路。
但是網路實際上是如何工作的?你的設備如何能夠找到互聯網、共享印表機或文件共享?這些東西如何知道響應你的設備?系統管理員用什麼措施來優化網路的性能?
開源思想在網路技術領域根深蒂固,因此任何想更多了解網路的人,可以免費獲得網路相關的資源。本文介紹了使用開源技術的網路管理相關的基礎知識。
網路是什麼?
計算機網路是由兩台或者多台計算機組成的、互相通信的集合。為了使得網路能夠工作,網路上一台計算機必須能夠找到其他計算機,且通信必須能夠從一台計算機到達另外一台。為了解決這一需求,開發和定義了兩種不同的通信協議:TCP 和 IP。
用於傳輸的 TCP 協議
為了使得計算機之間能夠通信,它們之間必須有一種傳輸信息的手段。人說話產生的聲音是通過聲波來傳遞的,計算機是通過乙太網電纜、無線電波或微波傳輸的數字信號進行通信的。這方面的規範被正式定義為 TCP 協議。
用於定址的 IP 協議
計算機必須有一些識別手段才能相互定址。當人類相互稱呼時,我們使用名字和代名詞。當計算機相互定址時,它們使用 IP 地址,如 192.168.0.1
,IP 地址可以被映射到名稱上,如「Laptop」、「Desktop」、「Tux」 或 「Penguin」。這方面的規範被定義為 IP 協議。
最小配置設置
最簡單的網路是一個兩台計算機的網路,使用稱為「交叉電纜」的特殊布線方式的乙太網電纜。交叉電纜將來自一台計算機的信號連接並傳輸到另一台計算機上的適當受體。還有一些交叉適配器可以將標準的乙太網轉換為交叉電纜。
![Crossover cable](/data/attachment/album/202105/09/164201mtgx04hrtfza0sd0.jpg "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 接入點。
擴大你的知識規模
無論你的網路上有多少設備,或你的網路連接到多少其他網路,其原則仍然與你的雙節點網路相同。你需要一種傳輸方式,一種定址方案,以及如何路由到網路的知識。
網路知識速查表
了解網路是如何運作的,對管理網路至關重要。除非你了解你的測試結果,否則你無法排除問題,除非你知道哪些命令能夠與你的網路設備交互,否則你無法運行測試。對於重要的網路命令的基本用法以及你可以用它們提取什麼樣的信息,請下載我們最新的網路速查表。
via: https://opensource.com/article/21/4/network-management
作者:Seth Kenlon 選題:lujun9972 譯者:ddl-hust 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive