注:以下步骤未尽验证。
Linux下面开nat还是比较简单。
首先在/etc/sysconfig/network这个文件中添加:FORWARD_IPV4="YES" ,打开包转发。
然后直接一句iptables命令搞定:iptables -t -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j SNAT --to-source 100.100.100.100。
这个命令解释如下:
-t nat 表示配置NAT表中的链
-A POSTROUTING 表示满足规则的数据包发往外网是该变其IP地址
-s 192.168.1.0.0/24 表示从内网192.168.0.0 网段发往的数据包
-o eth1 表示通过eth1发往外网的数据包
-j SNAT 表示满足上诉规则是就进行静态NAT地址转换
--to-source 100.100.100.100 表示数据包转换为100.100.100.100
然后要说一下的就是nat和route的区别,route也是linux下一个命令,用于维护路由表。它们两个有什么区别呢?
nat mode belong to trust zone,route mode belong to untrust zone.
这句话基本说出了两者的不同,路由能使不同网段的ip通信,但是这个ip一定是公网的,私网地址不可能出现在internet上。即路由就只是包转发,将数据包按照路由表进行转发,转发的都是真实IP。而Nat则会对数据包进行修改,将其中的IP,端口等数据进行修改,在Nat内部维护一张端口映射表,映射内外的IP和端口,内部的IP是私网的,非真实的。
具体可以参看一下M$的这篇文章:http://www.microsoft.com/china/technet/prodtechnol/winxppro/deploy/nattrnsv.mspx


