一种可编程多拨号路由出口寻访系统的实现方法与流程

文档序号:11732028阅读:251来源:国知局
本发明涉及一种可编程多拨号路由出口寻访系统的实现方法,具体来说是,用户或者应用在具备多条vpn线路的情况下,能够通过本发明实现的接口方案,使用这些专用出访线路。
背景技术
::随着科技的发展,现在服务器的性能越来越快,我们的程序执行速度也越来越快,服务器的出访ip单一变成了数据采集的一个瓶颈,我们需要越来越多的访问出口,来并行实现我们的大数据采集需求。pptp拨号技术是获得多个出访ip的一个技术实现,但是如何做到这些多个出访vpn线路能够并行复用,并且可以给后台程序实现轻松调用,变成了我们需要解决的一个问题。由于vpn拨号之后,会分配到一条专属的出访线路,如图1所示,如何控制这条出访线路,传统的做法是根据不同的域名解析后的ip地址,通过在静态路由表上添加出访映射的方式来实现,例如当用户访问域名为a站点的时候,server端会路由处理到pptp拨号后的ppp0线路出访;当用户访问域名为b站点的时候,server端会路由处理到pptp拨号后的ppp1线路出访。这种实现方式,使得server端需要处理大量的静态路由信息来控制域名的转发,而且固定某个站点出访只能使用单个指定的vpn出访接口。还有一个最大的限制是,需要后台程序对出访域名进行枚举,不能支持随意域名访问的访问方式,使得接口的通用访问性不强。随着虚拟技术的发展,在单台服务器上实现多个虚拟机已成为了可能,新的虚拟技术实现的工作模式也随着产生,如图2所示。首先,在vps(虚拟主机)上实现pptp拨号,每个虚拟机独立一条vpn专用线路。然后,应用通过vps提供的内网地址实现外部网络的访问和调用。这种方案可以实现链路的智能调配,但是由于虚拟架构对硬件的要求比较高,有多少个vpn专用线路就需要多少个vps主机,明显此方案不太合适大批量的vpn拨号并行实现。因此如何做到这些多个出访vpn线路能够并行复用,并且可以给后台程序实现轻松调用,成为业界亟需解决的一个问题。技术实现要素:针对现有技术的缺点,本发明中使用了一些互联网的成熟开源技术,来探讨并实现可编程多拨号路由出口寻访系统的其中一种可持续的解决方案,只需要利用后台程序多次拨号,就可以通过选择不同的代理ip接口访问,获得多个并行的vpn出访线路隧道,这些出访vpn线路能够并行复用,并且可以给后台程序实现轻松调用。为了实现上述目的,本发明提供了一种可编程多拨号路由出口寻访系统的实现方法,其包括如下步骤:s1、启动后台应用;s2、创建vpn链路,数据包经代理请求接口进行传输,通过squid进行转发,加入数据包标志,并向后台应用提供vpn的初始化信息;s3、进行拨号,加入数据包标志的数据包通过iptables选择端口出访,返回vpn链路的出访地址;s4、通过后台应用对代理请求接口进行部署。本发明中,代理请求接口接收后端应用发送的web请求,提供了一种显式的接口,给后端的程序去调用,接口获得数据后,还要能够判断数据的不同到访。通过创建新的vpn链路,向后台应用提供vpn的相关信息,在通过squid转发过程中,加入数据包标志mark,这个mark标志,能够跟操作系统ip层直接交互。当加入数据包标志mark的数据包通过iptables时,iptables会根据不同的数据包标志选择不同的ppp端口出访。进一步地,后端应用中,使用控制器对已经创建的接口进行自动化部署,便于后端程序控制拨号链路的选择以及负载的均衡。根据本发明另一具体实施方式,步骤s2中的初始化信息包括vpn的唯一标志名称、vpn的远程服务器地址、vpn的拨号账号和拨号密码,当后台应用获得这些信息后,即可获得创建成功的vpn的唯一名称标志,进而传递给后端程序。根据本发明另一具体实施方式,步骤s2进一步包括步骤s21:后台应用获取初始化信息后,服务器添加用于监听初始化信息对应的vpn链路的代理端口。后台应用通过访问不同ip的该代理端口,就可以获得对应vpn出访线路的访问隧道。根据本发明另一具体实施方式,步骤s2中代理请求接口为内网ip。操作系统平台上,ip绑定是一种简单易行的实现方式,那么后端应用的请求,可以通过内网ip的不同调用请求,来实现给不同的数据包做mark标志。例如,当web代理请求是通过10.11.1.0ip段访问过来的请求,通过squid转发,并给数据包加入mark0x1的标志,而当web请求是通过10.11.2.0ip段访问过来的请求,则加入mark0x2标志,同理,不同的ip访问请求,加入不同的访问标志。根据本发明另一具体实施方式,步骤s3进一步包括步骤s31:后台应用通过不同ip和该代理端口获得对应的vpn出访线路的访问隧道。这样,只需要通过后台程序进行多次拨号,就可以通过不同的接口访问,获得多个并行的vpn出访线路隧道。根据本发明另一具体实施方式,步骤s3进一步包括步骤s32:当拨号完成后,后台应用会启动用于验证拨号的是否成功后端程序,其进一步发出访问外部ip的请求,如果获取外部ip成功,说明该请求已经成功的由此vpn链路出访,否则,出访失败。根据本发明另一具体实施方式,步骤s1中后台应用还包括对系统空间进行净化的优化程序,该优化程序,可以合理的释放使用空间,方便后续帐号的添加和响应。根据本发明另一具体实施方式,优化程序包括删除、断开程序。根据本发明另一具体实施方式,步骤s4中后台应用通过shell脚本进行代理请求接口的部署及拨号线路的选择。通过该shell脚本,可以更好的与后台应用进行衔接,提高后台应用的效率。本发明中使用了一些互联网的成熟开源技术,通过shell脚本提出的可编程多拨号路由出口寻访系统的其中一种可持续的解决方案,只需要利用后台程序控制多次拨号,就可以通过不同的ip接口访问,获得多个并行的vpn出访线路隧道,且实现了与后台程序之间的连接关系,方便后台程序进行调用。根据本发明另一具体实施方式,步骤s3中数据包通过iptables的iproute2功能选择端口出访。例如,当标记为mark0x1的数据包通过iptables传输时,iptables会选择ppp1端口出访,而标记为mark0x2的数据包通过iptables传输时,会选择ppp2端口出访,依次类推,不同的mark标志总能找到相对应的ppp端口出访。与现有技术相比,本发明具备如下有益效果:1、同一台linux机器支持多个网络运营商上网帐号的同时混拨;2、上层应用程序可以对使用的链路(出口ip)进行选择;3、通过定时拨号脚本可以切换ip。下面结合附图对本发明作进一步的详细说明。附图说明图1是现有技术的传统的控制vpn出访线路的示意图;图2是现有技术的vps提供的内网地址实现外部网络的访问和调用的示意图;图3是实施例1中squid的示意图;图4是实施例1的iptables的示意图;图5是实施例1的vpn链路与后台应用的使用交互示意图。具体实施方式实施例1本实施例提供了一种可编程多拨号路由出口寻访系统的实现方法,如图5所示,包括如下步骤:s1、启动后台应用。该步骤用于启动后台应用,为创建vpn链路提供合理的环境,并控制后台程序启动,完成创建前的初始化进程。s2、创建vpn链路,数据包经代理请求接口进行传输,如图3所示,通过squid进行转发,加入数据包标志,并向后台应用提供vpn的初始化信息。具体的,初始化信息包括vpn的唯一标志名称、vpn的远程服务器地址、vpn的拨号账号和拨号密码,代理请求接口为内网ip。后台应用获取初始化信息后,服务器添加用于监听初始化信息对应的vpn链路的代理端口。例如:一条vpn链路的名称标志是con10,那么服务器会添加一个监听在10.11.10.70段的代理端口(squid默认是3128),那么后台应用程序就可以访问10.11.10.70:3128这个端口,获得con10对应的ppp10端口的vpn出访线路的访问隧道。s3、进行拨号,如图4所示,加入数据包标志的数据包通过iptables选择端口出访,返回vpn链路的出访地址。具体的,数据包通过iptables的iproute2功能选择端口出访;后台应用通过代理端口获得对应的vpn出访线路的访问隧道;当拨号完成后,后台应用会启动用于验证拨号的是否成功后端程序,其进一步发出访问外部ip的请求,如果获取外部ip成功,说明该vpn链路出访成功,否则,出访失败。s4、通过后台应用对代理请求接口进行部署。具体的,后台应用通过shell脚本编程,可以控制代理请求接口的部署、拨号线路的选择、删除和断开闲置vpn链路的优化程序。虽然本发明以较佳实施例揭露如上,但并非用以限定本发明实施的范围。任何本领域的普通技术人员,在不脱离本发明的发明范围内,当可作些许的改进,即凡是依照本发明所做的同等改进,应为本发明的范围所涵盖。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1