Implement NAT via iptables

DMZ ( demilitarized zone ) 和 Virtual server 是NAT ( Network Address Translation ) 两种不同层次的实现.


DMZ 技术是将 DMZ主机的全部端口开放给网关外部访问,即当外部网络访问该网关IP(任何端口/服务, 例如80端口的httpd服务),该网关将数据包转给DMZ主机(访问的就是DMZ主机的网页)。


Virtual server 与DMZ类似,但它比DMZ控制得更详细,必须详细指明相应的协议和端口/服务(例如下面实例中的 -p tcp --dport 80),当配置的是80/httpd,只是将从网关80端口来的包转发到指定的Virtual server主机(访问的是Virtual server的网页,此时Virtual server就是Http server),当配置的是23/telnetd 转发的只是23端口的包。

以下是DMZ和Virtual server的配置实例:

环境说明:
router/gate-way wan interface: eth2 172.16.15.55, netmask: 255.255.224.0
router/gate-way lan interface: eth0 (briged to br0), netmask: 192.168.1.0/24

interal device/pc address: 192.168.1.25


DMZ host is192.168.1.25:

iptables -t nat -A PREROUTING -i eth2 -j DNAT --to-destination 192.168.1.25
iptables -I FORWARD 1 -i eth2 -d 192.168.1.25 -j ACCEPT
这样 router/gate-way的wan端不管是以172.16.15.55:80还是172.16.15.55:23等端口,访问的都是内部 192.168.1.25 上的相应服务。


Virtual server is httpd server in lan side:

iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j DNAT --to192.168.1.25
iptables -I FORWARD 1 -i eth2 -p tcp -d 192.168.1.25 -j ACCEPT
如果想不影响本地网页的浏览,可以改用别的端口(8000)作为内部服务的访问(端口映射):

iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 8000 -j DNAT --to 192.168.1.25:80
iptables -I FORWARD 1 -i eth2 -p tcp -d 192.168.1.25 --dport 80 -j ACCEPT
这样router/gate-way的wan端以172.16.15.55:80仍然可以访问router/gate-way的配置网页,以172.16.15.55:8000就可以访问192.168.1.25的配置网页了。


可以看出DMZ和Virtual server做的都是DNAT,即从wan口访问router/gate-way的某服务端口,其实是向router/gate-way内部网络的某设备/pc上的相对应的服务。且只能是wan端的客户访问lan端的服务才有这种端口转发/端口映射的关系,lan端的客户以router/gate-way的wan端地址是访问不了lan端的服务的(如果要实现此功能,也即所谓的NAT loopback的功能,是完全没问题的,只不过要做一下SNAT的iptables命令)。

//TODO


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值