Linux 2.4 NAT(網絡地址轉換) HOWTO(一)

 Linux 2.4 NAT HOWTO

作者﹕Rusty Russell, mailing list [email protected]
譯者﹕網中人 [email protected]

1. Introduction

親愛的讀者﹐歡迎您﹗

您將要探索的是引人入勝(有時蠻恐怖) NAT(Network Address Translation) 世界﹐同時﹐您甚至可以把這份 HOWTO 當成 Linux 2.4 核心及以後版本的精確指南呢。

Linux 2.4 裏面﹐有一個叫 `netfilter' 的東東﹐它是專門撕裂 (mangling* )封包的。在它再上一個層級﹐就是提供 NAT 功能的了﹐則是完全由以往的核心實作而成的。

(譯者注﹕很奇怪﹐原作者用 mangle 這一詞﹐似乎在過往的中文文件中都沒碰到過﹐查過好多字典都不知道怎麼翻譯好。這裏暫時勉強用‘撕裂’這個詞代替﹐不過後面我就不嘗試翻譯這詞了﹐讓讀者自己去理解吧。)

2. 官方的網站和通信論壇何處覓﹖

目前有三個官方網站可供瀏覽﹕

而官方的 netfilter 郵件論壇﹐則可以到這裏看﹕ Netfilter List.

2.1 何爲 Network Address Translation?

一般來說﹐在網絡上封包從其來源(比方您家中的計算機)出去﹐然後到達目的地(比方www.gnumonks.org)﹐會經過許許多多個不同的連接(links)﹕就我所在的澳洲來說就大約有 19 個之多。沒有任何一個連接會真的去更改您的封包﹕他們僅僅是將之傳送出去而已。

假如其中一個連接會做 NAT 的話﹐然後它們就會更改那些經它而過的封包之來源或目的地地址。誠如您能想象得到的﹐這並非系統被設計成這樣的﹐而是 NAT 所做的手腳而已。通常要做 NAT 的聯機會記住它如何 mangled 封包的﹐然後當響應封包從另一方向過來的時候﹐然後就反過來 mangling 那個響應封包﹐所以所有東西都工作起來了。

2.2 爲什麼我要做 NAT 呢﹖

在完美的世界裏﹐您無需這樣做啦。在目前來說﹐還是有其理由的﹕

modem 撥接上網

大多數的 ISP 在您連上去的時候只會給您一個單一 IP 地址。您喜歡的話﹐以任何來源地址把封包送出去都行﹐但只有響應到這個來源地址的封包 可以回到您那裏。如果您想用多臺不同主機(例如家中網絡)透過該連接上 internet 的話﹐那您就要 NAT 了。

這也就是今天 NAT 最常用之處﹐而在 Linux 世界最爲人知的就是所謂的 `masquerading(封包僞裝術)' 了。我稱之爲 SNAT﹐因爲您改變了第一個封包的 source(來源) 地址的緣故。

多重服務器

有時候﹐您會想去改變那些進入您網絡的封包之路向。這最常是因爲(如上述)您只有一個 IP 地址﹐但您卻想讓別人能夠連接到 `真實' IP 地址後面的主機去。如果您重寫這些內送封包的目的地址﹐這樣您就可以管理它們了。

一個常見的變動是負載分擔(load-sharing)﹐也就是在一組機器上面爲封包做映對(mapping)的動作。這類型的 NAT ﹐在以前的的 Linux 版本中也就被稱爲 port-forwarding

透明代理(Transparent Proxying)

有時候﹐您或許想要每一個經過您的 Linux 主機的封包送至主機本身的一個程序去。這就需要進行透明代理的動作了﹕一個代理就是一個位於您的網絡和 部網絡的程序﹐爲彼此雙方負起溝通的任務。而所謂的透明﹐則是因爲您的網絡甚至無須知道在和一個代理對講﹐當然了﹐除非代理不再工作了吧。

Squid 可以配置成這樣的工作方式﹐這就是在過往的 Linux 版本中所謂的重導向(redirection)﹑或透明代理了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章