PAT或NAPT
PAT即Port Address Translation,也被称为NAPT,即Network Address and Port Translation。想法是不仅为指定主机和端口转换IP地址,还转换端口号。

公司的网页服务器位于NAT后面,其IP地址是192.168.1.100,只有一个公网IP地址,配置http://www.ourcompanyname.com响应到1.1.1.1.对于来自互联网上的网页服务访问,无论其目标端口是不是80都要将地址由1.1.1.1改写成192.168.1.100.

另外,我们还有一个内部网站,网址是192.168.1.200,端口80. 员工在办公室里可以通过http://192.168.1.200访问该内部网站。

如果想允许他们在办公室外也能访问到内部网站,就需要采用PAT。通过PAT,我们可以选择NAT路由器上未打开的端口(如2143),这样,只要用2143端口访问1.1.1.1,NAT路由器将把目标IP地址改写成192.168.1.200,源端口由2143改成80.

即,当互联网用户输入:
● http://www.ourcompanyname.com/,请求被转发到192.168.1.100的80端口,看到公司网站
● http://www.ourcompanyname.com:2143/,请求被转发到192.168.1.200的80端口,看到公司内部网站

源IP地址为192.168.1.200的IP包的端口不用改写,只用配置SNAT或者伪装,以使内部服务器能够通过1.1.1.1访问互联网即可。

用iptables实现NAT
前面我们讨论了NAT通常规则、NAT类型及各自处理什么事情。

netfilter/iptables能够胜任我们讨论过的NAT。首先要对系统做一定的配置。

配置内核
通常,每个Linux发行版的内核都支持netfilter,带有iptables工具,及处理NAT的模块。

关于如何编译内核,可以参考Kwan Lowe撰写的HowTo

编译一个新内核或者重新编译已有的内核时,要指定NETFILTER=y以支持iptables。2.6的内核可以在Device Drivers | Networking support | Networking support (NET [=y]) | Networking options处找到,不同版本不太一样。

比如,2.6.14版的内核,该选项在Networking | Networking Options.

如果你用make menuconfig或make xconfig配置重新编译内核,选择Networking | Networking options | Network packet filtering (replaces ipchains) | IP: Netfilter Configuration:

点击在新窗口中浏览此图片


在IP: Netfilter Configuration一节,可以找到如下与NAT有关的选项:
● IP_NF_CONNTRACK 或 Connection tracking (required for masq/NAT) 记录通过机器的包以便跟踪NAT源。这是NAT的根本,必须选择。
内文分页: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]
< Tags: >

0 comment(s)

发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

验证码 不区分大小写