本发明涉及计算机网络通信技术领域,尤其涉及一种基于ipv6的组网接入方法及系统。
背景技术:
对于校园网、企业网等专用网在接入互联网时,往往为了满足专用网内部用户的不同上网需求,或者线路备份的需要,会向外部接入多个运营商网络。以校园网为例,同时接入的不仅有教育网,还可能有移动、联通、电信等运营商的网络。这里就存在一个问题,当接入不同的网络访问时,就需要使用对应网络分配地址范围的ip地址作为源地址才能实现传输。在ipv4(internetprotocolversion4,互联网协议第4版)时代,一般采用的是nat(networkaddresstranslation,网络地址转换)机制,具体专用网内部主机分配私有ip地址,当报文到达负责nat功能的网关时,nat软件就会将相应的私有ip地址转换成访问对应运营商网络的公有ip地址。
ipv6(internetprotocolversion6,互联网协议第6版)是替代ipv4的下一代ip协议,由ietf(theinternetengineeringtaskforce,互联网工程任务组)主导设计。ipv6的地址长度为128位,因此拥有海量的地址资源,具有快速高效、安全可控的特点,极大地扩展了地址的数量。如上所述,由于ipv4的地址资源匮乏,导致基于ipv4的解决多出口网络接入问题时,只能受限地采用nat机制。但是,单纯依靠nat实现接入,存在加重网关设备的负担,可能还降低访问的速度。在ipv6提供大量地址资源的前提下,亟待提出一种技术方案,可以利用ipv6的优势对现行网络的运行机制进行改进,以提高访问效率。
技术实现要素:
本发明的目的在于提供一种基于ipv6的组网接入方法及系统,解决了现有技术中专用网组网中,在接入多个运营商网络时,访问效率不高、灵活性不足的技术问题。
为了解决上述技术问题,本发明的一种基于ipv6的组网接入方法,包括如下步骤:
用户主机向本地部署的递归dns服务器发起指定域名的第一查询,所述第一查询包括选择访问的运营商网络;
获得所述递归dns服务器返回的第一ip地址,所述第一ip地址为所述递归dns服务器响应于所述第一查询的运营商网络选择确定的对应访问ip地址;
根据所述第一ip地址归属的运营商网络确定匹配的第二ip地址及网关地址,利用所述第二ip地址封装第一报文发送给对应的网关。
作为本发明上述基于ipv6的组网接入方法的进一步改进,所述用户主机在接入网络前,至少分配有归属第一运营商的ipv6地址及归属第二运营商的ipv6地址。
作为本发明上述基于ipv6的组网接入方法的进一步改进,所述用户主机在访问不同的运营商网络时,通过第一网关访问第一运营商网络,通过第二网关访问第二运营商网络。
作为本发明上述基于ipv6的组网接入方法的进一步改进,通过所述第一ip地址的对应地址段确定对应的运营商网络,并确定对应的网关及作为源地址的第二ip地址。
作为本发明上述基于ipv6的组网接入方法的进一步改进,所述用户主机在接收到对应网关的重定向消息时,将对应的第一报文转发至重定向的网关,并修改对应地址段所属网关的目标缓存。
为了解决上述技术问题,本发明的一种基于ipv6的组网接入系统,包括:
查询单元,用于用户主机向本地部署的递归dns服务器发起指定域名的第一查询,所述第一查询包括选择访问的运营商网络;
获取单元,用于获得所述递归dns服务器返回的第一ip地址,所述第一ip地址为所述递归dns服务器响应于所述第一查询的运营商网络选择确定的对应访问ip地址;
发送单元,用于根据所述第一ip地址归属的运营商网络确定匹配的第二ip地址及网关地址,利用所述第二ip地址封装第一报文发送给对应的网关。
作为本发明上述基于ipv6的组网接入系统的进一步改进,所述用户主机在接入网络前,至少分配有归属第一运营商的ipv6地址及归属第二运营商的ipv6地址。
作为本发明上述基于ipv6的组网接入系统的进一步改进,所述用户主机在访问不同的运营商网络时,通过第一网关访问第一运营商网络,通过第二网关访问第二运营商网络。
作为本发明上述基于ipv6的组网接入系统的进一步改进,所述发送单元通过所述第一ip地址的对应地址段确定对应的运营商网络,并确定对应的网关及作为源地址的第二ip地址。
作为本发明上述基于ipv6的组网接入系统的进一步改进,所述用户主机在接收到对应网关的重定向消息时,所述发送单元将对应的第一报文转发至重定向的网关,并修改对应地址段所属网关的目标缓存。
与现有技术相比,本发明的用户主机可以通过与递归dns服务器的配合,及与不同运营商网络对应网关的转发机制,以实现在多运营商网络接入情况下的灵活访问。本发明可以根据用户需求自由选择网络接入方式,灵活性强,上网体验更佳。
结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。
附图说明
为了更清楚地说明本发明实施方式或现有技术的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本发明中记载的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施方式中基于ipv6的组网接入方法流程图。
图2为本发明一实施方式中基于ipv6的组网接入结构示意图。
图3为本发明一实施方式中基于ipv6的组网接入系统示意图。
具体实施方式
以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限定本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法或功能上的变化均包含在本发明的保护范围内。
需要说明的是,在不同的实施方式中,可能使用相同的标号或标记,但这些并不代表结构或功能上的绝对联系关系。并且,各实施方式中所提到的“第一”、“第二”也并不代表结构或功能上的绝对区分关系,这些仅仅是为了描述的方便。
ipv6是下一代互联网核心技术,它相对于ipv4,存在两个基本变化,一方面是从32bit地址长度升级到128bit地址长度,大大扩展了地址空间,为网络的规划与部署提供了弹性的发挥空间,另一方面是增加了ipv6扩展报文头机制,提高了可编程能力,为srv6、bierv6等提供了扩展支持的能力。在本发明实施方式中,充分利用ipv6地址的宽裕性,为专用网中的用户主机分配多个ip地址,不同的ip地址可以来自于不同运营商网络分配的前缀网段中生成,也就是在运营商网络分配的地址范围内。具有多个可配ip地址的用户主机可以根据不同的需要采用不同的ip地址作为源地址进行报文封装,实现不同运营商网络的访问。
如图1所示,本发明一实施方式中基于ipv6的组网接入方法流程图。基于ipv6的组网接入方法,具体包括如下步骤:
步骤s1、用户主机向本地部署的递归dns服务器发起指定域名的第一查询,所述第一查询包括选择访问的运营商网络。具体地,如图2所示,对于在专用网内的用户主机30,可以根据需要访问第一运营商网络11、第二运营商网络12或第三运营商网络13中的web服务器等。在需要访问对应web服务器之前,往往是要从域名查询开始的,因此用户主机在需要访问对应域名的web服务器,首先会查询本地缓存中是否有域名对应web服务器的访问ip地址,优选地,本地缓存中可能存在相同域名下不同运营商网络中web服务器对应的访问ip地址,用户主机可以根据实际的运营商网络的访问需求进行选择,比如,用户主机选择具有足够资费的运营商网络。进一步,如果用户主机在本地缓存中找不到相应的域名匹配结果,就需要向递归dns服务器40发起查询。递归dns服务器40可以是部署在专用网内的dns服务器,其作用是为专用网中的用户主机做出相应的域名解析应答,过程具体是先从递归dns服务器的本地缓存开始查询,如果不存在相应的资源记录,还会向外部的权威dns服务器发起查询,在优选的实施方式中,递归dns服务器还会定期对常用的域名向权威dns服务器进行预查询,以提高本地缓存的命中率。为了满足不同运营商网络的访问需求,对于获取来自权威dns服务器返回的相应访问ip地址时,需要获得尽可能多对应域名的访问ip地址,特别是部署在不同运营商网络的访问ip地址。因此,递归dns服务器还会采用不同运营商网络分配的ip地址向权威dns服务器发起查询,权威dns服务器会根据查询节点的ip地址来反馈适合不同运营商网络访问的对应网络ip地址。
如上所述,用户主机当需要发起对应域名的访问却没有相应域名的缓存资源记录时,就会向递归dns服务器发起指定域名的第一查询,第一查询用于告诉对应递归dns服务器需要查询资源记录的域名,进一步,第一查询还包括选择访问的运营商网络,即告诉递归dns服务器返回对应运营商网络的访问ip地址,这样用户主机才可以按照自己的入网需求来访问最佳的web服务器。向递归dns服务器发起选择访问运营商网络的查询信息,可以直接从用户主机采用的源地址直接反映出来,比如用户主机拥有不同运营商网络的ip地址,当选择哪个运营商网络时就采用哪个运营商网络的ip地址封装第一查询的报文。在更多的实施方式中,用户主机和递归dns服务器处于同一链路中,有时用户主机在未向外部发起访问时,暂时并没有配置相应的运营商网络分配ip地址,如果用户主机采用的是链路本地地址等就不能直接反映出选择访问的运营商网络,此时可以直接将相应查询信息嵌入到dns查询报文中。在具体的实施方式中,可以在标准的dns报文格式中嵌入dns扩展机制,即在附加资源记录区嵌入伪资源记录,其伪资源记录固定部分包括name字段(目前可以为空)、type字段(伪资源记录的类型编号,可以分配为41,2字节)、class字段(发送方的udp有效负载大小,2字节)、ttl字段(扩展的dns消息头部,对标准dns报文头部的返回状态码标志扩展8比特,以表示更多的返回类型,还包括版本字段和z标记,共4字节)、rdlen字段(标记可变部分的长度,2字节)。可变部分则是rdata字段(用于存放伪资源记录的具体内容),其内部的格式包括option-code字段(扩展协议代码,用于区分不同的扩展协议,共2字节)、option-length字段(标记option-data字段的长度,2字节)、option-data字段(用于存放扩展查询交互的信息),其中,在option-data中存放具体的选择访问的运营商网络,比如分别对不同的运营商进行编号,根据需要的运营商网络填入相应的编号。相应地,递归dns服务器也需要支持相应的dns扩展机制,当接收到dns查询报文时,不仅要对查询问题区等标准字段的查询内容进行提取分析,还要对附加资源记录区中,嵌入的伪资源记录中的运营商网络选择信息进行提取分析,从而在应答时还要根据选择的运营商网络进行定向响应。
步骤s2、获得所述递归dns服务器返回的第一ip地址,所述第一ip地址为所述递归dns服务器响应于所述第一查询的运营商网络选择确定的对应访问ip地址。在步骤s1中向递归dns服务器发起查询后,则会在正常情况下得到递归dns服务器的dns应答,其中包括指定域名的访问ip地址,即第一ip地址,用户主机可以通过第一ip地址访问网络中的web服务器。需要说明的是,递归dns服务器返回的第一ip地址按照查询要求是应该返回对应选择运营商网络的服务器访问ip地址。但是在具体的实施方式中,存在两种可能导致第一ip地址并不是选择运营商网络的访问ip地址,原因其一可能是运营商网络的选择信息并没有被对应的递归dns服务器识别到,递归dns服务器采用默认的应答方式返回访问ip地址;其二可能是选择的运营商网络中并不存在对应域名的web服务器,此时递归dns服务器返回的是选择的运营商网络访问其他运营商网络中服务最佳的服务器选项或者是默认的访问ip地址,因此,在步骤s3中并没有对第一ip地址直接进行采用,以下将详述。
步骤s3、根据所述第一ip地址归属的运营商网络确定匹配的第二ip地址及网关地址,利用所述第二ip地址封装第一报文发送给对应的网关。通过步骤s2获得域名对应的第一ip地址后,就可以向第一ip地址所在的服务器实施访问。具体地,需要对第一ip地址的前缀对应位数的地址段进行分析,以确定第一ip地址到底归属于哪个运营商网络,从而才能配置相应的访问方式。由于ipv6地址数量巨大,且前期规划合理,所以ipv6地址的分配不像ipv4地址那么松散,因此ipv6地址可以成地址段的反映归属的运营商或组织。相应地,就是分析第一ip地址的前缀网段或者更加精确位数的地址段,通过分析地址段与对照地址段的匹配及映射关系来确定归属的运营商,对照地址段可以是对历史访问的ip地址聚合的动态结果,比如多个ip地址都是确定归属对应运营商并实施过访问,通过聚合相同位数的前缀获得相应的对照地址段,也可以是事先维护好的不同运营商网络的对照地址段数据库。
当确定了第一ip地址归属的运营商网络,就可以选择转发到外部网络的方式。如图2所示,用户主机30在连入外部网络时,可以通过第一网关21去访问第一运营商网络11,通过第二网关22访问第二运营商网络12,通过第三网关231或第三网关232访问第三运营商网络13。因此,走哪个网关进入哪个网络,取决于用户主机选择访问的网络和/或第一ip地址归属的网络。具体地,当第一ip地址归属于第一运营商网络,此时就可以采用第一运营商网络的ip地址作为源地址,并确定下一跳的网关地址。需要补充的是,为了使用户主机随时访问不同的运营商网络,可以为用户主机分配归属不同运营商的ipv6地址,即用户主机可以同时具有第一运营商、第二运营商、第三运营商网络的ipv6地址,采用哪一个ipv6地址完全由需要访问的网络决定。ipv6地址的分配是由运营商网络下发给直连网关并存储的前缀网段决定,其可以通过dhcp(dynamichostconfigurationprotocol,动态主机配置协议)来实现分配,亦或者通过前缀网段结合eui-64地址生成,进一步可以是经过随机处理过接口标识符的临时地址。
在具体的实施方式中,在用户主机中设置有目标缓存的路由表,目标缓存中包括不同运营商网络的不同地址段,及对应的下一跳地址,即相应的网关。当用户主机根据第一ip地址需要访问时,比如将第一报文发送给第一ip地址所在的服务器,在发送前将第一报文的源ip地址设置为对应的第二ip地址,如上所述,第二ip地址是根据第一ip地址所属的运营商网络确定,同时还可以在目标缓存中确定到对应的网关,即将第一报文封装后转发给的下一跳网关。
在上述实施方式中,主要描述了查询获得的第一ip地址所属运营商网络与选择的运营商网络一致的情况,如上所述,也会存在不一致的情况,此时就会存在实际访问的网络是以第一ip地址归属的网络为准还是以选择的运营商网络为准。以第一ip地址归属的运营商网络为准,即可以采用上述的实施方式,直接配置对应运营商网络的第二ip地址,然后根据查询的网关地址进行转发。但是在部分存在资费约束的条件下,必须采用选择的运营商网络进行访问时,此时第二ip地址及网关地址是根据选择运营商网络来确定,同样利用获得的第二ip地址封装第一报文发送给对应的网关。优选地,可以利用ipv6的扩展报文头机制嵌入强制关闭重定向功能的信息,这样对应网关根据强制关闭重定向功能的信息,即使发现本地链路上存在更接近目标的可用网关,也不会发出重定向消息。总之,用户主机可以通过设置策略,来确定以第一ip地址归属的运营商网络实施报文发送或以选择访问的运营商网络实施报文发送。
在更多的实施方式中,还会存在查询获得的第一ip地址所属运营商网络和选择的运营商网络虽然一致,但是并没有相应接入的运营商网络或者在目标缓存中找不到相应的下一跳网关地址。相应地,可以选择默认网关或者随机选择本地链路中的网关进行发送,根据选择网关直连的网络确定第二ip地址,利用确定的第二ip地址封装第一报文发送给对应的网关。在理想的情况下,第一报文可能会被对应的网关转发到对应的网络中,但是第一ip地址所属的网络在链路中可能是存在网关直连或者存在更优的网关连通相关网络,此时接收第一报文的网关可能基于自身的判断发送重定向消息,以告诉对应用户主机最佳的转发方式。用户主机在接收到对应网关的重定向消息时,将对应的第一报文转发至重定向的网关,如果确定的第二ip地址前缀网段与重定向网关对应的前缀网段不一致,还会根据重定向网关直连网络重新确定第二ip地址,还会在目标缓存中修改下一跳网关信息,从而可以在对应第一ip地址再次访问时,从目标缓存中确定无需重定向的下一跳网关地址。
关于重定向功能,并不以上述实施方式为限,重定向功能的支持也可以发生在目标缓存中的某个网关已经在链路中发生了变化或者连接的外部网络状态发生了变化,通过重定向可以使第一报文发送给更加合理的网关,从而发送到外部网络中,以实现相应服务器的访问。以图2为例,对于直连第三运营商网络13的第三网关231及第三网关232,在第三运营商网络中可能存在服务器a,如果第三网关232到服务器a的路由度量更小,而在目标缓存中存储的下一跳是第三网关231,那么第一报文就会被发送给第三网关231。而第三网关231在接收到第一报文时,发现第一报文的最佳首跳地址应该是第三网关232,此时就会向始发主机发送重定向消息,始发主机可以根据重定向消息重新将第一报文发送给第三网关232,并更新本地的目标缓存。当对应用户主机再次发送第一报文,查询到目标缓存中的下一跳网关是第三网关232时,就会将第一报文直接发送给第三网关232。
如图3所示,本发明一实施方式中基于ipv6的组网接入系统示意图。基于ipv6的组网接入系统,具体包括查询单元u1、获取单元u2及发送单元u3,各单元之间配合基于指定域名对应ip地址所属网络,将相应的第一报文发送出去,可实现进一步的访问操作。
查询单元u1,用于用户主机向本地部署的递归dns服务器发起指定域名的第一查询,所述第一查询包括选择访问的运营商网络。用户主机作为实现上网的终端,需要通过域名进行一系列的访问流程。一般需要借助递归dns服务器获得域名对应的访问ip地址,因为ip地址才是网络上标识站点的数字地址。对于接入多个运营商网络的专用网,还可能存在接入特定网络的要求,因此在向递归dns服务器发起指定域名的第一查询时,第一查询还包括用户主机选择访问的运营商网络,用户主机可以基于自身的访问需求来选择需要访问的运营商网络。选择访问的运营商网络信息可以通过用户主机的源ip地址来判别,或者还可以参照基于ipv6的组网接入方法中的dns扩展机制来嵌入相应的第一查询信息。
获取单元u2,用于获得所述递归dns服务器返回的第一ip地址,所述第一ip地址为所述递归dns服务器响应于所述第一查询的运营商网络选择确定的对应访问ip地址。递归dns服务器可以根据第一查询的内容做出相应的反馈,获取单元u2通过监听来获取递归dns服务器返回的第一ip地址,第一ip地址就是第一查询中指定域名对应服务器的访问ip地址,第一ip地址根据选择访问的运营商网络要求,响应的是对应运营商网络所属的域名对应服务器地址。但是也会存在返回第一ip地址所属运营商网络,与第一查询中选择访问的运营商网络不一致,因此可以通过发送单元u3对获取到的第一ip地址进行相应的判断。
发送单元u3,用于根据所述第一ip地址归属的运营商网络确定匹配的第二ip地址及网关地址,利用所述第二ip地址封装第一报文发送给对应的网关。发送单元u3通过对第一ip地址的对应地址段进行分析,通常可以是前缀网段,来判断所属的运营商网络,从而确定用户主机采用对应运营商网络的源ip地址,即第二ip地址,这是由于源ip地址通常要使用实际访问网络分配的地址范围,从而才可以适应设置的单播反向路径转发。利用对应运营商网络确定的第二ip地址封装第一报文发送给与对应运营商网络直连的网关,相应的网关地址是通过如上所述的目标缓存来确定。
根据运营商网络确定的第二ip地址是对应用户主机事先分配的ip地址,对于可以访问多个运营商网络的用户主机而言,事先会分配多个ipv6地址,至少包括归属第一运营商的ipv6地址及归属第二运营商的ipv6地址,获取单元u3会根据实际需要访问的网络来从中确定相应的第二ip地址。进一步,用户主机在访问不同的运营商网络时,还会根据目标缓存查找直连第一运营商网络的第一网关,直连第二运营商网络的第二网关,通过第一网关访问第一运营商网络,通过第二网关访问第二运营商网络。
在更多的实施方式中,发送单元u3在以何种方式确定到相应的网关地址,将第一报文发送给对应的网关后,还会去监听是否存在相应的重定向消息,重定向消息用于告诉用户主机确定的网关地址并不是最优的首跳地址。相应地,用户主机在接收到对应网关的重定向消息时,发送单元u3将对应的第一报文转发至重定向的网关,并修改第一ip地址对应地址段所属网关的目标缓存。对于重定向网关直连的运营商网络也发生改变的,在第一报文发送前,作为用户主机源地址的第一ip地址也要适应性地进行修改。需要说明的是,基于ipv6的组网接入系统具体实施方式还可以参照基于ipv6的组网接入方法的具体实施方式。
结合本申请所公开的技术方案,可以直接体现为硬件、由控制单元执行的软件模块或二者组合,即一个或多个步骤和/或一个或多个步骤组合,既可以对应于计算机程序流程的各个软件模块,亦可以对应于各个硬件模块,例如asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或其他可编程逻辑器件、分立门或晶体逻辑器件、分立硬件组件或者其任意适当组合。为了描述的方便,描述上述装置时以功能分为各种模块分别描述,当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
通过以上实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请也可以借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分也可以以软件产品的形式体现出来。该软件可以由微控制单元执行,依赖于所需要的配置,也可以包括任何类型的一个或多个微控制单元,包括但不限于微控制器、dsp(digitalsignalprocessor,数字信号控制单元)或其任意组合。该软件存储在存储器,例如,易失性存储器(例如随机读取存储器等)、非易失性存储器(例如只读存储器、闪存等)或其任意组合。
综上所述,本发明的用户主机可以通过与递归dns服务器的配合,及与不同运营商网络对应网关的转发机制,以实现在多运营商网络接入情况下的灵活访问。本发明可以根据用户需求自由选择网络接入方式,灵活性强,上网体验更佳。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为了清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。