Linux 作業系統網路能力概觀 <author> 作者: Daniel L鏕ez Ridruejo, <tt/ridruejo@esi.us.es/ 譯者: 蔣大偉, <tt/dawei@sinica.edu.tw/ <date> v0.2, 10 July 1998 翻譯日期: 1 Aug. - 14 Sep. 1998 修正日期: 5 Nov. 1998 <!-- Abstract --> <abstract> 本文主要在針對 Linux 作業系統的網路能力提出一個概觀的說明, 同時提供更進一步的資料與實作細節的指引。 </abstract> <!-- Table of Contents --> <toc> <!-- Begin the document --> <sect> 介紹 <p> 本文主要在針對 Linux 作業系統的網路能力提出一個概觀的說明。 雖說使用 Linux 的好處是, 似乎各種領域都有豐富的資料來源, 但是大多偏重在實作方面。 對大多數的 Linux 新手而言, 特別是那些從 Windows 環境過來的人, 似乎難以消化吸收, 因為他們連 Linux 有什麼網路能力都還不知道。本文主要是向各位展示, 簡述每項網路能力的可能性, 並且給予各位更進一步的資料指引。 這些資料的收集來自許多方面: how-tos, faqs, 各計劃的網頁, 以及我個人的經驗。 我要將完成本文的功勞全部歸予以上的作者。沒有他們以及他們所撰寫的文件, 就沒有本文存在的可能或需要。 <sect>Linux 作業系統 <p> <sect1> Linux 是什麼? <p> Linux 主要的作者是 Linus Torvalds。自從其原作的版本發表以來, 迄今 Linux 已經被不計其數的人改良過。 他是個 UNIX 作業系統的複製品 (clone), 完全是東拼西湊寫成的。 Linux 最令人感到興趣的事情, 就是他的開發在世界各地同時進行著。 <p> Linux 的版權受到 GNU 一般授權許可 (GPL) 文件的保護。 這份文件是由開放軟體基金會 (FSF) 所提出, 主要是用來防止有心人士阻礙軟體的散佈。 簡而言之, 就是說雖然軟體的拷貝 (copy) 可以酌收費用, 但是收到這份拷貝的人, 不能阻礙該軟體的開放。這也意味著該軟體的原始程式碼也必須開放。 這樣做對設計程式的人而言是有益的。任何人可以來修改 Linux 甚至可以散佈他/她所做的修改, 而且允許他們將修改的程式碼放在相同的版權聲明之下。 <sect1> 是什麼讓 Linux 與眾不同的呢? <p> 為什麼要使用 Linux? Linux 一般而言比其他的作業系統便宜 (起碼不會太貴) 而且也較許多的商業系統少出現問題。那到底是什麼讓 Linux 與眾不同的呢? 當然不只是因為他的價格 (畢竟, 不會有任何人會想要用一個不夠好的作業系統, 就算他是免錢的) 而關鍵是在他傲人的能力。 <p> <itemize> <item>Linux 是個真正 32-位元的多工作業系統, 他的穩固性與能力足以應用在大學甚至大型公司。 <item>他可以在低階的 386 平臺上運作, 甚至研究中心巨大的超級平行運算 (ultra-parallel) 機器也有他的蹤跡。 <item>他已經超乎平臺的境界之外 Intel/Sparc/Alpha 等架構都有可用的版本, 而且實驗性的版本可支援到 Power PC 以及內嵌 (embedded) 在其他的作業系統中 (SGI, Ultra Sparc, AP1000+, Strong ARM, MIPS R3000/R4000...) <item>最後, 當說到網路能力的時候, Linux 就是個不錯的選擇。 不僅是因為網路與作業系統被緊密地整合在一起, 同時有太多的應用程式可以自由取得, 但是沉重負荷下系統的穩固性, 只能在開放軟體計劃下經過多年的除錯與測試, 方能達成。 </itemize> <sect>網路通訊協定 <p> Linux 支援許多不同的網路通訊協定: <sect1>TCP/IP 通訊協定堆疊 <p> 網際網路通訊協定在二十年前原是美國國防部 (DoD) 發展出來的, 目的只是用在不同廠牌電腦之間的互連。TCP/IP 通訊協定堆疊, 採用階層式的結構, 以便將應用程式與網路硬體隔離開來。 <p> 雖然他的設計理念是基於階層式的模型, 但是他的重點放在提供互連性, 而不只是死板地遵循層級功能。 這就是為什麼 TCP/IP 通訊協定堆疊, 會成為一個網路互連通訊協定的非官方 (de facto) 標準, 而與 OSI 國際標準相抗衡。 <p> Linux 從一開始就已經提供 TCP/IP 的網路能力。 雖說是東拼西湊寫成的, 但是卻是一個穩固, 快速, 和可靠的軟體實作, 同時也是 Linux 成功的關鍵因素之一。 <p> 相關的 How-to 請參考: <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/NET-3-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/NET-3-HOWTO.html"> <sect1> TCP/IP 通訊協定第 6 版本 <p> IPv6, 有時也被寫成 IPng (下一代網際網路通訊協定) 是 IPv4 通訊協定的升級版本, 用來解決定址上的許多問題。 這些問題包括: 可用的 IP 位址不足, 缺乏處理即時性資料流的機制, 缺乏網路層級的安全控制, ..等等。 <p> 其實擴充定址法之後, 就能增加 IP 定址的空間 (譯註: IPv6 的位址長度是 IPv4 的四倍), 同時對路由選擇的效率而言有著極大的影響。 (譯註: IPv4 採用的是分級式定址法, 依網路的大小規模分級成 class A, B, C 沒有彈性, 造成路由表的爆增; 而 IPv6 採用的是分類式定址法, 僅區分使用類型的範圍, 其餘依實際需要以 CIDR 方式分配, 讓位址空間得到更有效率的分配, 並能減緩路由表的成長。) Linux 已經有 beta 版本的 IPv6 實作, 至於正式的版本可能要等到 2.2.0 版本的 Linux 核心發表。 <itemize> <item>Linux IPv6 How-to 請參考: <htmlurl url="http://www.terra.net/ipv6/linux-ipv6.faq.htm" name="http://www.terra.net/ipv6/linux-ipv6.faq.htm" > <item>IPv6 網頁起點請參考: <htmlurl url="http://playground.sun.com/pub/ipng/html/ipng-main.html" name="http://playground.sun.com/pub/ipng/html/ipng-main.html"> </itemize> <sect1>IPX/SPX 通訊協定 <p> IPX/SPX (網際網路封包交換/循序封包交換) 是由 Novell 公司以"全錄 (Xerox) 網路系統"(XNS)通訊協定為藍本, 發展出來的專屬通訊協定。 IPX/SPX 通訊協定在 1980 年代初期很有名, 成為 Novell 公司 NetWare 產品的代名詞。 NetWare 成為第一代區域網路, 網路作業系統 (NOS) 的非官方標準。 Novell 公司同時也為他們的網路作業系統, 加上商業應用程式套件與用戶端網路連接工具。 <p> Linux 對 IPX/SPX 通訊協定有非常完整的實作, 使得他能夠被設定成: <itemize> <item> IPX 路由器 (router) <item> IPX 橋接器 (bridge) <item> NCP 用戶端 且/或 NCP 伺服器端 (檔案共享) <item> Novell 列印用戶端, Novell 列印伺服器端 </itemize> 以及去: <itemize> <item> 開啟 PPP/IPX 通訊協定, 讓 Linux 成為一個 PPP 的伺服器端/用戶端 <item> 藉由 IP 隧道 (tunnel) , 讓二個跑 IPX 通訊協定的網路, 能夠透過唯一的 IP 路徑連通。 </itemize> <p> 另外, <url url="http://www.caldera.com" name="Caldera"> 公司對在 Linux 之下跑 Novell Netware 網路作業系統的人有商業性質的支援。Caldera 從 Novell 公司取得技術授權許可, 可以提供大家全功能的 Novell NetWare 用戶端程式。 這個用戶端程程式能夠完全地存取 Novell 3.x 和 4.x 的檔案伺服器, 並且還包含了 "NetWare 目錄服務" (NDS) 以及 RSA 加密等特性。 <p> <itemize> <item>IPX How-to 請參考: <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/IPX-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/IPX-HOWTO.html"> </itemize> <sect1> AppleTalk 通訊協定堆疊 <p> Appletalk 就是"蘋果牌電腦"網路互連通訊協定群的代名詞。 他採用端點-對-端點, 對等式的網路模型, 並提供基本的網路功能, 例如檔案及印表機的共享。 每部機器可以同時成為用戶端與伺服器端, 但是每部"蘋果牌電腦"都得裝上必需的軟硬體才行。 <p> Linux 提供有全功能的 Appletalk 網路功能。 Netatalk 就是一個核心層次的 AppleTalk 通訊協定堆疊實作, 基本上他是由 BSD 版本衍生出來的系統。 他能支援 AppleTalk 的路由選擇, 透過 AFP (AppleShare) 提供 Unix 和 AFS 檔案系統的服務, 提供 Unix 印表機服務, 以及透過"印表機存取協定" (PAP)存取 AppleTalk 印表機。 <p> 請參考 5.1 節有更進一步的資料指引。 <sect1> 廣域網路 (WAN) 通訊協定 : X.25, Frame-relay, .. 等等 <p> 許多第三協力廠商提供 Linux 使用之 T-1, T-3, X.25 以及 Frame Relay 等產品。 一般而言, 這類的連線需要特別的硬體。廠商除了提供硬體之外, 也會提供通訊協定驅動程式的支援。 <p> <itemize> <item>Linux 的廣域網路 (WAN) 資源請參考網頁: <htmlurl url="http://www.secretagent.com/networking/wan.html" name="http://www.secretagent.com/networking/wan.html"> </itemize> <sect1>ISDN 通訊協定 <p> Linux 的核心有內建的 ISDN 能力。 核心模組 Isdn4linux 可以控制 ISDN PC 卡, 並且可以將之模擬成使用 Hayes 命令集 ("AT" 命令) 的數據機。 他可能被應用的範圍, 從簡單地使用終端機程式, 透過 HDLC 通訊協定 (內附於裝置中) 來連線; 到以 PPP 通訊協定, 對 Internet 作全功能網路連線, 來使用聲音的應用。 <p> <itemize> <item>isdn4linux 的常問問題與解答 (FAQ) 可參考網頁: <htmlurl url="http://tsikora.tiac.net/i4l-faq/eng-i4l-faq.html" name="http://tsikora.tiac.net/i4l-faq/eng-i4l-faq.html"> </itemize> <sect1>PPP, SLIP, PLIP 等通訊協定 <p> Linux 的核心有內建的 PPP (端點-對-端點-通訊協定), SLIP (串列線路使用 IP), 以及 PLIP (並列線路使用 IP) 等通訊協定支援。 PPP 通訊協定是一般個人使用者, 接取其 ISP (Internet 服務提供商) 最常用的方法。 PLIP 通訊協定則是二部機器時便宜的連線方法, 使用並列埠和一個特製的纜線, 連線速度可達 10kBps 到 20kBps。 <p> 相關資料請參考: <itemize> <item><url name="Linux PPP How-to" url="http://sunsite.unc.edu/mdw/HOWTO/PPP-HOWTO.html"> <item><url name="PPP/SLIP emulator" url="http://sunsite.unc.edu/mdw/HOWTO/mini/SLIP-PPP-Emulator.html"> <item>PLIP 的資料可以參考 <url name="The Network Administrator Guide" url="http://sunsite.unc.edu/mdw/LDP/nag/nag.html"> 。 </itemize> <sect1> 業餘無線電通訊協定 <p> Linux 的核心有內建的業餘無線電通訊協定支援。 <p> 尤其令人感興趣的是他支援 AX.25 。AX.25 通訊協定提供連接導向與非連接導向二種操作模式, 使用時不是以自己的方式, 作端點-端點的連線; 就是載送其他通訊協定, 如 TCP/IP 和 NetRom。 <p> 結構上他與等級 2 的 X.25 通訊協定類似, 但是做了些許的擴充, 使得他更適合應用在業餘無線電的通訊環境。 <P> 相關資料請參考: <itemize> <item> <url name="Amateur radio how-to" url="http://sunsite.unc.edu/mdw/HOWTO/HAM-HOWTO.html"> </itemize> <sect1>ATM 通訊協定 <p> Linux 對 ATM 通訊協定的支援, 目前只到 pre-alpha 版本的階段。 目前有一個實驗性的實作被發表出來, 他支援純 ATM 連線 (PVCs 和 SVCs), ATM 網路上跑 IP 通訊協定 (IP over ATM), ATM 網路模擬區域網路 (LAN emulation) , ..等等功能。 <p> <itemize> <item>想知道如何在 LINUX 上使用 ATM, 請參考網頁 <url name="ATM-Linux home page" url="http://lrcwww.epfl.ch/linux-atm/"> </itemize> <sect>網路硬體的支援 <p> Linux 支援各式各樣的網路硬體, 甚至於過時的硬體也包含在內。 <p> 相關的文件請參考: <itemize> <item><url name="Hardware How-To" url="http://sunsite.unc.edu/mdw/HOWTO/Hardware-HOWTO.html"> <item><url url="http://sunsite.unc.edu/mdw/HOWTO/Ethernet-HOWTO.html" name="Ethernet How-To"> </itemize> <sect>檔案與列印的共享 <p>許多 PC 為主的區域網路, 其主要用途是提供使用者檔案與列印的共享。 Linux 可以同時作為檔案與列印的伺服器, 於是成為一個重要的解決方案。 <sect1>Apple 的環境 <p>正如前面章節的描述, Linux 支援 Appletalk 一系列的通訊協定。 Linux 的 netatalk 使得 Macintosh 機器的用戶端, 將 Linux 系統視為網路上的另一台 Macintosh, 然後連上 Linux 伺服器, 分享其檔案系統, 與使用其印表機。 <p> Netatalk 的 faq 與 how-to 請參考: <itemize> <item><htmlurl url="http://thehamptons.com/anders/netatalk/" name="http://thehamptons.com/anders/netatalk/"> <item><htmlurl url="http://www.umich.edu/~rsug/netatalk/" name="http://www.umich.edu/~rsug/netatalk/"> <item><htmlurl url="http://www.umich.edu/~rsug/netatalk/faq.html" name="http://www.umich.edu/~rsug/netatalk/faq.html"> </itemize> <sect1>Windows 的環境 <p> Samba 是一組應用程式套件, 讓大多數的 Unix (特別是 Linux) 系統, 能夠整合到 Microsoft 的網路裡, 成為客戶端與伺服器端。 當作伺服器時, 他讓 Windows 95, Windows for Workgroups, DOS, 以及 Windows NT 等用戶端, 能夠取用 Linux 的檔案系統與列印等服務。 他可以完全取代 Windows NT 在檔案系統與列印方面的服務, 這還包括了, 將印表機驅動程式自動下載至用戶端。 當作用戶端時, 他讓 Linux 工作站可以將共享出來的 windows 檔案系統, 安置 (mount) 成本地的檔案系統。 <p> 根據 SAMBA Meta-FAQ 上說:<p> <tscreen> <verb> "許多使用者將之和其他的 SMB 產品作評比, 結果發現還是 Samba 較穩定, 較快, 以及與更多的用戶端相容。 一些大量安裝使用 SMB 通訊協定的管理者說 Samba 是唯一在使用者數量擴充到數萬人之後, 繼續存活而不會垮掉的 SMB 伺服器。" </verb> </tscreen> 請參考: <itemize> <item><url name="Samba project home page" url="http://samba.anu.edu.au/samba/"> <item><url name="Samba How-to" url="http://sunsite.unc.edu/mdw/HOWTO/SMB-HOWTO.html"> <item><url name="Printing How-to" url="http://sunsite.unc.edu/mdw/HOWTO/Printing-HOWTO.html"> </itemize> <sect1>Novell 的環境 <p> 正如前面章節的描述, Linux 可以被建構成 NCP 的用戶端或伺服器端, 因此 Novell 與 Unix 二類的用戶端, 可以透過 Novell 網路, 使用檔案以及列印等服務。 <P> 請參考: <itemize> <item><url name="IPX How-to" url="http://sunsite.unc.edu/mdw/HOWTO/IPX-HOWTO.html"> </itemize> <sect1>UNIX 的環境 <p> 在 UNIX 的網路環境裡, 建議使用 NFS 的方法來共享檔案。 NFS 就是"網路檔案共享"(Network File Sharing)的簡寫, 他是一個通訊協定, 最初由 Sun Microsystems 公司發展出來的。 他是一個多部機器之間共享檔案的方法, 所共享檔案就好像放在機器本身的系統上一樣。 用戶端會將伺服器端 "分享出來 (exported)" 的檔案系統 "安置 (mounts)" 在自己的檔案系統下。 所安置的檔案系統在用戶端機器上看起來, 就好像是機器本身的檔案系統一樣。 <p> 因為可能會有在開機的時候, 透過 NFS 來安置 root 檔案系統這方面的需求, 所以允許無磁碟用戶端在開機的時候, 到伺服器端取用所有必需的檔案。 更明白的說, NFS 不排除, 會有一個沒有硬碟的全功能電腦來要求服務的可能性。 NFS 相關的文件請參考網頁: <itemize> <item> <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/NFS-Root.html" name="http://sunsite.unc.edu/mdw/HOWTO/mini/NFS-Root.html" > <item> <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/Diskless.html" name="http://sunsite.unc.edu/mdw/HOWTO/mini/Diskless.html"> <item> <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/NFS-Root-Client.html" name="http://sunsite.unc.edu/mdw/HOWTO/mini/NFS-Root-Client.html"> <item> <htmlurl url="http://www.redhat.com/support/docs/rhl/NFS-Tips/NFS-Tips.html" name="http://www.redhat.com/support/docs/rhl/NFS-Tips/NFS-Tips.html"> <item> <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/NFS-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/NFS-HOWTO.html"> </itemize> <sect>Linux 對 Internet/Intranet 所提供的服務 <p> Linux 是 Internet/Intranet (網際網路/公司內部網路) 上一個重要的伺服器平臺。 Intranet 這個名詞指的是, 將 Internet 的技術應用在組織內部, 主要的目的是散佈和整合公司內部的資訊。 透過 Linux 可以對 Internet 與 Intranet 提供的服務包括有: 電子郵件, 網路新聞, 全球資訊網 (WWW) 等, 以及其他更多的服務項目, 這些都會在下面大略做個說明。 <sect1> 電子郵件服務 <p> <sect2> 電子郵件伺服器 <p> Sendmail 是 UNIX 平臺上, 電子郵件伺服程式的非官方 (de facto) 標準。 他具有穩定與可擴充的特性, 經過適當的設定再配合必要的硬體, 他能夠承受上千個使用者的負荷, 而不會有任何閃失。 還有其他的電子郵件伺服器 (也就是 MTA ,即電子郵件傳遞代理程式), 例如, smail 和 qmail 就是被設計來取代 sendmail 的。 <p> 相關資料請參考: <itemize> <item><url name="Sendmail web site" url="http://www.sendmail.org/"> <item><url name="Smail faq" url="http://www.sbay.org/smail-faq.html"> <item><url name="Qmail web site" url="http://www.qmail.org"> </itemize> 電子郵件的 how-tos 請參考: <itemize> <item> <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/Mail-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/Mail-HOWTO.html"> <item> <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/Qmail+MH.html" name="http://sunsite.unc.edu/mdw/HOWTO/mini/Qmail+MH.html"> <item> <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/Sendmail+UUCP.html" name="http://sunsite.unc.edu/mdw/HOWTO/mini/Sendmail+UUCP.html"> <item> <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/Mail-Queue.html" name="http://sunsite.unc.edu/mdw/HOWTO/mini/Mail-Queue.html"> </itemize> <sect2>遠端讀取電子郵件 <p>在一個組織或 ISP 中, 使用者多半會利用他們桌上的電腦, 以遠端的方式讀取他們的信件。 Linux 上存在有多樣的選擇性, 例如 POP (也就是 Post Office Protocol 即郵局通訊協定) 和 IMAP (也就是 Internet Message Access Protocol 即網際網路信件讀取通訊協定) 等伺服器。 POP 通訊協定通常被用來, 將伺服器端的信件傳遞到用戶端上。 IMAP 允許使用者在遠端處理伺服器上的信件,例如在伺服器上產生及刪除收信夾, 多人同時讀取共用的收信夾, ..等等。 <p> 相關資料請參考: <itemize> <item><url name="Brief comparison IMAP and POP" url="http://www.imap.org/imap.vs.pop.brief.html"> </itemize> 與電子郵件相關的 how-tos 請參考: <itemize> <item> <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/Mail-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/Mail-HOWTO.html"> <item> <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/Cyrus-IMAP.html" name="http://sunsite.unc.edu/mdw/HOWTO/mini/Cyrus-IMAP.html"> </itemize> <sect2>電子郵件使用者代理程式 (MUA) <p> Linux 上有一些圖形及文字模式的 MUA (電子郵件使用者代理程式), 最常被使用到的有: pine, elm, mutt 和 Netscape。 <p> 相關資料請參考網頁: <itemize> <item><url name="List of mail related software" url="http://www.linuxlinks.com/Software/Internet/Mail/"> <item><htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/TkRat.html" name="http://sunsite.unc.edu/mdw/HOWTO/mini/TkRat.html"> </itemize> <sect2>通信論壇 (Mailing list) 程式 <p> 一般在 UNIX 上特別是 Linux , 有許多的通信論壇管理程式 (Mail List Management, 簡稱 NLM)。 <p> 相關資料請參考: <itemize> <item>現存各 MLMs 之間的比較結果可參考網頁:<htmlurl url="ftp://ftp.uu.net/usenet/news.answers/mail/list-admin/" name="ftp://ftp.uu.net/usenet/news.answers/mail/list-admin/"> <item> <url name="Listserv" url="http://www.lsoft.com/"> <item> <url name="Majordomo home page" url="http://www.greatcircle.com/majordomo/"> </itemize> <sect2>Fetch-mail 程式 <p> Fetchmail 程式是一個和電子郵件相關的好用工具。 Fetchmail 程式是一個免費, 功能齊全, 具穩定性, 文件說明齊備, 主要被應用在臨時接通的 TCP/IP 線路 (例如 SLIP 或 PPP 連線)上, 用來讀取遠端信件及轉遞信件的工具。 他支援目前在 Internet 上使用的每一種遠端信件讀取通訊協定。 他甚至可以支援 IPv6 和 IPSEC (即 IP 安全協定) 等規格。 <p> Fetchmail 程式可以從遠端的電子郵件伺服器讀取信件, 也可以透過 SMTP 通訊協定轉遞信件, 因此透過他所寄出的信件, 可以被一般的電子郵件使用者代裡程式, 例如 mutt, elm 或 BSD Mail 來讀取。 有了他之後, MTA 的過濾, 轉遞, 別名的運作, 就如同處理一般信件一樣容易。 <p> Fetchmail 程式可以被用來作為整個 DNS 網域中, POP/IMAP 通訊協定-轉換至-SMTP 通訊協定的閘道 (gateway), 他從 ISP 所提供的單一電子郵件信箱取得郵件, 接著根據信件標頭 (header) 上的地址以 SMTP 通訊協定轉遞信件。 <p> 一般小公司可以將公司所有的信件集中地方在單一個信箱中, 使用 fetchmail 程式來收集所有要寄出去的信件, 將他們一起遞送至網際網路上, 同時讀取所有寄進到信箱的信件。 <p> 相關資料請參考網頁: <itemize> <item><url name="Fetch-mail home page" url="http://sagan.earthspace.net/~esr/fetchmail/"> </itemize> <sect1>網頁(Web) 伺服器 <p> 市面上所發行的 Linux 版本大多包括 Apache 伺服器 (http://www.apache.org)。 Apache 是網際網路上 (http://www.netcraft.co.uk/survey/) 第一品牌的網頁伺服器, 在網際網路上超過一半以上的站台使用 Apache 伺服器, 或由其衍生出來的產品。 Apache 伺服器的優點包括有, 模組化設計, 穩定, 以及速度。 使用適當的硬體與設定, 他可以支援到最高的負荷: Yahoo, Altavista, GeoCities, Hotmail 等站台就是採用 Apache 伺服器的客戶指定規格, 製作出來的版本。 <p> 附加 SSL (開啟安全交易) 功能的相關資料可以在下面網頁找到: <itemize> <item><htmlurl url="http://www.apache-ssl.org/" name="http://www.apache-ssl.org/"> <item><htmlurl url="http://raven.covalent.net/" name="http://raven.covalent.net/"> <item><htmlurl url="http://www.c2.net/" name="http://www.c2.net/"> </itemize> 相關的 How-tos 請參考網頁: <itemize> <item><htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/WWW-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/WWW-HOWTO.html"> <item><htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/Virtual-Services-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/Virtual-Services-HOWTO.html"> <item><htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/Intranet-Server-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/Intranet-Server-HOWTO.html"> <item><url name="Web servers for Linux" url="http://www.linuxlinks.com/Software/Internet/WebServers/"> </itemize> <sect1>網頁(Web) 瀏覽程式 <p> 目前 Linux 平臺上, 存在有數種網頁瀏覽程式。 網景公司的"導航者" (Netscape Navigator) 網頁瀏覽程式,是最基本的選擇了, 而即將發表的"摩斯拉" (Mozilla) 網頁瀏覽程式 (http://www.mozilla.org) 也會有 Linux 的版本。 另一個常用的文字模式的網頁瀏覽程式就是 lynx。 當你沒有圖形的環境可用時 lynx 使用起來快速且上手。 <p> 相關資料請參考: <itemize> <item><url name="Browser software for Linux" url="http://www.linuxlinks.com/Software/Internet/WebBrowsers/"> <item><htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/Public-Web-Browser.html" name="http://sunsite.unc.edu/mdw/HOWTO/mini/Public-Web-Browser.html"> </itemize> <sect1>FTP 伺服器與用戶端程式 <p> FTP 就是"檔案傳輸協定"(File Transfer Protocol)的簡寫。 FTP 伺服器允許用戶端, 連線與取回(下載)檔案的要求。 目前 Linux 上存在有多種 FTP 伺服器與用戶端程式, 他們通常會放在大部分的 Linux 發行版本中。 有文字模式的用戶端程式, 也有 GUI 模式的。 Linux 上使用的FTP 相關軟體 (伺服器與用戶端程式) 可以在下面網頁找到: <htmlurl url="http://sunsite.unc.edu/pub/Linux/system/network/file-transfer/" name="http://sunsite.unc.edu/pub/Linux/system/network/file-transfer/"> <sect1>網路新聞 (News) 服務 <p> Usenet (就是所謂的網路新聞) 是一個大的告示板系統, 他上面包含有各種的討論話題, 而他採用的是階層式的架構。網路上的電腦經由網際網路 (即指 Usenet) 以 NNTP 通訊協定來互換文章。Linux 上有多個被實作出來的軟體。 有給負荷極重的站台使用的, 也有給只接收一些新聞群 (newsgroups) 的小站台使用的。 相關資料請參考: <itemize> <item><url name="INN home page" url="http://www.isc.org/"> <item><url name="Linux news related software" url="http://www.linuxlinks.com/Software/Internet/News/"> </itemize> <sect1>網域名稱系統 (DNS) 服務 <p> DNS 伺服器的功能, 就是將網域名稱(給人看的)轉換成 IP 位址。 單獨一台 DNS 伺服器, 並不會知道世界上所有的 IP 位址; 可是他可以向其他伺服器, 詢問自己所不知道的位址。DNS 伺服器不是將所詢問的 IP 位址回應給使用者, 就是回報所詢問的名稱在資料表中找不到。 <p> 在 UNIX (以及 Internet 中為數眾多的機器) 上, 網域名稱查詢服務是由一個名為 named 的程式來完成的。他是網際網路軟體聯盟 (Internet Software Consortium) 所提供 bind 套裝程式的一部分。 相關資料請參考: <itemize> <item> <url name="BIND" url="http://www.isc.org/"> <item><url name="DNS How-to" url="http://sunsite.unc.edu/mdw/HOWTO/DNS-HOWTO.html"> </itemize> <sect1>DHCP, bootp 通訊協定 <p> DHCP 與 bootp 通訊協定, 允許用戶端向伺服器索取網路資訊 (例如他們自己的 IP 位址)。 有許多組織都開始來使用他, 因為他使得網路管理變的容易多了, 特別是在大型網路中, 或是網路上有很多機動的使用者。 <p> 相關文件請參考: <itemize> <item><url url="http://sunsite.unc.edu/mdw/HOWTO/mini/DHCP.html" name="DHCP How-to"> </itemize> <sect1>網路資訊服務 (NIS) <p> 網路資訊服務 (NIS) 提供, 一個簡易的網路查詢服務, 他是由資料庫與處理程序所構成。 他的目的就是在提供資訊, 整個網路上所有必需知道的資訊, 給網路上所有的機器。 他使得一個使用者, 能夠簽入網路上任何一台執行 NIS 的機器, 而不需要管理者為使用者, 在每台機器上加上密碼, 只需加入到主資料庫即可。 <p> 相關的 How-tos 請參考: <itemize> <item><url url="http://sunsite.unc.edu/mdw/HOWTO/NIS-HOWTO.html" name="NIS How-to"> </itemize> <sect1>認證服務 <p> 在 Linux/window NT 混用的網路中, 有各種認證使用者的方法: 請參考 <htmlurl url="http://www.mindware.com.au/ftp/smb-NT-verify.1.1.tar.gz" name="http://www.mindware.com.au/ftp/smb-NT-verify.1.1.tar.gz">。 另外 PAM (可嵌入認證模組) 是一個具彈性的 UNIX 認證方法: 請參考 <url url="http://www.kernel.org/pub/linux/libs/pam/index.html" name="PAM library">。 最後也請參考, <url url="http://www.umich.edu/~dirsvcs/ldap/index.html" name="LDAP in Linux">。 <sect>遠端執行應用程式服務 <p> UNIX 最驚人的特性之一 (迄今還是新手最不知道的事情之一) 就是他支援以遠端和分散的方式, 來執行應用程式。 <sect1>Telnet 的方式 <p> Telnet 是一個程式, 他讓人們使用遠端的電腦, 就好像是實際在該電腦面前一樣。 Telnet 是 UNIX 上最強大的工具之一, 他使得真正的遠端管理機器成為可能。 在使用者的觀點中, 他也是個有趣的程式, 因為他讓使用者能夠在 Internet 的任何地方, 以遠端的方式取用其檔案及程式。 將他與 X 伺服器合用, 不論是坐在控制操作台 (console) 前面, 或是地球的另一邊, 感覺上並沒有不同 (除了時間的延遲外)。 Telnet 伺服器監控程式 (daemons) 和用戶端程式, 在大部 Linux 的發行版本中都可以找到。 <p> 想在遠端操作介面 (remote shell) 的連線期間 (sessions) 將所有內容加密, 可以透過 SSH (http://www.cs.hut.fi/ssh/) 的方式, 他讓安全的遠端管理工作成為可能。 <p> 相關資料請參考: <itemize> <item><url name="Telnet related software" url="http://sunsite.unc.edu/pub/Linux/system/network/telnet/"> </itemize> <sect1>遠端下命令的方式 <p> 在 Unix 中 , 特別是在 Linux 上, 遠端命令方式的出現, 讓我們能夠透過操作"介面" (shell) 與遠端的電腦溝通。例如: rlogin, 讓我們能夠以 telnet 類似的方法, 簽入遠端機器; rcp, 讓我們能夠與遠端機器之間, 做遠端的檔案傳輸, ..等等。 最後順便一提, 透過"遠端操作介面" (remote shell) 下命令的程式 rsh, 讓我們不必實際地簽入遠端機器, 就能在該機器上執行命令。 <sect1>X-視窗的方式 <p> X 視窗系統於 1980 年代末期在 MIT 被發展出來, 他很快地成為 UNIX 圖形工作站的工業標準。 這個軟體可以免費取得, 他極具通用性, 而且適合執行的硬體平臺範圍廣泛。 任何 X 視窗系統, 由二個不同的部分組成 -- X 伺服器與 1 或多個 X 用戶端。 暸解伺服器與用戶端間不同之處在那裡, 是件重要的事情。 伺服器直接控制螢幕的顯示, 並且監控所有的輸出入裝置例如鍵盤, 滑鼠, 或螢幕。 用戶端, 則正好相反, 無法直接取用螢幕 - 他要透過伺服器, 纔能來操作所有的輸出入動作。 用戶端就是"真正"執行運算工作的地方 - 執行應用程式或是其他工作。 每當用戶端與伺服器連線時, 伺服器就會開啟一或多個視窗, 以便為該用戶端, 操作輸出入動作。 <p> 簡而言之, X 視窗系統讓使用者能夠簽入遠端機器, 執行行程 (process) (例如開啟一個網頁瀏覽程式), 並將其輸出結果顯示在自己的機器上。 因為行程 (process) 實際是在用戶端上執行, 伺服器端僅需要非常少量 CPU 計算能力。 因此想要設計一部, 主要功能純粹作為 X 視窗伺服器使用的, 電腦是可行的, 而他就是所謂的 X-終端機。 Linux 上存在有免費的 X 視窗系統移植程式套件, 你可以在: <url name="Xfree" url="http://www.xfree86.org/"> 上找到。 該程式套件通常會附在大多數 Linux 的發行版本中。 <p> 相關的 How-tos 請參考: <itemize> <item><url url="http://sunsite.unc.edu/mdw/HOWTO/mini/Remote-X-Apps.html" name="Remote X Apps How-to"> </itemize> <sect1>虛擬網路計算作業 (VNC) 的方式 <p> 虛擬網路計算作業 (Virtual Network Computing, 簡稱 VNC)。 他基本上是一個遠端顯示系統, 讓我們不僅在執行程式的機器上, 能看到計算作業的桌面環境, 而且在 Internet 的任何地方, 即使使用各種不同的機器架構, 也都能看的到。 Linux 以及許多其他的作業平臺, 都存在有用戶端與伺服器的程式。 你可能會在 Windows NT 或 95 的機器上執行 MS-Word 程式, 而將輸出結果顯示在 Linux 機器上。 反之亦然, 你可能會在 Linux 機器上執行應用程式, 而將輸出結果顯示在別部 Linux 或 Windows 機器上。 你若有一個 Java 的用戶端, 你也可以在網頁瀏覽程式中, 執行遠端顯示的計算作業。 最後順便一提, 你若使用一個移植到 Linux 的 SVGAlib 圖形程式庫, 便可以讓 386 的機器只要有 4 Mb 的少數記憶體, 就能夠變成全功能的 X-終端機。 <p> 相關資料請參考: <itemize> <item><url name="VNC web site" url="http://www.orl.co.uk/vnc"> </itemize> <sect> Linux 對網路互連的支援 <p> Linux 的網路功能包羅萬項。 一部 Linux 機器, 可以被建構成路由器 (router), 橋接器 (bridge), ..等等。 特將一些可選用的網路功能描述於下: <sect1>路由器 (Router) <p> Linux 的核心有內建的路由選擇 (routing) 功能。 一部 Linux 機器, 可以被建構成一台 IP 或 IPX 路由器 (router) 他的花費僅是商業路由器 (router) 的零頭而已。 最近發表的核心, 包含了一些特殊的功能選項, 都是用來設定路由器 (router) 的: <itemize> <item>多目的傳播 (Multicasting): 可讓 Linux 機器成為一個, 將 IP 封包傳播到多個目的位址的路由器 (router)。 使用 MBONE 時, 就需要這種路由器 (router), MBONE 是 Internet 上, 一種需要高頻寬的網路, 他能夠載送聲音和影像的廣播信號。 <item>策略性 IP 路由選擇 (IP policy routing): 一般路由器 (router) 處理所收到的封包時, 僅以封包的最終目的位址為路由選擇的依據, 但是路由的選擇, 也可以將來源位址與封包所抵達的網路介面, 一起納入考慮。 </itemize> 還有一些相關的計劃, 包括一個主要目標在, 只要使用一片軟碟就可以執行 Linux 路由器 (router) 的計劃: <url name="Linux router project" url="http://www.psychosis.com/linux-router/"> <sect1>橋接器 (Bridge) <p> Linux 的核心有內建的乙太網路橋接器 (ethernet bridge) 支援, 他的作用就是讓連接過來, 不同乙太網區段 (Ethernet segments) 上面的各個節點, 使用起來感覺就像是, 在同一個乙太網路上。 多部橋接器 (Bridge) 放在一起, 再加上 IEEE802.1 標準的 spanning tree 演算法的使用, 可以建構一個更大的乙太網路。正如他是一個標準, Linux 橋接器 (bridge) 有了他之後, 可與其他第三協力廠商的橋接器 (bridge) 產品正常地互接。 還有的程式套件, 可以過濾 IP, IPX 或 MAC 位址。 <p> 相關的 How-tos 請參考: <itemize> <item><url url="http://sunsite.unc.edu/mdw/HOWTO/mini/Bridge+Firewall.html" name="Bridge+Firewall"> <item><url url="http://sunsite.unc.edu/mdw/HOWTO/mini/Bridge.html" name="Bridge"> </itemize> <sect1>IP-偽裝 (Masquerading) 功能 <p> IP 偽裝在 Linux 上是一個發展中的網路功能。 如果一部 Linux 主機連接至 Internet , 而且其 IP 偽裝功能被開啟, 則連上他的其他電腦 (不論是在相同的 LAN 上, 或是透過數據機連上來的) 就算是他們沒有使用正式分配的 IP 位址, 都同樣可以通達 Internet。 他降低了上網的費用, 因為可以多人使用同一條數據機連線來上 Internet, 同時他也增加了安全性 (從某些方面來看, 他的功能像是一個防火牆 (firewall), 因為外界網路無法連接, 非正式分配的 IP 位址)。 IP 偽裝的相關網頁與文件: <itemize> <item><htmlurl url="http://www.tor.shaw.wave.ca/~ambrose/" name="http://www.tor.shaw.wave.ca/~ambrose/"> <item><htmlurl url="http://www.indyramp.com/masq/links.pfhtml" name="http://www.indyramp.com/masq/links.pfhtml"> <item><htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/IP-Masquerade.html" name="http://sunsite.unc.edu/mdw/HOWTO/mini/IP-Masquerade.html"> </itemize> <sect1>IP-計帳 (Accounting) 功能 <p> 這也是個 Linux 核心的選用功能。他被使用在 IP 網路流量的追蹤, 封包的記錄, 以及產生一些統計的結果。 你可以定義一系列的規則, 以便當比對到某種樣式的封包時, 就增加計數器的數值。 例如, 這個封包是被接受/拒絕的..等等。 <sect1>IP 別名(aliasing) 功能 <p> 這個 Linux 核心所提供的功能, 使得我們可以在同一個低階網路裝置的驅動程式下, 設定多重的網路位址 (例如, 在一片乙太網路卡裝置上, 設定二個 IP 位址)。 通常我們會依照, 伺服器程式所監看網路位址的不同, 而來區分不同的服務功能 (例如 "多重主機 (multihosting)" 或 "虛擬網域 (virtual domains)" 或 "虛擬主機服務 (virtual hosting services)" )。 <p> 相關的 How-to 請參考: <itemize> <item><url url="http://sunsite.unc.edu/mdw/HOWTO/mini/IP-Alias.html" name="IP Aliasing How-to"> </itemize> <sect1>網路流量控制 (Traffic Shaping) 功能 <p> 網路流量控制功能, 是一種虛擬的網路服務, 他可以限制輸出到另一個網路裝置的資料流速率。 這個功能在某些場合 (像是 ISP) 特別有用, 他被拿來控制與執行, 限制每個使用者可以使用多少頻寬的策略。 另一個用途 (僅限於網頁服務) 就是某些 Apache 的模組, 可以拿來限制客戶端建立 IP 連線的個數, 或是頻寬的使用量。 <sect1>防火牆 (Firewall) 功能 <p> 防火牆是一個將私有網路, 從公眾範圍 (整個網際網路) 保護與獨立出來的裝置。 他的設計使他能夠, 依據每個封包所含之來源位址, 目的位址, 埠, 以及封包形態等資訊, 來控制封包的流通與否。 <p> Linux 上存在有不同類型的防火牆工具套件 (toolkits) , 同時核心也有內建的防火牆支援。 除了核心內建的支援外, 還有 TIS 和 SOCKS 二種防火牆工具套件。 這二種防火牆工具套件非常完整, 若能與其他工具合併使用, 則可阻斷/重導各類的網路流量與協定。 而且經由設定檔案或 GUI 程式, 可以實作出不同的網路流量控制策略。 相關資料請參考: <itemize> <item><url name="TIS home page" url="http://www.tis.com" > <item><url name="SOCKS" url="http://www.socks.nec.com/socksfaq.html"> <item><url name="Firewall How-to" url="http://sunsite.unc.edu/mdw/HOWTO/Firewall-HOWTO.html"> </itemize> <sect1>埠轉遞 (Port Forwarding) 功能 <p> 有互動交談能力網頁站台越來越多了, 他們使用 cgi-bins 或 Java applets 程式, 來存取資料庫或其他服務。 因為這類存取方式, 可能造成安全上的問題, 所以資料庫所在的機器, 不應該直接連上 Internet。 <p> 埠轉遞功能對這類存取問題, 提供了一個還算理想的解決方案。 透過防火牆, 進入到特定埠編號的 IP 封包, 可以被改寫, 然後轉遞到內部實際提供服務的伺服器上。 內部伺服器所回覆的封包也會被改寫, 使得他看起來是來自防火牆。 <p> 埠轉遞的相關資料可以在 <url url="http://www.ox.compsoc.net/~steve/portforwarding.html" name="這個地方"> 找到。 <sect1>負載均衡 (Load Balancing) 功能 <p> 通常資料庫/網頁的存取, 在多個用戶端同時向一個伺服器提出服務要求時, 會有負載均衡的需求。 負載均衡的功能, 需要有多部相同的伺服器, 並將服務要求轉送到負載較輕的伺服器上去。 我們可以透過網路位址轉換 ( Network Address Translation, 簡稱 NAT ) 技術的子功能 IP 偽裝來達到這個目的。 網路管理者可以用一個邏輯的伺服器集合, 來共享同一個 IP 位址的做法, 取代過去僅使用單一伺服器, 提供網頁服務 - 或其他應用 - 的方式。 藉著使用負載均衡的演算方法, 將任何進來的連線要求, 轉向至特定的伺服器上去。 這個虛擬的伺服器, 會改寫進來與出去的封包, 所以用戶端對伺服器的存取是透通的, 他們會以為只有一台伺服器。 <p> Linux IP-NAT 的相關資料可以在 <url url="http://www.csn.tu-chemnitz.de/~mha/linux-ip-nat/diplom/" name="這個地方"> 找到。 <sect1>EQL (串列連線的負載均衡驅動程式) <p> EQL 已被整合到 Linux 的核心中。 如果你有二條串列連線接到其他電腦 ( 這通常需要二部數據機和二門電話線路 ) ,而且你在線路上面使用 SLIP 或 PPP ( 可以在電話線路上, 傳遞 Internet 流量的通訊協定 ), 此時使用 EQL 驅動程式就可以將二條串列連線, 看成一條二倍速的連線。 當然, 另外一端也必須支援這個功能才可以。 <p> 相關的 How-to 請參考: <itemize> <item><url name="EQL How-to" url="http://www.abies.com/eql-howto.mhtml"> </itemize> <sect1>代理伺服器 (Proxy Server) <p> proxy (代理) 這個詞彙的意義就是 "代替某些人做某些事"。在網路的用語中, 代理伺服器就是一部可以代替許多用戶端做事情的電腦。 HTTP proxy 就是一部專門接收別台機器 (機器 A) 所發出網頁要求的機器。 代理伺服器會取得這份網頁, 並將結果傳回機器 A。 代理伺服器可以將這份網頁, 存到快取記憶體 (cache) 中, 如果其他機器所要求的網頁, 在快取記憶體中正好有一份複本, 則只會將該複本傳回。 這使得網路頻寬資源能夠有效運用, 而且降低了網頁回覆的時間。 副作用就是, 用戶端機器無法直接連線到外面世界的網路, 而這個副作用卻成為內部網路保密的方法。 一個設定完善的代理伺服器, 就像是一部功能優良的防火牆。 <p> 在 Linux 上存在有數種代理伺服器。 一個普遍的解決方案就是 Apache 的 proxy 模組。另一個更完整與穩定的 HTTP proxy 工具程式就是 SQUID 。 <p> 相關的資料請參考: <itemize> <item><url name="Apache" url="http://www.apache.org"> <item><url name="Squid" url="http://squid.nlanr.net"> </itemize> <sect1>隨選撥接 (Diald on demand) 功能 <p> 隨選撥接 (dial on demand) 功能, 使得電話撥接動作完全通透, 使用者只會看到有一條固定的網路線路, 被連接到遠端的站台。 通常, 他會有一個監控程式來監看封包的流量。當 "感興趣" 的封包 ( 所謂的 "感興趣" 通常是由一套 規則/優先權/權限 來定義) 一抵達, 他就會與遠端建立網路連線。而當通道閒置一段時間後, 就會停掉網路的連線。 <p> 相關的 How-to 請參考: <itemize> <item><url url="http://sunsite.unc.edu/mdw/HOWTO/mini/Diald.html" name="Diald How-to"> </itemize> <sect1>建立通訊協定隧道, 機動式電腦 IP 路由選擇協定 (Mobile-IP) 與虛擬私有網路 (Virtual Private Networks, 簡稱 VPN) <p> Linux 核心允許我們建立通訊協定隧道 (也就是說將通訊協定封裝起來)。 他可以在 IP 網路連線上建立 IPX 隧道, 這使得二個 IPX 網路可以透過唯一的 IP 網路連線互接。他也可以建立 IP-IP 隧道, 基本上是使用在 "機動式電腦 IP 路由選擇協定" 的支援, 多目的傳播的支援, 以及業餘無線電網路。 (請參考網頁 <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/NET-3-HOWTO-6.html#ss6.13" name="http://sunsite.unc.edu/mdw/HOWTO/NET-3-HOWTO-6.html#ss6.13">) <p> "機動式電腦 IP 路由選擇協定" 主要是針對 Internet 上機動式電腦的路由選擇作特別的設計, 使得我們在傳送 IP "資料片段" (datagrams) 到機動式電腦時, 完全通透而不受影響。 每個機動式電腦的識別方式, 都是以他的 "原始位址" (home address) 來做為標記, 而與他目前連接到 Internet 的那個節點無關。 當機動式電腦不在他原始的位址上時, 他會回傳一個 "中介位址" (care-of address), 經由 "中介位址" 便可以知道該機動式電腦, 目前連接到 Internet 的那個節點。 機動式電腦透過此協定向 "原始位址處理機構" (home agent) 註冊 "中介位址"。 而 "資料片段" 會透過 "原始位址處理機構" 的 IP-IP 隧道, 傳送至 "中介位址" 上去。 當資料抵達隧道的末端時, 每個 "資料片段" 會再傳遞至機動式電腦上去。 <p> 點對點隧道通訊協定 (Point-to-Point Tunneling Protocol, 簡稱 PPTP) 就是在 Internet 上使用保密的虛擬私有網路 (VPN) 的一種網路技術。 目前 Windows NT 伺服器, 已將 PPTP 與 "遠端存取服務" (RAS) 伺服器整合在一起。 透過 PPTP, 使用者可利用電話撥接至當地的 ISP, 或直接連上 Internet, 來取用自己公司的網路服務, 使用起來感覺就好像是, 坐在自己的辦公桌前一樣。 然而 PPTP 是一個封閉的通訊協定, 而且他的保密性最近也正遭受到質疑。 所以我還是強烈建議各位, 使用其他在 Linux 平臺上的解決方案, 因為 Linux 上的解決方案, 使用的是開放的標準, 並且都經過仔細的檢查與測試。 <p> <itemize> <item>在 Linux 上的 PPTP 用戶端工具可在 <url url="http://www.pdos.lcs.mit.edu/~cananian/Projects/PPTP/" name="這個地方"> 找到。 </itemize> Mobile IP 相關文件: <itemize> <item> <htmlurl url="http://www-uk.hpl.hp.com/people/jt/mip.html" name="http://www-uk.hpl.hp.com/people/jt/mip.html"> <item> <htmlurl url="http://anchor.cs.binghamton.edu/~mobileip/" name="http://anchor.cs.binghamton.edu/~mobileip/"> </itemize> VPN 相關文件: <itemize> <item> <htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/VPN.html" name="http://sunsite.unc.edu/mdw/HOWTO/mini/VPN.html"> <item> <htmlurl url="http://sites.inka.de/sites/bigred/devel/cipe.html" name="http://sites.inka.de/sites/bigred/devel/cipe.html"> </itemize> <sect>Linux 對網路管理的支援 <p> <sect1>網路管理的應用 <p> 應用在網路管理與遠端管理這方面工具非常多。 目前有二個吸引人的遠端管理計劃, 他們是 linuxconf 與 webmin: <itemize> <item> <url name="Webmin" url="http://www.webmin.com/webmin/"> <item> <url name="Linuxconf" url="http://solucor.solucorp.qc.ca/linuxconf/"> </itemize> <p> 還有其他管理工具像是: 網路流量分析工具, 網路安全工具, 監視工具, 設定工具, 等等。 一個存放有許多這類工具的檔案庫可以在網站 <url url="http://www.sunsite.unc.edu/pub/Linux/system/network/" name="Sunsite"> 找到。 <sect1>簡易網路管理協定 (SNMP) <p> 簡易網路管理協定 (Simple Network Management Protocol, 簡稱 SNMP) 是一個提供 Internet 網路管理服務的通訊協定。 他讓我們可以監視與設定路由器, 橋接器, 網路卡, 交換器 (switch), ..等等網路設備。 在 Linux 上有為數眾多以, 程式庫, 用戶端, 伺服器端, SNMP 為基礎的監視程式可用。 關於 Linux 上的 SNMP 軟體有個不錯的網頁可參考: <htmlurl url="http://linas.org/linux/NMS.html" name="http://linas.org/linux/NMS.html"> <sect>以 Linux 架構企業網路 <p> 在某些情況下 (例如, 企業網路), 我們的網路基礎建設需要適當的機制, 用以確保網路的可用度到 100% 的時間。接下來的幾個小節將會說明一些相關的技術。 所說明的內容大部分可以在 Linux 的最佳 web 站台 Linas : <htmlurl url="http://linas.org/linux/index.html" name="http://linas.org/linux/index.html"> 以及在 <url url="http://sunsite.unc.edu/pub/Linux/ALPHA/linux-ha/High-Availability-HOWTO.html" name="Linux High-Availability how-to"> 上找到. <sect1>提高可用度 <p> 使用冗餘技術可以避免單一的故障點, 癱瘓整個 IT (資訊科技) 系統。 當伺服器只有一個網路卡或單一的 SCSI 磁碟機有二處單一故障點都會有這樣的顧慮。 冗餘技術的目的, 在掩飾系統不預期的中斷, 並讓使用者能馬上地繼續使用。 而提高可用度的軟體, 則是一套自動監視, 檢測故障的, 命令稿 (script) 程式與工具, 他會採取適當的步驟, 來回復系統的正常運作, 以及通知系統管理者。 <sect1>冗餘廉價磁碟機陣列 (RAID) <p> 冗餘廉價磁碟機陣列 (Redundant Array of Inexpensive Disks, 簡稱 RAID) 是一種將資訊展開交叉儲存在多個磁碟機上的方法, 使用這個方法所提供的 disk striping (磁碟機平行儲存) (RAID 等級 0) 以及 disk mirroring (磁碟機映射儲存) (RAID 等級 1) 的技術, 可以達到冗餘的目的, 以及使得讀且/或寫磁碟機時, 有較低的等待時間, 且/或較高的頻寬, 和硬碟機故障時的可恢復性。 目前已經有超過六種不同的類型的 RAID 架構被定義出來。 Linux 的使用者有三種類型的 RAID 解決方案可選擇: 軟體 RAID, 外部的 DASD 裝置, 以及 RAID 磁碟機控制器。 <p> <itemize> <item>軟體 RAID : 在核心的磁碟機 (block 裝置) 程式碼中, 存在有以純軟體實作出來的, 各等級的軟體 RAID。 <item>外部的 DASD 解決方案 : 直接存取儲存裝置(Direct Access Storage Device, 簡稱 DASD) 是一個接在電腦外部的裝置, 有自己的電源供給, 並且提供機櫃/機架來放置硬碟, 然而在 Linux 中卻只是把他當作另一個 SCSI 裝置。 就許多方面而言, 這個方法所提供的 RAID 解決方案, 算是最穩固的了。 <item>RAID 磁碟機控制器: 磁碟機控制器就是一個插入 ISA/EISA/PCI 匯流排的配接卡. 就像一般的磁碟機控制卡一樣, 他會有電纜連接到磁碟機裝置。 然而與一般的磁碟機控制卡不同的是, RAID 控制器會在自己的配接卡上實作 RAID 功能, 提供各種 RAID 等級, 操作時所必須執行的動作。 </itemize> 相關的 How-tos 請參考: <itemize> <item><htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/DPT-Hardware-RAID.html" name="http://sunsite.unc.edu/mdw/HOWTO/mini/DPT-Hardware-RAID.html"> <item><htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/Root-RAID-HOWTO.html" name="http://sunsite.unc.edu/mdw/HOWTO/Root-RAID-HOWTO.html"> <item><htmlurl url="http://sunsite.unc.edu/mdw/HOWTO/mini/Software-RAID.html" name="http://sunsite.unc.edu/mdw/HOWTO/mini/Software-RAID.html"> </itemize> RAID 在 linas.org 站台上的資料請參考: <itemize> <item><htmlurl url="http://linas.org/linux/raid.html" name="http://linas.org/linux/raid.html"> </itemize> <sect1>冗餘網路連接 <p> IP 位址接管 (IP Address Takeover, 簡稱 IPAT). 當網路配接卡故障時, 他的 IP 位址應該由相同或另一個節點上, 正常的網路卡來接管。 MAC 位址接管: 當IP 位址接管的情況發生時, 還必須確定網路上所有的節點, 是否更新了他們的 ARP 快取 (其內容為 IP 與 MAC 位址的對應)。 <p> 更詳細的內容, 請參考 High-Availability How-To 文件: <htmlurl url="http://sunsite.unc.edu/pub/Linux/ALPHA/linux-ha/High-Availability-HOWTO.html" name="http://sunsite.unc.edu/pub/Linux/ALPHA/linux-ha/High-Availability-HOWTO.html"> <sect>資料的來源 <p> 何處取得更進一步的資料: <itemize> <item> Linux 網站: <htmlurl url="http://www.linux.org" name="http://www.linux.org"> <item> Linux 文件計劃網站: <htmlurl url="http://sunsite.unc.edu/mdw/linux.html" name="http://sunsite.unc.edu/mdw/linux.html"> (請查看 Linux 網路管理者指引) <item> 鮮肉 (Freshmeat) 網站 : 提供最新版本的 Linux 軟體。 <htmlurl url="http://www.freshmeat.net" name="http://www.freshmeat.net"> <item> Linux 超鏈結網站: <htmlurl url="http://www.linuxlinks.com/Networking/" name="http://www.linuxlinks.com/Networking/"> </itemize> <sect>致謝 <p> 因著許多人的努力, 才將 Linux 造就成一個最佳的網路作業系統, 沒有他們就不會出現這份文件。我要將所有的功勞都歸給他們。 我在這份文件上下了很多工夫, 使得他雖簡單而不失正確性, 雖完整而不會太冗長。 盡管如此, 作者不保証這份文件的內容, 在任何環境下皆適用。 引用這份文件所提供的的資料時, 各位要自己承擔風險。 有任何建議, 以及內容的更正或補充歡迎來信指教, 以便本文能有所改進。 其他的話題可能包括 radius, web/ftp 映射工具例如 wget, 流量分析儀, CORBA... 以及許多其他建議與合適的項目, 在未來的版本中希望都能包含進來。 你可以在 <htmlurl url="mailto:ridruejo@esi.us.es" name="這個地方">聯絡到我。 <p> 最後我想要感謝 <htmlurl url="maitlto:efat@kampsax.dtu.dk" name="FinnBj鷨n av Teilgum"> 在這份 how-to 文件 "beta-測試階段" 時的細心校對。 <p> Daniel L鏕ez Ridruejo 9th May 1998 </article>