ip映射
假设有一家ISP提供园区Internet接入服务,为了方便管理,该ISP分配给园区用户的IP地址都是伪IP,但是部分用户要求建立自己
的WWW服务器对外发布信息。我们可以在防火墙的外部网卡上绑定多个合法IP地址,然后通过ip映射使发给其中某一个IP地址的包转
发至内部某一用户的WWW服务器上,然后再将该内部WWW服务器响应包伪装成该合法IP发出的包。
 
§假设以下情景:
 该ISP分配给A单位www服务器的ip为:
 伪ip:192.168.1.100
 真实ip:202.110.123.100
 
 该ISP分配给B单位www服务器的ip为:
 伪ip:192.168.1.200
 真实ip:202.110.123.200
 linux防火墙的ip地址分别为:
 内网接口eth1:192.168.1.1
 外网接口eth0:202.110.123.1
§将分配给A、B单位的真实ip绑定到防火墙的外网接口,以root权限执行以下命令:
 ifconfig eth0 add 202.110.123.100 netmask 255.255.255.0
 ifconfig eth0 add 202.110.123.200 netmask 255.255.255.0
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo 1 > /proc/sys/net/ipv4/ip_forward    //开启转发
§首先,对防火墙接收到的目的ip为202.110.123.100和202.110.123.200的所有数据包进行目的NAT(DNAT):
iptables –t nat -A PREROUTING -i eth0 -d 202.110.123.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80
iptables –t nat -A PREROUTING -i eth0 -d 202.110.123.200 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.200:80
§其次,对防火墙接收到的源ip地址为192.168.1.100和192.168.1.200的数据包进行源NAT(SNAT):
iptables –t nat -A POSTROUTING -o eth0 -s 192.168.1.100 -j SNAT --to-source 202.110.123.100
iptables –t nat -A POSTROUTING -o eth0 -s 192.168.1.200 -j SNAT --to-source 202.110.123.200
§这样,所有目的ip为202.110.123.100和202.110.123.200的数据包都将分别被转发给192.168.1.100和192.168.1.200;
 
而所有来自192.168.1.100和192.168.1.200的数据包都将分别被伪装成由202.110.123.100和202.110.123.200,从而也就实现了ip映射。