iptables中DNAT的配置方法

1.一对一流量完全DNAT

首先说一下网络环境,普通主机一台做防火墙用,网卡两块

eth0 192.168.0.1  内网

eth1 202.202.202.1 外网

内网中一台主机 192.168.0.101

现在要把外网访问202.202.202.1的所有流量映射到192.168.0.101上

命令如下:

  1. #将防火墙改为转发模式
  2. echo 1 > /proc/sys/net/ipv4/ip_forward
  3. iptables -F
  4. iptables -t nat -F
  5. iptables -t mangle -F
  6. iptables -X
  7. iptables -t nat -X
  8. iptables -t mangle -X
  9. iptables -A INPUT -i lo -j ACCEPT
  10. iptables -A OUTPUT -o lo -j ACCEPT
  11. iptables -P INPUT ACCEPT
  12. iptables -P OUTPUT ACCEPT
  13. iptables -P FORWARD ACCEPT
  14. iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT –to-destination 192.168.0.101
  15. iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT –to 192.168.0.1

2.多对多流量完全DNAT

说是多对多,实际上这里的配置是指定了多个一对一

环境:

eth0 192.168.0.1  内网

eth1 202.202.202.1 、202.202.202.2 外网

内网中2台主机 192.168.0.101、192.168.0.102

现在要把外网访问202.202.202.1的所有流量映射到192.168.0.101上,同时把把外网访问202.202.202.2的所有流量映射到192.168.0.102上

这里顺便提一下如何为网卡配置多个IP

  1. ifconfig eth1:1 202.202.202.2 netmask 255.255.255.0 up

命令如下:

  1. #将防火墙改为转发模式
  2. echo 1 > /proc/sys/net/ipv4/ip_forward
  3. iptables -F
  4. iptables -t nat -F
  5. iptables -t mangle -F
  6. iptables -X
  7. iptables -t nat -X
  8. iptables -t mangle -X
  9. iptables -A INPUT -i lo -j ACCEPT
  10. iptables -A OUTPUT -o lo -j ACCEPT
  11. iptables -P INPUT ACCEPT
  12. iptables -P OUTPUT ACCEPT
  13. iptables -P FORWARD ACCEPT
  14. iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT –to-destination 192.168.0.101
  15. iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT –to 192.168.0.1
  16. iptables -t nat -A PREROUTING -d 202.202.202.2 -j DNAT –to-destination 192.168.0.102
  17. iptables -t nat -A POSTROUTING -d 192.168.0.102 -j SNAT –to 192.168.0.1

3.一对多根据协议DNAT

这个最常用,一般是内网或DMZ区内有多个应用服务器,可以将不同的应用流量映射到不同的服务器上

环境:

eth0 192.168.0.1  内网

eth1 202.202.202.1  外网

内网中2台主机 192.168.0.101(Web服务器)、192.168.0.102(邮件服务器)

现在要把外网访问202.202.202.1的Web流量映射到192.168.0.101上,同时把把外网访问202.202.202.1的邮件访问流量映射到192.168.0.102上

命令如下:

  1. #将防火墙改为转发模式
  2. echo 1 > /proc/sys/net/ipv4/ip_forward
  3. iptables -F
  4. iptables -t nat -F
  5. iptables -t mangle -F
  6. iptables -X
  7. iptables -t nat -X
  8. iptables -t mangle -X
  9. iptables -A INPUT -i lo -j ACCEPT
  10. iptables -A OUTPUT -o lo -j ACCEPT
  11. iptables -P INPUT ACCEPT
  12. iptables -P OUTPUT ACCEPT
  13. iptables -P FORWARD ACCEPT
  14. iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp –dport 80 -j DNAT –to-destination 192.168.0.101:80
  15. iptables -t nat -A POSTROUTING -d 192.168.0.101 -p tcp –dport 80 -j SNAT –to 192.168.0.1
  16. iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp –dport 25 -j DNAT –to-destination 192.168.0.102:25
  17. iptables -t nat -A POSTROUTING -d 192.168.0.102 -p tcp –dport 25 -j SNAT –to 192.168.0.1
  18. iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp –dport 110 -j DNAT –to-destination 192.168.0.102:110
  19. iptables -t nat -A POSTROUTING -d 192.168.0.102 -p tcp –dport 110 -j SNAT –to 192.168.0.1

 

http://blog.csdn.net/bill_lee_sh_cn/article/details/4401896

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s