Next Previous Contents

8. Linux 對網路互連的支援

Linux 的網路功能包羅萬項。 一部 Linux 機器, 可以被建構成路由器 (router), 橋接器 (bridge), ..等等。 特將一些可選用的網路功能描述於下:

8.1 路由器 (Router)

Linux 的核心有內建的路由選擇 (routing) 功能。 一部 Linux 機器, 可以被建構成一台 IP 或 IPX 路由器 (router) 他的花費僅是商業路由器 (router) 的零頭而已。 最近發表的核心, 包含了一些特殊的功能選項, 都是用來設定路由器 (router) 的:

還有一些相關的計劃, 包括一個主要目標在, 只要使用一片軟碟就可以執行 Linux 路由器 (router) 的計劃: Linux router project

8.2 橋接器 (Bridge)

Linux 的核心有內建的乙太網路橋接器 (ethernet bridge) 支援, 他的作用就是讓連接過來, 不同乙太網區段 (Ethernet segments) 上面的各個節點, 使用起來感覺就像是, 在同一個乙太網路上。 多部橋接器 (Bridge) 放在一起, 再加上 IEEE802.1 標準的 spanning tree 演算法的使用, 可以建構一個更大的乙太網路。正如他是一個標準, Linux 橋接器 (bridge) 有了他之後, 可與其他第三協力廠商的橋接器 (bridge) 產品正常地互接。

還有的程式套件, 可以過濾 IP, IPX 或 MAC 位址。

相關的 How-tos 請參考:

8.3 IP-偽裝 (Masquerading) 功能

IP 偽裝在 Linux 上是一個發展中的網路功能。 如果一部 Linux 主機連接至 Internet , 而且其 IP 偽裝功能被開啟, 則連上他的其他電腦 (不論是在相同的 LAN 上, 或是透過數據機連上來的) 就算是他們沒有使用正式分配的 IP 位址, 都同樣可以通達 Internet。 他降低了上網的費用, 因為可以多人使用同一條數據機連線來上 Internet, 同時他也增加了安全性 (從某些方面來看, 他的功能像是一個防火牆 (firewall), 因為外界網路無法連接, 非正式分配的 IP 位址)。

IP 偽裝的相關網頁與文件:

8.4 IP-計帳 (Accounting) 功能

這也是個 Linux 核心的選用功能。他被使用在 IP 網路流量的追蹤, 封包的記錄, 以及產生一些統計的結果。 你可以定義一系列的規則, 以便當比對到某種樣式的封包時, 就增加計數器的數值。 例如, 這個封包是被接受/拒絕的..等等。

8.5 IP 別名(aliasing) 功能

這個 Linux 核心所提供的功能, 使得我們可以在同一個低階網路裝置的驅動程式下, 設定多重的網路位址 (例如, 在一片乙太網路卡裝置上, 設定二個 IP 位址)。 通常我們會依照, 伺服器程式所監看網路位址的不同, 而來區分不同的服務功能 (例如 "多重主機 (multihosting)" 或 "虛擬網域 (virtual domains)" 或 "虛擬主機服務 (virtual hosting services)" )。

相關的 How-to 請參考:

8.6 網路流量控制 (Traffic Shaping) 功能

網路流量控制功能, 是一種虛擬的網路服務, 他可以限制輸出到另一個網路裝置的資料流速率。 這個功能在某些場合 (像是 ISP) 特別有用, 他被拿來控制與執行, 限制每個使用者可以使用多少頻寬的策略。 另一個用途 (僅限於網頁服務) 就是某些 Apache 的模組, 可以拿來限制客戶端建立 IP 連線的個數, 或是頻寬的使用量。

8.7 防火牆 (Firewall) 功能

防火牆是一個將私有網路, 從公眾範圍 (整個網際網路) 保護與獨立出來的裝置。 他的設計使他能夠, 依據每個封包所含之來源位址, 目的位址, 埠, 以及封包形態等資訊, 來控制封包的流通與否。

Linux 上存在有不同類型的防火牆工具套件 (toolkits) , 同時核心也有內建的防火牆支援。 除了核心內建的支援外, 還有 TIS 和 SOCKS 二種防火牆工具套件。 這二種防火牆工具套件非常完整, 若能與其他工具合併使用, 則可阻斷/重導各類的網路流量與協定。 而且經由設定檔案或 GUI 程式, 可以實作出不同的網路流量控制策略。 相關資料請參考:

8.8 埠轉遞 (Port Forwarding) 功能

有互動交談能力網頁站台越來越多了, 他們使用 cgi-bins 或 Java applets 程式, 來存取資料庫或其他服務。 因為這類存取方式, 可能造成安全上的問題, 所以資料庫所在的機器, 不應該直接連上 Internet。

埠轉遞功能對這類存取問題, 提供了一個還算理想的解決方案。 透過防火牆, 進入到特定埠編號的 IP 封包, 可以被改寫, 然後轉遞到內部實際提供服務的伺服器上。 內部伺服器所回覆的封包也會被改寫, 使得他看起來是來自防火牆。

埠轉遞的相關資料可以在 這個地方 找到。

8.9 負載均衡 (Load Balancing) 功能

通常資料庫/網頁的存取, 在多個用戶端同時向一個伺服器提出服務要求時, 會有負載均衡的需求。 負載均衡的功能, 需要有多部相同的伺服器, 並將服務要求轉送到負載較輕的伺服器上去。 我們可以透過網路位址轉換 ( Network Address Translation, 簡稱 NAT ) 技術的子功能 IP 偽裝來達到這個目的。 網路管理者可以用一個邏輯的伺服器集合, 來共享同一個 IP 位址的做法, 取代過去僅使用單一伺服器, 提供網頁服務 - 或其他應用 - 的方式。 藉著使用負載均衡的演算方法, 將任何進來的連線要求, 轉向至特定的伺服器上去。 這個虛擬的伺服器, 會改寫進來與出去的封包, 所以用戶端對伺服器的存取是透通的, 他們會以為只有一台伺服器。

Linux IP-NAT 的相關資料可以在 這個地方 找到。

8.10 EQL (串列連線的負載均衡驅動程式)

EQL 已被整合到 Linux 的核心中。 如果你有二條串列連線接到其他電腦 ( 這通常需要二部數據機和二門電話線路 ) ,而且你在線路上面使用 SLIP 或 PPP ( 可以在電話線路上, 傳遞 Internet 流量的通訊協定 ), 此時使用 EQL 驅動程式就可以將二條串列連線, 看成一條二倍速的連線。 當然, 另外一端也必須支援這個功能才可以。

相關的 How-to 請參考:

8.11 代理伺服器 (Proxy Server)

proxy (代理) 這個詞彙的意義就是 "代替某些人做某些事"。在網路的用語中, 代理伺服器就是一部可以代替許多用戶端做事情的電腦。 HTTP proxy 就是一部專門接收別台機器 (機器 A) 所發出網頁要求的機器。 代理伺服器會取得這份網頁, 並將結果傳回機器 A。 代理伺服器可以將這份網頁, 存到快取記憶體 (cache) 中, 如果其他機器所要求的網頁, 在快取記憶體中正好有一份複本, 則只會將該複本傳回。 這使得網路頻寬資源能夠有效運用, 而且降低了網頁回覆的時間。 副作用就是, 用戶端機器無法直接連線到外面世界的網路, 而這個副作用卻成為內部網路保密的方法。 一個設定完善的代理伺服器, 就像是一部功能優良的防火牆。

在 Linux 上存在有數種代理伺服器。 一個普遍的解決方案就是 Apache 的 proxy 模組。另一個更完整與穩定的 HTTP proxy 工具程式就是 SQUID 。

相關的資料請參考:

8.12 隨選撥接 (Diald on demand) 功能

隨選撥接 (dial on demand) 功能, 使得電話撥接動作完全通透, 使用者只會看到有一條固定的網路線路, 被連接到遠端的站台。 通常, 他會有一個監控程式來監看封包的流量。當 "感興趣" 的封包 ( 所謂的 "感興趣" 通常是由一套 規則/優先權/權限 來定義) 一抵達, 他就會與遠端建立網路連線。而當通道閒置一段時間後, 就會停掉網路的連線。

相關的 How-to 請參考:

8.13 建立通訊協定隧道, 機動式電腦 IP 路由選擇協定 (Mobile-IP) 與虛擬私有網路(Virtual Private Networks, 簡稱 VPN)

Linux 核心允許我們建立通訊協定隧道 (也就是說將通訊協定封裝起來)。 他可以在 IP 網路連線上建立 IPX 隧道, 這使得二個 IPX 網路可以透過唯一的 IP 網路連線互接。他也可以建立 IP-IP 隧道, 基本上是使用在 "機動式電腦 IP 路由選擇協定" 的支援, 多目的傳播的支援, 以及業餘無線電網路。 (請參考網頁 http://sunsite.unc.edu/mdw/HOWTO/NET-3-HOWTO-6.html#ss6.13)

"機動式電腦 IP 路由選擇協定" 主要是針對 Internet 上機動式電腦的路由選擇作特別的設計, 使得我們在傳送 IP "資料片段" (datagrams) 到機動式電腦時, 完全通透而不受影響。 每個機動式電腦的識別方式, 都是以他的 "原始位址" (home address) 來做為標記, 而與他目前連接到 Internet 的那個節點無關。 當機動式電腦不在他原始的位址上時, 他會回傳一個 "中介位址" (care-of address), 經由 "中介位址" 便可以知道該機動式電腦, 目前連接到 Internet 的那個節點。 機動式電腦透過此協定向 "原始位址處理機構" (home agent) 註冊 "中介位址"。 而 "資料片段" 會透過 "原始位址處理機構" 的 IP-IP 隧道, 傳送至 "中介位址" 上去。 當資料抵達隧道的末端時, 每個 "資料片段" 會再傳遞至機動式電腦上去。

點對點隧道通訊協定 (Point-to-Point Tunneling Protocol, 簡稱 PPTP) 就是在 Internet 上使用保密的虛擬私有網路 (VPN) 的一種網路技術。 目前 Windows NT 伺服器, 已將 PPTP 與 "遠端存取服務" (RAS) 伺服器整合在一起。 透過 PPTP, 使用者可利用電話撥接至當地的 ISP, 或直接連上 Internet, 來取用自己公司的網路服務, 使用起來感覺就好像是, 坐在自己的辦公桌前一樣。 然而 PPTP 是一個封閉的通訊協定, 而且他的保密性最近也正遭受到質疑。 所以我還是強烈建議各位, 使用其他在 Linux 平臺上的解決方案, 因為 Linux 上的解決方案, 使用的是開放的標準, 並且都經過仔細的檢查與測試。

Mobile IP 相關文件: VPN 相關文件:


Next Previous Contents