您的位置:首页 > 运维架构 > Linux

Linux里的防火墙(中):使用iptables实现DNAT和SNAT

2011-08-21 17:28 751 查看
SNAT(源地址转换) 和 DNAT(目标地址转化)都是为了解决网络地址不足而演变出的技术。

相关概念:

SNAT:源地址转换,顾名思义,就是为了将ip数据包里的源地址替换成我们希望替换掉的地址。

DNAT:目标地址转换,是为了将IP数据包中的目标地址转换成我们希望替换掉的地址。

它们的应用:

SNAT

(一)想象一下,一个公司申请到了一个公网Ip,现在公司内有30台电脑,都处于192.168.0.0网段,现在希望访问

互联网,由于192网段属于私有地址,无法在公网上公开。那么现在唯一的方法就是利用这一个公网地址来实现

30台电脑来访问互联网。那么就需要

1 )网关一个,配置公网ip假设是64.152.22.14

2)通过集线器或者交换机将192网段连接到1)上的网关上

3)通过网关,实现SNAT将所有192网段的请求都转变为64.152.22.14的请求。

那么使用iptables怎么实现?

分析:

1)需要用到nat表

2)需要在POSTROUTING里面设置

iptables实现:

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source 64.152.22.14


(二)另一种情况,假如公司是通过ppp拨号上网,这个时候它的外网地址就是动态的,不确定自己的外网地址。那么这个时候,我们需要用到地址伪装,将所有的内网地址都自动伪装成动态外网地址

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE


DNAT

(一)假设一个公司只有一个外网ip,这个时候,它内部有l两台服务器192.168.0.1 192.168.0.2,分别是http, mysql,希望将这两台服务器都共享到外网,那么这个时候就需要根据这两个服务的端口的不同来配置DNAT

分析:1)HTTP的端口80 MYSQL的端口3306

2)需要用到net表

3)需要在PREROUTING里设置

iptables实现:

iptables -t nat -A PREROUTING -d 64.152.22.14 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1
iptables -t nat -A PREROUTING -d 64.152.22.14 -p tcp --dport 3306 -j DNAT --to-destination 192.168.0.1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: