当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Linux 2.4 NAT HOWTO

Unix/Linux
linux 操作技巧收集_
linux下如何读取使用iso 镜像文件的方法
Linux平台下文件的压缩与解压参数说明
Linux下常用压缩格式的压缩与解压方法
Linux JDK,TOMCAT安装及环境设置
Linux sleep命令使用参数
Linux cat命令参数
nfs 配置的简单例子
linux kill 关闭进程命令
linux ultrasphinx Anonymous modules have no name to be referenced by
Linux oracle 9i图文安装方法一
Linux oracle 9i图文安装教程二
Linux oracle 9i图文安装教程三
Linux oracle 9i图文安装教程四
Linux oracle 9i图文安装教程五
Linux oracle 9i图文安装教程六 完结篇
linux AS3 oracle9i 安装指南
Linux 下 (RedHat 9.0) JDK,Tomcat,MySQL的安装
RedHat 9.0下Apache+PHP+MySQL服务器安装配置
Linux 下用 Python 连接 MSSql Server 2008

Unix/Linux 中的 Linux 2.4 NAT HOWTO


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 82 ::
收藏到网摘: n/a

  作者:Rusty Russell, mailing list [email protected]
译者:网中人 [email protected]
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 主机的封包送至主机本身的一个程式去。这就