基本網路

目錄

20.1. IP 位址與路由
20.2. IPv6—下一代的網際網路
20.3. 名稱解析
20.4. 使用 YaST 手動設定網路連線
20.5. NetworkManager
20.6. 手動設定網路連線
20.7. smpppd 做為撥號助理

摘要

Linux 提供所有必要的網路工具及功能,以整合到所有類型的網路結構。使用網路卡、數據機或其他設備進行的網路存取可以使用 YaST 來設定。也可使用手動方式來設定組態。本章僅討論基本機制及相關的網路組態檔案。

Linux 及其他 Unix 作業系統使用 TCP/IP 通訊協定。它不是單一網路通訊協定,而是能夠提供各種服務的網路通訊協定家族的一員。表格 20.1 「TCP/IP 通訊協定家族中的數種通訊協定」 中所列的通訊協定,其用途是透過 TCP/IP 在兩個機器之間交換資料。由 TCP/IP 組合而成的各個網路形成了一個全球範圍的大網路,也稱為「網際網路」。

RFC 代表 要求建議 (Request for Comments)。RFC 是描述作業系統及其應用程式的各種網際網路通訊協定和執行程序的文件。RFC 文件描述網際網路通訊協定的設定。若要擴展您對於某種通訊協定的瞭解,請參閱相應的 RFC 文件。http://www.ietf.org/rfc.html 上提供了這些文件。

表格 20.1. TCP/IP 通訊協定家族中的數種通訊協定

協定

描述

TCP

傳輸控制通訊協定:連線導向的安全通訊協定。傳輸的資料首先由應用程式當做資料流傳送出去,然後再由作業系統轉換為適當格式。資料送達目的地主機的相關應用程式時,使用的仍是最初傳送的原始資料流格式。TCP 會判定傳輸期間是否遺失或打亂了資料。只要是資料順序很重要的地方,就會執行 TCP。

UDP

使用者資料包通訊協定:無連線、不安全的通訊協定。要傳送的資料以應用程式產生的封包形式加以傳送。不會保證資料抵達接收者時的順序,而且可能會發生資料遺失的情況。UDP 適用以記錄為導向的應用程式。它的特點是延遲時間比 TCP 短。

ICMP

網際網路控制訊息通訊協定:基本上,這不是適用一般使用者的通訊協定,而是發佈錯誤報表的特殊控制通訊協定,能夠控制參與 TCP/IP 資料傳送之機器的行為。此外,它還提供特殊的回音模式,可以使用 ping 程式檢視。

IGMP

網際網路群組管理通訊協定:此通訊協定在實做 IP 多點廣播時控制機器行為。


圖形 20.1 「TCP/IP 的簡化層模型」 中所顯示,資料交換發生在不同層。實際的網路層是透過 IP (網際網路通訊協定,Internet Protocol) 進行不安全的資料傳輸。在 IP 的上方,TCP (傳輸控制通訊協定,Transmission Control Protocol) 可以保證資料傳輸某種程度的安全性。IP 層是由基本的硬體相依通訊協定所支援,例如乙太網路。

圖形 20.1. TCP/IP 的簡化層模型

TCP/IP 的簡化層模型

圖表提供每層的一或兩個範例。層的順序是依據抽象階層 (abstraction level)。最低層非常靠近硬體。不過,最上層對硬體而言幾乎是完全抽象的。每層都有自己的特殊功能。這些特殊功能通常隱含於其描述中。資料連結及實體層代表使用的實體網路 (如乙太網路)。

幾乎所有的硬體通訊協定都是採用封包導向模式。要傳輸的資料會收集在封包中 (無法一次全部傳送)。TCP/IP 封包的大小上限約為 64 KB。由於網路硬體可能有所限制,因此封包一般都很小。乙太網路上資料封包的最大上限約為 1500 個位元組。在乙太網路上傳送資料時,TCP/IP 封包的大小受限於此數量。如果傳送更多資料,則需要由作業系統傳送更多資料封包。

因為每層有自己指定的功能,關於每層的其他資訊必須儲存於資料封包中。這些資訊放在封包的「標頭」中。每層皆在產生的封包前端附加小的資料區塊,稱為通訊協定標頭。在乙太網路纜線上傳送的 TCP/IP 資料封包範例,可參閱在 圖形 20.2 「TCP/IP 乙太網路封包」 中的說明。proof sum 位於封包結尾,不在開頭處。這樣可幫助網路硬體簡化程序。

圖形 20.2. TCP/IP 乙太網路封包

TCP/IP 乙太網路封包

當應用程式在網路上傳送資料時,資料會經過每一層,除實體層外,全部在 Linux 核心執行。每層都負責準備資料使其能夠傳送到下一層。最底層最後要負責傳送資料。接收到資料時則反轉執行整個程序。就如同洋蔥的層級一般,在每層中,會從已傳輸的資料上移除通訊協定標頭。最後,傳輸層負責讓目的地端的應用程式可以使用資料。以這種方式,每層僅直接與上下兩層通訊。對於應用程式而言,無論資料是透過 100 MBit/s FDDI 網路或 56-Kbit/s 數據線進行傳輸,都沒有關係。同樣地,對於資料線而言,只要封包的格式正確,無論傳送的是哪種類型的資料也是無關的。

IP 位址與路由

在此節中的討論僅限於 IPv4 網路。如需有關 IPv6 通訊協定 (IPv4 的後繼者) 的資訊,請參閱第 20.2 節「IPv6—下一代的網際網路」

IP 位址

網際網路上的每台電腦都有唯一的 32 位元位址。這些 32 位元 (或 4 位元組) 一般所寫入的格式,如 範例 20.1 「寫入 IP 位址」 中的第二列所述。

範例 20.1. 寫入 IP 位址

IP Address (binary):  11000000 10101000 00000000 00010100
IP Address (decimal):      192.     168.       0.      20

採用十進位格式,四位元組以十進位數字系統撰寫,以句號分隔。IP 位址是指定給主機或網路介面。每個 IP 位址在全球範圍內只能使用一次。此規則有例外狀況,但下文中並未提及。

IP 位址中的點表示階層系統。直到 1990 年代,IP 位址仍嚴格地以類別加以分類。然而,事實證明此系統太過死板,因此已停止使用。現在,則是使用無類別路由 (classless routing),即 CIDR (無類別網域間路由,classless interdomain routing)。

網路遮罩與路由

網路遮罩是用來定義子網路的位址範圍。如果兩台主機位於相同的子網路遮罩內,他們可以直接連接。如果不在同一個子網路遮罩內,則需要閘道位址,由閘道處理子網路的所有流量。若要檢查兩個 IP 位址是否位於同一子網路,只要使用網路遮罩 AND 兩個位址。如果結果相同,兩個 IP 位址位於同一個網路。如果不同,遠端的 IP 位址,即為遠端介面,只能透過閘道來通訊。

若要瞭解網路遮罩如何作用,請參閱範例 20.2 「連結 IP 位址到網路遮罩」。網路遮罩由 32 位元組成,可辨認 IP 位址屬於哪個網路。這些位元為 1 標示 IP 位址中的對應位元,即表示為同屬一個網路。所有位元為 0 標示位元在子網路內。這表示愈多位元為 1,子網路就愈小。因為網路遮罩永遠由多個連續的 1 組成,也可以計算網路遮罩內的位元數。範例 20.2 「連結 IP 位址到網路遮罩」中,第一個 24 位元的網路也可寫成 192.168.0.0/24

範例 20.2. 連結 IP 位址到網路遮罩

IP address (192.168.0.20):  11000000 10101000 00000000 00010100
Netmask   (255.255.255.0):  11111111 11111111 11111111 00000000
---------------------------------------------------------------
Result of the link:         11000000 10101000 00000000 00000000
In the decimal system:           192.     168.       0.       0

IP address (213.95.15.200): 11010101 10111111 00001111 11001000
Netmask    (255.255.255.0): 11111111 11111111 11111111 00000000
---------------------------------------------------------------
Result of the link:         11010101 10111111 00001111 00000000
In the decimal system:           213.      95.      15.       0

舉另外一個例子:使用相同乙太網路纜線連接的所有機器,通常位於同一個子網路中,而且可以直接存取。即使以交換器或橋接器實際分配子網路時,仍然可以直接連接這些主機。

位於本地子網路外的 IP 位址只能在設定目標網路的閘道時,才能與本地通訊。在大部分的狀況下,只能有一個閘道來處理所有對外的通訊。但是,您也可以為不同的子網路,設定多個閘道。

如果已經設定閘道,所有的外部 IP 封包會傳送到適當的閘道。然後此閘道會試圖以同樣方式傳送封包--主機對主機—直到連結到目標主機或封包 TTL (持續時間) 過期。

表格 20.2. 特定位址

位址類型

描述

基本的網路位址

這是網路遮罩「及」網路中的任何位址,如 Result 下的範例 20.2 「連結 IP 位址到網路遮罩」 所顯示。此位址不能指定給任何主機。

廣播位址

基本來說,即為「存取此子網路的所有主機」。若要產生此位址,網路遮罩會以二進位格式反轉,連結到具有邏輯 OR 的基本網路位址。因此以上範例會得到 192.168.0.255。此位址無法指派給任何主機。

本地主機

位址 127.0.0.1 是指定到每個主機上的迴路設備(loopback device)。使用此位址以及完整迴路網路 127.0.0.0/8 中的所有位址 (使用 IPv4 定義),可以設定與您自己機器之間的連線。如果使用 IPv6,則只有一個迴路位址 (::1)。


因為 IP 位址在全世界必須是唯一的,您不能只選取隨機位址。如果要設立私人 IP 結構的網路,有三種位址網域可以使用。這些將無法從其他網際網路取得連結,因為他們無法透過網路傳送。這些位址網域在 RFC 1597 指定並列於 表格 20.3 「私人 IP 位址網域」 中。

表格 20.3. 私人 IP 位址網域

網路/網路遮罩

網域

10.0.0.0/255.0.0.0

10.x.x.x

172.16.0.0/255.240.0.0

172.16.x.x172.31.x.x

192.168.0.0/255.255.0.0

192.168.x.x