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

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

Unix/Linux 中的 Linux 2.4 NAT HOWTO


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 43 ::
收藏到网摘: 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 主机的封包送至主机本身的一个程式去。这就