【 tulaoshi.com - Linux 】
                             
                               作者:Rusty Russell, mailing list netfilter@lists.samba.org 
译者:网中人 netmanforever@yahoo.com 
v1.0.1 Mon May 1 18:38:22 CST 2000  
-------------------------------------------------------------------------------- 
本文件描述如何用 2.4 Linux 核心去做 masquerading、transparent proxying、port forwarding、和其它类型的 Network Address Translations 。  
--------------------------------------------------------------------------------      
-------------------------------------------------------------------------------- 
1. Introduction 
亲爱的读者,欢迎您!  
您将要探索的是引人入胜(有时蛮恐怖)的 NAT(Network Address Translation) 世界,同时,您甚至可以把这份 HOWTO 当成 Linux 2.4 核心及以後版本的精确指南呢。  
在 Linux 2.4 里面,有一个叫 `netfilter' 的东东,它是专门撕裂 (mangling* )封包的。在它再上一个层级,就是提供 NAT 功能的了,则是完全由以往的核心实作而成的。  
(译者注:很奇怪,原作者用 mangle 这一词,似乎在过往的中文文件中都没碰到过,查过好多字典都不知道怎麽翻译好。这里暂时勉强用‘撕裂’这个词代替,不过後面我就不尝试翻译这词了,让读者自己去理解吧。)  
--------------------------------------------------------------------------------          
-------------------------------------------------------------------------------- 
2. 官方的网站和通信论坛何处觅? 
目前有三个官方网站可供浏览:  
感谢 Filewatcher (http://netfilter.filewatcher.org).  
感谢 The Samba Team and SGI (http://www.samba.org/netfilter).  
感谢 Jim Pick (http://netfilter.kernelnotes.org).  
而官方的 netfilter 邮件论坛,则可以到这里看: Samba's Listserver (http://lists.samba.org).  
2.1 何为 Network Address Translation?  
一般来说,在网路上封包从其来源(比方您家中的电脑)出去,然後到达目的地(比方www.kernelnotes.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 主机的封包送至主机本身的一个程式去。这就