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