一种区分IPv4、IPv6的CNAME域名解析方法与流程

文档序号:16007926发布日期:2018-11-20 20:18阅读:3925来源:国知局

本发明涉及一种区分IPv4、IPv6的CNAME域名解析方法,属于计算机网络通信的技术领域。



背景技术:

域名系统DNS(Domain Name System)是因特网的一项核心服务,也被称作因特网中用于解决网上机器命名的一种系统,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使用户更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数字串。因为Internet上的每个主机要访问另一个主机时,必须首先获知其地址,TCP/IP协议中的IP地址是由四段以“.”分隔的32位二进制数字组成,记忆起来远不如名字方便和容易,所以,就采用了域名DN(Domain Name)和域名系统,域名是将一个计算机或服务器所在的IP地址关联到一组有意义的字符或名字上去。域名系统用来管理该名字和计算机或服务器所在的IP地址的对应关系。通过域名,最终得到该域名所对应的IP地址的转换过程被称为域名解析。

通常为了好记,采用域名来代替IP地址标识计算机的节点地址,而由DNS服务器来完成域名的解析。每个域名都有自己的权威DNS服务器,权威DNS服务器设有该域名的区域文件(zone file),区域文件是由多个记录组成的,其中常见的记录类型包括A记录、AAAA记录、CNAME记录等。

A记录是用于将域名(或主机名)对应到IPv4地址的记录,AAAA记录是用于将域名(或主机名)对应到IPv6地址的记录,CNAME记录的中文译名是别名,又被称为规范名字;这种记录用于为域名设置别名、即将多个名字(即别名)映射到同一台计算机,通常用于同时提供WWW和MAIL服务的计算机。例如,某台计算机的名字(或域名)为“host”(A记录),它同时提供WWW和MAIL服务。为了便于用户访问服务。该计算机被分别设置了WWW和MAIL的两个CNAME:这两个别名全称就是www开头的域名(例如:www.test.com)和以mail开头的域名(例如:mail.test.com)。实际上,这两个别名都指向“host”。也就是说,对www.test.com和/或mail.test.com的访问请求都可以被解析到host.example.com。这种方法可以用于当用户拥有多个域名、且需要指向同一个服务器IP地址时,可以将其中一个域名做A记录,指向服务器IP地址。然后将其他的域名都作为别名,指向以前做A记录的域名上,那么当该用户的服务器IP地址变更时,就可以不必麻烦地逐一更改每个域名的指向了。只需要更改做A记录的那个域名的指向,其他以别名作为域名的指向也会自动更改到新的IP地址上。而且,现有技术中的CNAME记录不能和A记录、AAAA记录共存,即某个域名一旦设置了CNAME记录,就不能再设置A记录和AAAA记录了。

为了解决因地理位置分布、带宽、以及服务器性能带来的访问延迟问题,提高用户访问网站的响应速度和成功率,现在的大型网站都会将网站服务交由内容分发网络CDN(Content Delivery Network)服务供应商进行托管,具体做法是为域名添加CNAME记录,将CNAME记录对应到托管的CDN服务供应商提供的域名,于是用户对该域名的访问请求将被转发到对应的CDN服务供应商,再由服务供应商根据用户访问特征信息就近服务,提升用户的访问体验。

近年来,随着IPv6技术的推广,域名会接收到越来越多来自IPv6用户的域名解析请求。当使用IPv6协议的用户来访问域名时,域名就需要被解析为IPv6地址。但是,由于域名使用了CDN托管服务,设置了CNAME记录,所以不能够再设置AAAA记录。然而,目前的IPv6技术还尚是处于推广过渡阶段,并且,这个推广过渡的过程很可能是一个漫长的时段。此外,由于目前商业的CDN服务供应商还无法提供基于IPv6协议的内容分发服务,即CDN服务供应商现在也无法为IPv6用户提供域名解析结果,造成IPv6用户无法使用IPv6协议来访问域名或请求域名解析服务。这个严重影响IPv6用户的网络访问体验的技术瓶颈,已经成为一项非常具有实用价值的新课题,也是业内科技人员关注的一个新焦点。



技术实现要素:

有鉴于此,本发明的目的是提供一种区分IPv4、IPv6的CNAME域名解析方法,网站服务的提供者可以使用该方法,同时使用仅支持IPv4和/或仅支持IPv6的CDN服务器、或者使用同时支持IPv4与IPv6的CDN服务器,智能地分别为IPv4用户和/或IPv6用户实现域名的IPv4解析和IPv6解析,即向IPv4和/或IPv6不同用户提供一致的网络访问体验。利用本发明方法,在IPv4向IPv6过渡的整个过程中,服务供应商都能有效和合理地提供IPv6服务渠道,不受已有CDN服务商IPv6过渡进程制约。

为了达到上述目的,本发明提供了一种区分IPv4、IPv6的CNAME域名解析方法,其特征在于,所述方法包括下列操作步骤:

步骤1,对需要为IPv4和/或IPv6用户提供域名解析、进而得到IPv4地址和/或IPv6地址解析结果的每个域名,至少分别设置一条IPv4CNAME记录和IPv6CNAME记录,再设置该域名为N类域名;

步骤2,域名服务器接收到来自用户客户端的域名解析请求时,首先检测该域名解析请求报文中需要解析的域名是否为N类域名;若否,则执行传统的域名解析操作步骤;若是,则计算与判断该客户端请求报文中的域名解析请求类型,再根据判断结果执行相应的后续操作:

(a)若解析请求报文中的域名解析请求类型为A记录时,则执行后续步骤3;

(b)若解析请求报文中的域名解析请求类型为AAAA记录时,则跳转执行后续步骤4;

(c)若解析请求报文中的域名解析请求类型为ANY或CNAME记录时,则进而检查该解析请求报文中的客户端源IP地址类型,若为IPv4地址,则执行后续步骤3;若为IPv6地址,则跳转执行后续步骤4;

(d)若解析请求报文中的域名解析请求为非上述四种类型的其他类型,则执行传统的域名解析操作步骤;

步骤3,域名服务器为客户端返回A记录对应的IPv4CNAME记录;

步骤4,域名服务器为客户端返回AAAA记录对应的IPv6CNAME记录;

步骤5,客户端接收到域名服务器的应答报文后,继续向该应答报文中的CNAME记录发起域名解析请求;然后,由内容分发网络CDN(Content Delivery Network)服务供应商提供传统的后续域名解析服务。

本发明一种区分IPv4、IPv6的CNAME域名解析方法的优点和效果是:

本发明方法较好地解决了目前的CDN服务提供商因技术限制而无法解析IPv6域名、但是已经出现许多用户希望网站的所有者提供IPv6域名解析服务的紧迫需求问题。如果CDN服务提供商仍然不能够支持IPv6域名的解析需求,网站的所有者既可以采用本发明方法额外选择自建的域名解析途径,也可以选择采用本发明方法而支持IPv6解析的其他CDN服务提供商来提供IPv6域名解析服务,以便对用户同时提供IPv4和/或IPv6的域名解析服务。

本发明方法只是改动了域名的解析记录配置,无需对客户端进行任何改动,故兼容性好,便于推广应用。

本发明方法的应用,将推进并加速在IPv6过渡阶段中的IPv6技术的推广应用,并为现有的基于IPv4的域名解析服务、尤其是采用了CDN内容分发网络提供了IPv6的域名解析服务。

本发明一种区分IPv4、IPv6的CNAME域名解析方法的关键创新技术是:

本发明方法是根据客户端查询的域名解析请求类型为A记录还是AAAA记录,以便分别选择IPv4CNAME记录或者IPv6CNAME记录进行回复应答,从而解决了CNAME记录不能同时支持多值的问题。

本发明方法在客户端查询的域名解析请求类型为ANY或CNAME记录时,能够进一步检查查询该域名解析请求报文中的客户端源IP地址,从而据此判断其支持的网络协议,针对性地选择IPv4CNAME记录或者IPv6CNAME记录进行回复应答。

本发明能够同时支持同一种网络协议域名解析请求类型的多值解析:当一个域名具有多个IPv4CNAME记录或多个IPv6CNAME记录时,可以根据权重、轮询、或随机等多种方法,在多个CDN服务提供商之间均衡负载。

附图说明

图1是本发明一种区分IPv4、IPv6的CNAME域名解析方法操作步骤流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。

参见图1,介绍本发明一种区分IPv4、IPv6的CNAME域名解析方法的具体操作步骤:

步骤1,对于需要为IPv4和/或IPv6用户提供域名解析、进而得到IPv4地址和/或IPv6地址解析结果的每个域名,至少分别设置一条IPv4CNAME记录和IPv6CNAME记录,再设置该域名为N类域名。

该操作步骤中,如果IPv4CNAME记录和/或IPv6CNAME记录有2条或2条以上时,要对其中的每类2条或2条以上的多个CNAME记录分别设置记录选择算法,所述记录选择算法包括:随机乱序选择、权重比例选择、或轮询选择的选择算法。

步骤2,域名服务器接收到来自用户客户端的域名解析请求时,首先检测该域名解析请求报文中需要解析的域名是否为N类域名;

若否,则执行传统的域名解析操作步骤;

若是,则计算与判断该客户端请求报文中的域名解析请求类型,再根据判断结果执行相应的后续操作:

(a)若解析请求报文中的域名解析请求类型为A记录时,则执行后续步骤3;

(b)若解析请求报文中的域名解析请求类型为AAAA记录时,则跳转执行后续步骤4;

(c)若解析请求报文中的域名解析请求类型为ANY或CNAME记录时,则进而检查该解析请求报文中的客户端源IP地址类型,若为IPv4地址,则执行后续步骤3;若为IPv6地址,则跳转执行后续步骤4;

(d)若解析请求报文中的域名解析请求为非上述四种类型的其他类型,则执行传统的域名解析操作步骤。

步骤3,域名服务器为客户端返回A记录对应的IPv4CNAME记录;如果对应的IPv4CNAME记录有2条或2条以上时,需要根据设定的记录选择算法,选择其中的一条记录予以应答。

步骤4,域名服务器为客户端返回AAAA记录对应的IPv6CNAME记录;如果对应的IPv6CNAME记录有2条或2条以上时,需要根据设定的记录选择算法,选择其中的一条记录予以应答。

步骤5,客户端接收到域名服务器的应答报文后,继续向该应答报文中的CNAME记录发起域名解析请求;然后,由内容分发网络CDN(Content Delivery Network)服务供应商提供传统的后续域名解析服务。

本发明已经进行了仿真实施例试验应用:在网瑞达公司的主页www.wrdtech.com中采用本发明的域名解析方法进行域名解析,即在域名www.wrdtech.com设置了两条CNAME记录。其中,针对IPv4的CNAME记录为www4.wrdtech.com,针对IPv6的CNAME记录为www6.wrdtech.com。域名www6.wrdtech.com的AAAA记录设为2001:da8:215::1。实现了给IPv4客户端和IPv6客户端分别返回不同解析结果的愿望。经过长达十几周的实施试验,本发明的区分IPv4、IPv6的CNAME域名解析方法是成功的,实现了发明目的,有望进一步推广应用。

当前第1页1 2 3 
网友询问留言 已有2条留言
  • 访客 来自[中国] 2021年02月20日 01:34
    Cname允许和AAAA解析共存,但不能和A记录共存 测试站点 zhidao.baidu.com
    0
  • 访客 来自[中国] 2021年02月20日 01:33
    ipv6高于ipv4的访问,cname允许和ipv6共存
    0
1