iptables中DNAT和SNAT轉發的配置方法

1.一對一流量徹底DNAT服務器

首先說一下網絡環境,普通主機一臺作防火牆用,網卡兩塊網絡

eth0 192.168.0.1  內網tcp

eth1 202.202.202.1 外網spa

內網中一臺主機 192.168.0.101.net

如今要把外網訪問202.202.202.1的全部流量映射到192.168.0.101上code

命令以下:blog

#將防火牆改成轉發模式  
echo 1 > /proc/sys/net/ipv4/ip_forward  
iptables -F  
iptables -t nat -F  
iptables -t mangle -F  
iptables -X  
iptables -t nat -X  
iptables -t mangle -X  
  
iptables -A INPUT -i lo -j ACCEPT  
iptables -A OUTPUT -o lo -j ACCEPT  
  
iptables -P INPUT ACCEPT  
iptables -P OUTPUT ACCEPT  
iptables -P FORWARD ACCEPT  
  
iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT --to-destination 192.168.0.101  
iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT --to 192.168.0.1  

2.多對多流量徹底DNATip

說是多對多,實際上這裏的配置是指定了多個一對一get

環境:io

eth0 192.168.0.1  內網

eth1 202.202.202.1 、202.202.202.2 外網

內網中2臺主機 192.168.0.10一、192.168.0.102

如今要把外網訪問202.202.202.1的全部流量映射到192.168.0.101上,同時把把外網訪問202.202.202.2的全部流量映射到192.168.0.102上

這裏順便提一下如何爲網卡配置多個IP

ifconfig eth1:1 202.202.202.2 netmask 255.255.255.0 up  

命令以下: 

#將防火牆改成轉發模式  
echo 1 > /proc/sys/net/ipv4/ip_forward  
iptables -F  
iptables -t nat -F  
iptables -t mangle -F  
iptables -X  
iptables -t nat -X  
iptables -t mangle -X  
  
iptables -A INPUT -i lo -j ACCEPT  
iptables -A OUTPUT -o lo -j ACCEPT  
  
iptables -P INPUT ACCEPT  
iptables -P OUTPUT ACCEPT  
iptables -P FORWARD ACCEPT  
  
iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT --to-destination 192.168.0.101  
iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT --to 192.168.0.1  
  
iptables -t nat -A PREROUTING -d 202.202.202.2 -j DNAT --to-destination 192.168.0.102  
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上

命令以下:

#將防火牆改成轉發模式  
echo 1 > /proc/sys/net/ipv4/ip_forward  
iptables -F  
iptables -t nat -F  
iptables -t mangle -F  
iptables -X  
iptables -t nat -X  
iptables -t mangle -X  
  
iptables -A INPUT -i lo -j ACCEPT  
iptables -A OUTPUT -o lo -j ACCEPT  
  
iptables -P INPUT ACCEPT  
iptables -P OUTPUT ACCEPT  
iptables -P FORWARD ACCEPT  
  
iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.101:80  
iptables -t nat -A POSTROUTING -d 192.168.0.101 -p tcp --dport 80 -j SNAT --to 192.168.0.1  
  
iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport 25 -j DNAT --to-destination 192.168.0.102:25  
iptables -t nat -A POSTROUTING -d 192.168.0.102 -p tcp --dport 25 -j SNAT --to 192.168.0.1  
  
iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport 110 -j DNAT --to-destination 192.168.0.102:110  
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

相關文章
相關標籤/搜索