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的根本,必须选择。
0 comment(s)



2008/07/14 15:01 ..by
内文分页: 
