ROS软路由和VPN服务器组网备忘

突然想起之前某客户要求组建的公司网络,翻了半天,找到草稿图,现整理出来做个备忘,网络情况主要是分为出租户住宅网络和公司办公运营网络,然后通过ADSL宽带连接互联网。

之前的网络构架比较简单,直接是一个企业级路由和一个企业级交换机,然后住户和公司所有的计算机都连接在路由和交换机上,同时在路由上开启了DMZ主机,然后将独立的电脑作为公司的服务器,提供VPN、数据库以及OA等相关业务操作,后来运营一段时间后问题渐渐凸显出来,首先随着住户的增加,不良的带宽使用量上升,大量的P2P应用严重影响了公司外部VPN对业务数据的访问,在开启路由器QoS功能后有一定程度的缓解,但是让住户和公司采用同一个网络毕竟带来了种种不安全的因素。

通过以上考虑,我设计出一个低成本的网络结构方案,当然这个仅供参考,目前尚未实施,可能会有其他问题。

首先将住户的网络独立出去,我建议采用单独的服务器作为ROS软路由,然后在住户客户端采用PPPoE拨号进行网络管理,同时分配一段网络地址池,将ROS挂接到企业路由上,然后所有住户流量经过ROS合理控制后进入企业路由然后经ADSL出口。另外一部分是公司网络部分,公司网络部分采用直接挂接企业路由的办法,同时将服务器和备份存储NAS也一并挂上,同时将服务器作为VPN通道对外开启(当然如果路由器支持VPN功能则更好),然后外部客户端通过VPN验证后登入公司内部网络。

大概画了个图:

继续阅读“ROS软路由和VPN服务器组网备忘”

VPN同时连接并使用内网和外网资源的办法

公司内部网络通过VPN连接,同时客户端还想使用外网资源,但实际发现连接内网后,外网将无法正常访问,这是因为VPN的服务器端接管了你的默认网关,等于说默认的流量全部走VPN服务器了,这个给内网和外网的使用带来了不便,更重要的是加重了服务器的负担,如何才能在连接上VPN内网后同时能使用内网和外网资源呢?其实很简单,对VPN拨号项目右击属性,切换到网络选项卡,然后选中Internet 协议 (TCP/IP),单击属性,在Internet 协议 (TCP/IP)属性对话框中,单击高级,取消“在远程网络上使用默认网关”这个勾,全部确认保存即可。

VPN同时使用内网和外网资源.png

L2TP预共享密钥解决内网VPN连接问题

原文发表于2008年9月30日

阅读时请注意,本文讨论的是一种客户端到服务器端的网络技术,主要应用于企业内部网络,并不提供私服、外挂、代理VPN的相关信息。

大概是一个月前的事情了,主要是一个VPN解决方案,服务器配置是Windows 2003 + ISA 2006,单网卡连接路由上网,设置好路由并通过ISA的配置顺利启用了PPTP的VPN,通过客户端ADSL拨号,成功连接,本来以为事情这样就结束了,事实上问题还没有解决。在另外一个客户端中启用连接,停留在验证用户名和密码阶段,然后就发生错误,详细如下。

错误 721 : 远程计算机没反应。

我发现两个客户端就是网络环境不同,这个客户端位于一个局域网中。有问题百度一下,有个解决方案就是修改注册表的,本来以为可以轻松解决这个问题的,但我又想错了,我开始怀疑是这个客户端所在局域网搞的鬼。实际上通过服务器的防火墙监视发现,服务器已经启用了该PPTP连接,但事实上有个数据包不能正常抵达客户端,所以造成这个错误。进一步上网查询,得知这个数据包很有可能是GRE协议,这个协议由于客户端局域网的限制未能正常抵达,所以造成这个错误。本来以为这是个个别现象,回到学校,使用校园网,于是我又尝试连接VPN,一样的错误!回家后使用ADSL上网,连接该VPN,一切正常。断开后启用虚拟机,打开一个虚拟的Windows XP系统,建立VPN连接,拨号,同样的错误!于是我想貌似通常的局域网内部机器都不能正常拨号,若要想正常拨号就必须要去修改局域网配置!但一般修改自己局域网配置是可以的但是修改别人的局域网配置就难了。这个问题困扰了我很多天。

我在PPTP连接上越陷越深,偶然的一次看到某论坛上一位朋友遇到和我一样的问题,据他说使用L2TP可以实现内网访问VPN,我似乎看到了救命稻草,于是我便开始配置ISA的L2TP访问,但有个问题是L2TP必须使用IPSec然后就是什么证书的,比较麻烦,幸好捷径还是有的,IPSec可以预共享密钥。

服务器端设置

服务器端IP地址分配

分配静态地址,DHCP配置有点麻烦。

服务器端身份验证

设置验证方式,注意这里务必勾选“未加密密码(PAP)(U)”和“允许L2TP连接自定义IPSec策略(L)”并且设置好预共享密钥。

服务器端启用VPN访问

启用客户端访问。

服务器端协议

启用PPTP和L2TP/IPSec,当然你不需要PPTP可以先关闭它。

客户端和服务器端设置

设置完毕后,启用连接,无法连接。由于本地计算机没有证书等一般安全措施,所以在使用VPN L2TP方式进行连接时必然会遇到类似于“vpn 错误789: L2TP 连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误”这样的错误,即使设置了IPSec预共享密钥也无济于事,这种情况经常出现在一些中小企业在不能使用PPTP方式而必须采用L2TP方式访问企业资源的情景下,原来服务器和客户端都要求使用证书这种加密模式,怎样才能让它们认可预共享密钥连接呢?其实微软已经给我们方法了,修改注册表。

微软文章:http://support.microsoft.com/kb/310109/zh-cn

其实你可以使用下面命令很简单的完成操作

reg add “HKLM\SYSTEM\CurrentControlSet\Services\RasMan\Parameters” /v ProhibitIPSec /t REG_DWORD /d 1

客户端取消证书加密

完成操作后请重启服务器和客户端。

重启完毕下面只要修改客户端就足够了。

客户端设置

修改先前的VPN连接。

客户端拨号连接

打开连接对话框,点击属性。

客户端选择VPN类型

切换到“网络”选项卡,并选择VPN类型。

客户端安全设置

切换到“安全”选项卡,单击“IPSec设置(P)…”

客户端设置IPSec

输入刚才设定的密钥,确认。

确认所有对话框,这时输入VPN用户名和密码,登录,成功!问题解决!

希望我的这篇文章对您有所帮助。欢迎交流,请在评论中留下您宝贵的意见。

注意:貌似由于服务器端验证方式的设置原因,这里预共享密钥IPSec可以不用设置,原文不当,给大家带来不便还望见谅。