DMZ是英文“demilitarized zone”的缩写,中文名称为“隔离区”,也称“非军事化区”。它是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区,这个缓冲区位于企业内部网络和外部网络之间的小网络区域内,在这个小网络区域内可以放置一些必须公开的服务器设施,如企业Web服务器、FTP服务器和论坛等。今天我们要介绍的,是通过配置路由器的DMZ功能,使得P2P软件在无法通过UPNP等穿透路由器时能够透过路由器,从而提高服务的质量(如在电驴中获得HighID)。

关于如何使用UpNp端口映射来穿透路由器,大家可以看看NONOZONE的这篇文章

一个案例

现有一个网络(就是我们家的……),其网络拓补图如下,其中:无线路由器1通过PPPOE访问internet,无线路由器2与无线路由器1通过桥接的方式连接。无线路由器1上运行的服务有:DHCP(分配IP地址),访问控制,防火墙。无线路由器2上未配置任何服务(相当于一个交换机)。电脑1,电脑2为安装了windows操作系统的电脑,储存服务器为QNAP的TS-119型NAS(网络储存)服务器,上面配置了Http服务,FTP服务,MLDonley(一个类似电驴的下载工具),BT下载等服务。电脑1,电脑2上的P2P服务均能通过UPNP穿透路由器,储存服务器则不能,Mldonkey一直为LowID。

network_old

设置路由器的DMZ服务,一定要在作为网关(也就是图中的路由器1)上进行,TP-LINK路由器(质量其实并不好,但是能桥接,不桥接的话推荐买网件NERGEAR的)的设置方法如下:登陆尽路由器的后台,在转发规则中找到DMZ主机这个选项(注意下面的UPNP设置,要使用UPNP就在那里设置,具体方法这里不赘述了),在里面写上需要直接与外网通信的主机的内网IP即可。

setting1 dmz

启动了DMZ之后,我们来看看现在这个网络是什么样,DMZ就相当于在整个网络中挖了一条“地道”,使得我的储存服务器能直接和外网通信,而不需要任何的端口转发和端口触发,当然,MLdonkey现在也是HIGHID了。

network highID

启动DMZ服务之后的访问情况

一般个人用户基本用不到转发等服务,但是对于企业来说,路由器的阻隔使得外网的用户无法访问企业内部的网站,论坛等服务。在不启用DMZ的情况下,我们需要通过在路由器中设置来将用户的访问请求转发给指定的服务器,当然,如果用户试图访问未设置转发的端口,将会访问失败:

forward_dmzdisable

而启动了DMZ之后呢,网络的情况就等效于路由器不存在了,所有的访问请求都会发送到设置了DMZ的内网服务器上(如下图中的192.168.X.X),这也就是为什么在上面所展示的这样小型的路由器设置界面中,DMZ主机只能设置一台(或者说是一个IP)的原因。

forward

安全问题

对于企业来说,由于有专业的防火墙等设备,启动了DMZ服务不会对网络整体的安全性造成大的影响,相反,如果遭到入侵,DMZ区中的服务器还可以起到保护内网中计算机的作用。而对于个人用户来说,开启了DMZ服务等于绕过了路由器中设置的防火墙等功能,所以应该格外注意DMZ区中计算机的安全问题。

attack