親愛的讀者﹐歡迎您﹗
您将要探索的是引人入勝(有時蠻恐怖)的 NAT(Network Address Translation) 世界﹐同時﹐您甚至可以把這份 HOWTO 當成 Linux 2.4 核心及以後版本的精确指南呢。
在 Linux 2.4 裡面﹐有一個叫 `netfilter' 的東東﹐它是專門撕裂 (mangling* )封包的。在它再上一個層級﹐就是提供 NAT 功能的了﹐則是完全由以往的核心實作而成的。
(譯者注﹕很奇怪﹐原作者用 mangle 這一詞﹐似乎在過往的中文檔案中都沒碰到過﹐查過好多字典都不知道怎麼翻譯好。這裡暫時勉強用‘撕裂’這個詞代替﹐不過後面我就不嘗試翻譯這詞了﹐讓讀者自己去了解吧。)
<b></b>
目前有三個官方網站可供浏覽﹕
一般來說﹐在網絡上封包從其來源(比方您家中的計算機)出去﹐然後到達目的地(比方www.gnumonks.org)﹐會經過許許多多個不同的連接配接(links)﹕就我所在的澳洲來說就大約有 19 個之多。沒有任何一個連接配接會真的去更改您的封包﹕他們僅僅是将之傳送出去而已。
假如其中一個連接配接會做 NAT 的話﹐然後它們就會更改那些經它而過的封包之來源或目的地位址。誠如您能想象得到的﹐這并非系統被設計成這樣的﹐而是 NAT 所做的手腳而已。通常要做 NAT 的聯機會記住它如何 mangled 封包的﹐然後當響應封包從另一方向過來的時候﹐然後就反過來 mangling 那個響應封包﹐是以所有東西都工作起來了。
在完美的世界裡﹐您無需這樣做啦。在目前來說﹐還是有其理由的﹕
<b>用</b><b> modem </b><b>撥接上網</b>
大多數的 ISP 在您連上去的時候隻會給您一個單一 IP 位址。您喜歡的話﹐以任何來源位址把封包送出去都行﹐但隻有響應到這個來源位址的封包� 可以回到您那裡。如果您想用多台不同主機(例如家中網絡)透過該連接配接上 internet 的話﹐那您就要 NAT 了。
這也就是今天 NAT 最常用之處﹐而在 Linux 世界最為人知的就是所謂的 `masquerading(封包僞裝術)' 了。我稱之為 SNAT﹐因為您改變了第一個封包的 <b>source(</b><b>來源</b><b>)</b> 位址的緣故。
<b>多重伺服器</b>
有時候﹐您會想去改變那些進入您網絡的封包之路向。這最常是因為(如上述)您隻有一個 IP 位址﹐但您卻想讓别人能夠連接配接到 `真實' IP 位址後面的主機去。如果您重寫這些内送封包的目的位址﹐這樣您就可以管理它們了。
一個常見的變動是負載分擔(load-sharing)﹐也就是在一組機器上面為封包做映對(mapping)的動作。這類型的 NAT ﹐在以前的的 Linux 版本中也就被稱為 port-forwarding 。
<b>透明代理</b><b>(Transparent Proxying)</b>
有時候﹐您或許想要每一個經過您的 Linux 主機的封包送至主機本身的一個程式去。這就需要進行透明代理的動作了﹕一個代理就是一個位于您的網絡和� 部網絡的程式﹐為彼此雙方負起溝通的任務。而所謂的透明﹐則是因為您的網絡甚至無須知道在和一個代理對講﹐當然了﹐除非代理不再工作了吧。
Squid 可以配置成這樣的工作方式﹐這就是在過往的 Linux 版本中所謂的重導向(redirection)﹑或透明代理了。
本文轉自 makewong 51CTO部落格,原文連結:http://blog.51cto.com/makewong/565359,如需轉載請自行聯系原作者