這份文件描述如何在一台 Linux 主機上起動 IP Masquerade 功能
,允許沒有注冊網際網路 IP 位址的連線電腦經由你的 Linux 機器
連接網際網路。
1. 簡介
1.1. 簡介
這份文件描述如何在一台 Linux 主機上起動 IP Masquerade 功能
,允許沒有注冊網際網路 IP 位址的連線電腦經由你的 Linux 機器
連接網際網路。你的機器可能是以乙太網路連接 Linux, 也可能是其
它種類,像是撥接的點對點(ppp) 連線。這份文件將會強調乙太網路
連線的情況,因為這應該是最常見的案例。
這份文件傾向給使用 2.0.x 核心的使用者參考,不包含發展中
的 2.1.x 核心。
1.2. 前言,回饋&參考資訊
首先,我想讓你知道我不是對 IP masquerade 了解非常透徹或很有
經驗的人。
我發現新手在較新的核心上,像是 2.x 核心,設定 IP Masguerade
時非常困惑。雖然有份常見問答集(FAQ) 與郵遞列表(mailing list)
,然而沒有一份這方面的專門文件;而且在郵遞列表上有些對於這樣
一份說明文件(HOWTO) 的請求。所以,我決定撰寫它給所有新手作為
一個起點,並且希望能拋磚引玉,作為那些非常了解它的使用者建立
文件的基礎。如果你認為我做的不好,不要在意告訴我,這樣我能把
它做得更好。
這份文件很多是以原先 Ken Eves 的常見問答集以及 ip_masq 郵遞
列表裡許多有幫助的訊息作為基礎。特別感謝 Mr. Matthew Driver
在郵遞列表中的訊息引發我設立 ip_masq 的靈感以及最後撰寫了這
份文件。
如果我的任何資訊有誤或遺漏任何資訊,請別介意把任何回饋或意見
寄到
[email protected] 來。你的無價回饋將影響未來的這份說明
文件!
這份說明文件是想作為讓你的 IP Masquerade 能在最短時間內運作
的快速指引。最新的消息以及資訊可以在我所維護的 IP Masquerade
Resource 網頁上找到。如果你有任何關於 IP Masquerade 的技術
問題,請加入 IP Masquerade 郵遞列表而別寄電子郵件給我,因為
我的時間有限,而且 IP_ Masq 的發展者們更有能力回答你的問題。
這份文件最新的版本可以在 IP Masquerade Resource 上找到,裡面
也有 Html 以及 postscript 的版本。
。 http://www.wwonline.com/~achau/ipmasq/
。 http://www.hwy401.com/achau/ipmasq/
。 http://www.leg.UCt.ac.za/mirrors/ipmasq/
。 http://130.89.230.132/linux/ipmasq/
1.3. 版權&宣告
這份文件版權屬於 Ambrose Au, 而且是免費的文件。你可以在 GNU
的通用公開授權方式下散播它。
這份文件中的資訊跟其它內容都已經盡了我最大的努力。無論如何,
ip_masq 是實驗性的,而且我也可能會犯些錯誤;所以你應該自己決
定是不是要照著這份文件中的資訊做。
沒有人會為使用這份文件中的資訊所造成的電腦損壞或其它損失負責
。i.e.
作者不對依照這份文件內容動作所造成的損害負責。
This document is copyright(c) 1996 Ambrose Au, and it's a free
document. You can redistribute it under the terms of the GNU General
Public License.
The information and other contents in this document are to the best of
my knowledge. However, ip_masq is eXPerimental, and there is chance
that I make mistakes as well; so you should determine if you want to
follow the information in this document.
Nobody is responsible for any damage on your computers and any other
losses by using the information on this document. i.e.
THE AUTHOR IS NOT RESPONSIBLE FOR ANY DAMAGES INCURRED DUE
TO ACTIONS TAKEN BASED ON THE INFORMATION IN THIS DOCUMENT.
2. 背景知識
2.1. 什麽是 IP Masquerade?
IP Masquerade 是 Linux 發展中的一種網路功能。如果一台 Linux
主機使用 IP Masquerade 功能連線到網際網路上,那麽接上它的電
腦(不論是在同一個區域網路上或藉由數據機連線)也可以接觸網際
網路,即使它們沒有獲得正式指定的 IP 位址。
這使得一些電腦可以隱藏在閘道(gateway) 系統後面存取網際網路而
不被發現,看起來就像只有這個系統在使用網際網路。突破設定良好
的偽裝(masquerade)系統之安全防護應該會比突破良好的封包過濾式
防火牆(packet filter firewall)來得更加困難(假設兩者之中都沒
有錯誤)。
2.2. 現況
IP Masquerade 仍然在實驗階段。無論如何,核心從 1.3.x 開始已
經內建這項支援。許多個人甚至公司正在使用它,而有滿意的結果。
浏覽網頁以及遠端簽入(telnet)已經有回報表示可以在 ip_masq 上
運作。檔案傳輸(FTP), 網路交談(IRC) 以及聆聽 Real Audio 現在
可以載入某些模組配合。其它的網路資料流音訊 (streaming audio)
像是 True Speech 以及 Internet Wave 也能運作。一些郵遞列表
中的使用夥伴甚至還嘗試過視訊會議軟體。 Ping 現在配合新近可以
取得的網際網路控制訊息協定(ICMP)修補檔也能運作。更完整的支援
軟體列表請參考 4.3 節。
IP Masquerade 在數種不同的作業系統及平台上與'客戶端機器'配
合良好。成功的案例有使用 Unix , Windows95 , Windows NT ,
Windows for Workgroup (with TCP/IP package) , OS/2, Macintosh
System's OS with Mac TCP, Mac Open Transport, DOS with NCSA
Telnet package, VAX, Alpha with Linux, 甚至 Amiga with AmiTCP
or AS225-stack 的系統。
2.3. 誰可以從 IP Masquerade 中獲益?
。如果你有台連接網際網路的 Linux 主幾,而且
。如果你有一些執行 TCP/IP 連接到 Linux 機器的電腦在區域網路
上,以及/或是
。如果你的 Linux 主機有一個以上的數據機並且作為 PPP 或 SLIP
伺服器連接其它電腦,它們
。這些”其它”機器沒有正式指定的 IP 位址。(這些機器從這裡開
始以後就稱為”其它”機器)
。而且當然,如果你希望這些”其它”機器不必花額外的費用就能連
上網際網路:)
2.4. 誰不需要 IP Masquerade?
。如果你的機器是單獨一台(stand-alone) 連接網際網路的 Linux
主機,那麽執行 ip_masq 沒什麽意義,或者
。如果你的”其它”機器擁有正式指定的 IP 位址,那麽你就不需要
IP Masquerade ,
。而且當然,如果你不喜歡免費使用(free ride) 這個主意的話。
2.5. IP Masquerade 是如何運作的?
節自 Ken eves 的 IP Masquerade FAQ:
這是大部分簡單的設定草圖:
SLIP/PPP +------------+ +-------------+
to provider Linux SLIP/PPP Anybox
<---------- modem1 modem2 ----------- modem
111.222.333.444 192.168.1.100
+------------+ +-------------+
上面的草圖中一台安裝並執行 ip_masquerading 的 Linux
機器使用 modem1 經由 SLIP/or/PPP 連接網際網路。它有一個
指定的 IP 位址 111.222.333.444。它設定 modem2 允許撥接者
簽入並起始 SLIP/or/PPP 連結。
第二個系統(不必是執行 Linux 的系統)撥接進入 Linux
機器並起始 SLIP/or/PPP 連結。它在網際網路上並沒有指定的
IP 位址所以它使用 192.168.1.100。(參閱下述)
配合 ip_masquerade 及適當遞送配置(routing configured)
Anybox 這台機器可以跟網際網路交流就如同它真的連在上面般
(除了少數例外)。
節錄 Pauline Middelink:
別忘記提到 ANYBOX 應該把 Linux 機器當作它的閘道(無論是
預設遞送路徑或只是個子網路都沒關系)。如果 ANYBOX 不能夠
這樣設, Linux 機器應該為所有要遞送的位址做代理位址解析
析協定(proxy arp) 服務,但代理位址解析的設定超過這份文件
的□圍。
下面節錄自 comp.os.linux.networking 的一篇布告並且稍加編輯以
符合上述□例的用詞:
。我告訴 ANYBOX 這台機器跑 slip 的 linux 機器是它的閘道。
。當一個封包從 ANYBOX 進入 linux 機器時,它會指定新的來源埠
號(source port number),把它自己的 ip 位址塞入封包的標頭並
儲存原來的。然後它將會藉由 SLIP/or/PPP 界面把修改過的封包
送上網際網路。
。當一個封包從網際網路來到 linux 機器時,如果埠號是上面指定
的其中一個,它將會取出原來的埠號以及 ip 位址,把它們放回封
包的標頭,並且把封包送往 ANYBOX 。
。送出封包的主機將永遠不知道
<---------- modem1 modem2 ----------- modem
111.222.333.444 192.168.1.100
+------------+ +-------------+
上面的草圖中一台安裝並執行 ip_masquerading 的 Linux
機器使用 modem1 經由 SLIP/or/PPP 連接網際網路。它有一個
指定的 IP 位址 111.222.333.444。它設定 modem2 允許撥接者
簽入並起始 SLIP/or/PPP 連結。
第二個系統(不必是執行 Linux 的系統)撥接進入 Linux
機器並起始 SLIP/or/PPP 連結。它在網際網路上並沒有指定的
IP 位址所以它使用 192.168.1.100。(參閱下述)
配合 ip_masquerade 及適當遞送配置(routing configured)
Anybox 這台機器可以跟網際網路交流就如同它真的連在上面般
(除了少數例外)。
節錄 Pauline Middelink:
別忘記提到 ANYBOX 應該把 Linux 機器當作它的閘道(無論是
預設遞送路徑或只是個子網路都沒關系)。如果 ANYBOX 不能夠
這樣設, Linux 機器應該為所有要遞送的位址做代理位址解析
析協定(proxy arp) 服務,但代理位址解析的設定超過這份文件
的□圍。
下面節錄自 comp.os.linux.networking 的一篇布告並且稍加編輯以
符合上述□例的用詞:
。我告訴 ANYBOX 這台機器跑 slip 的 linux 機器是它的閘道。
。當一個封包從 ANYBOX 進入 linux 機器時,它會指定新的來源埠
號(source port number),把它自己的 ip 位址塞入封包的標頭並
儲存原來的。然後它將會藉由 SLIP/or/PPP 界面把修改過的封包
送上網際網路。
。當一個封包從網際網路來到 linux 機器時,如果埠號是上面指定
的其中一個,它將會取出原來的埠號以及 ip 位址,把它們放回封
包的標頭,並且把封包送往 ANYBOX 。
。送出封包的主機將永遠不知道