当计算机需要通过vpn建立拨号连接另外一个网络时,默认情况下,网络包将全部从新建的vpn隧道通过。
如图:
上图111.111.111.111为互联网网关;10.0.0.1为内部vpn网关(地址均为示意ip,不是真实ip)。
这种路由模式下,所有流量均经过vpn通过,包括与vpn对方网络通讯及互联网通讯。当我们同时需要访问内部资源与互联网资源时(如访问办公资源、同步文件、更新病毒库、系统补丁下载),会造成两种流量同时挤占在一条并不宽裕的通道,特别是当网管对隧道进行了流量限制时这种缺陷会更加明显,vpn隧道带宽不够,而之外的宽带带宽无法利用而浪费,最终造成访问办公资源非常慢。
在windows系统中,自带了路由更改工具:route.exe。
其中增加路由的命令为:
route add 0.0.0.0 mask 0.0.0.0 111.111.111.111 metric 2
路由删除命令:
route delete 0.0.0.0
路由查看命令;
route print (route print -4 win vista/7/2008及以上版本系统);
利用这些基本命令,编制一个服务进程,完成以下功能:
1、列出当前路由;
2、若发现有两个0.0.0.0默认路由,一个vpn内网网关,则已经建立了vpn拨号,进入自动优化阶段;
3、自动优化步骤:
3.1 删除两个0.0.0.0默认网关;
3.2 增加到达内网的路由网关为vpn隧道网关
3.3 增加0.0.0.0 的网关为互联网网关。
最终路由列表为:
其中:10.0.0.0,172.0.0.0为内网网段。
软件采用.net 2.0 平台开发。以服务方式运行。