发明内容
本发明的目的是提供一种即使在DNS内容服务器对AAAA query发行了错误的响应消息的情况下,也能够不对用户终端的软件进行更改即可由终端取得IPv4地址的DNS代理服务器。
本发明的另一目的是提供能够缩短在终端对AAAA query的响应等待时间的DNS代理服务器。
本发明提出的方案是着眼于因特网内几乎所有的DNS内容服务器都能够对IPv4的主机名解决请求消息(A query)正常地进行响应。其特征在于:当从终端接收到IPv6的主机名解决请求消息(AAAA query)时,DNS代理服务器作为探针,生成具有和AAAA query相同的查询主机名的A query,将其和AAAA query一起发送到DNS内容服务器。并且,本发明的DNS代理服务器的特征在于:根据从DNS内容服务器接收的IPv6的DNS响应消息(AAAA reply)和IPv4的DNS响应消息(A Reply)的内容,决定应向终端回复的IPv6的DNS响应消息。
更详细地说,本发明的DNS代理服务器,其特征在于具有:
请求处理部,用于在从终端接收到IPv6的DNS查询消息AAAArequest时,生成具有与该查询消息相同的查询域名的IPv4的DNS查询消息A request,把上述AAAA request和A request发送到因特网内的特定的DNS内容服务器;以及
响应处理部,在作为对上述AAAA request的IPv6的DNS响应消息,从上述DNS内容服务器接收到表示查询域名为错误的NXDOMAIN的情况下,根据从上述DNS内容服务器接收的、对上述A request的IPv4的DNS响应消息的内容,生成与上述NXDOMAIN不同的另外的DNS响应消息,将其发送到上述终端。
更具体地说,本发明的DNS代理服务器,其特征在于:即使在作为IPv6的DNS响应消息接收了NXDOMAIN的情况下,也能够在作为IPv4的DNS响应消息接收了表示与查询域名相对应的IPv4地址的正常的Areply时,上述响应处理部生成表示在查询域名中没有IPv6地址的消息AAAA reply,并将其发送到请求源终端。
例如,在从DNS内容服务器先于IPv4的DNS响应消息而接收到NXDOMAIN的情况下,本发明的DNS代理服务器中,响应处理部在保持上述NXDOMAIN的状态下等待从DNS内容服务器接收IPv4的DNS响应消息。在本发明的实施例中,在接收了上述NXDOMAIN时,响应处理部启动用于限制IPv4的DNS响应消息的等待时间定时器,在未接收IPv4的DNS响应消息而上述定时器超时的情况下,在超时时刻把上述NXDOMAIN发送到请求源终端。
在本发明的优选实施例中,当发送AAAA request或A request时,DNS代理服务器的请求处理部启动用于测量DNS内容服务器的响应时间的定时器,当先接收NXDOMAIN时,响应处理部根据上述测量定时器表示的响应时间,决定IPv4的DNS响应消息的等待时间。在未从DNS内容服务器接收IPv6的DNS响应消息和IPv4的DNS响应消息中之一,而上述响应时间测量用的定时器已达到预定的超时时间的情况下,DNS代理服务器的响应处理部生成表示AAAA request的查询域名是错误的NXDOMAIN,作为IPv6的DNS响应消息,并将其发送到请求源终端。
例如,在从DNS内容服务器先于IPv6的DNS响应消息而接收到Areply的情况下,由DNS代理服务器的响应处理部启动用于限制IPv6的DNS响应消息等待时间的定时器,在该定时器超时之前接收到NXDOMAIN时,生成表示在查询域名中没有IPv6地址的消息AAAAreply,并将其发送到请求源终端。
当未接收IPv6的DNS响应消息而上述定时器已超时时,响应处理部生成表示在查询域名中没有IPv6地址的消息AAAA reply,并将其发送到请求源终端。IPv6的DNS响应消息等待时间也可以根据DNS内容服务器的响应时间测量定时器所表示的响应时间来决定。
既未从上述DNS内容服务器中接收IPv6的DNS响应消息,也未接收IPv4的DNS响应消息,而上述响应时间测量用的定时器已超过预定的超时时间时,DNS代理服务器的响应处理部生成表示AAAA request的查询域名是错误的NXDOMAIN,作为IPv6的DNS响应消息,并将其发送到请求源终端内。
作为对AAAA request的IPv6的DNS响应消息,从DNS内容服务器中接收到表示与查询域名相对应的IPv6地址的正常的AAAA reply的情况下,DNS代理服务器的响应处理部将该AAAA reply发送到请求源终端。
而且,本发明的DNS代理服务器是具有用于存储从DNS内容服务器接收到的AAAA reply和A reply所表示的查询域名和IP地址的关系的高速缓冲存储器的DNS高速缓存服务器的情况下,当从终端接收到AAAA request或者A request时,上述请求处理部参照上述高速缓冲存储器,在上述高速缓冲存储器中具有与接收的request所表示的查询域名相对应的IP地址的情况下,生成表示该IP地址的DNS响应消息,并将其发送到请求源终端。
发明效果
根据本发明,不对利用IPv4/v6双任务的用户终端的软件进行更改即可解决DNS内容服务器的错误动作。并且,在把本发明用于DNS高速缓存服务器的情况下,DNS高速缓存服务器在传送AAAA request时通过还发送A request,可从DNS内容服务器中先行取得IPv4地址,所以,当从终端中接收到A query时,能够迅速回答从高速缓冲存储器读出的IPv4地址。
具体实施方式
以下参照附图,详细说明本发明的实施例。
图1是表示适用本发明的DNS代理服务器的网络结构的模式图。其中,40是用户终端1所属的IPv4/v6双任务对应的LAN,41是DNS代理服务器10所属的IPv4/v6双任务对应的访问网络。DNS代理服务器10通过边界路由器20A而与上述LAN40相连接。通过别的边界路由器20B而与因特网42相连接。访问网络41具体来说是企业基干网络或供应商网络,终端1通过预先签约的供应商的DNS代理服务器10,与因特网42内的主机装置(服务器,其他计算机)进行通信。
因特网42实际上是由多种管理主体进行管理的多个域网43(43A、43B、43C……)的集合体。在图1中,域网43A和43B是IPv4地址网,域网43C和43D是IPv4/IPv6双地址网,域网43E是IPv6地址网。每个管理主体分别具有单独的DNS内容服务器30(30A、30B、30C……)。各个DNS内容服务器30对其管理下的域网43内的每个主机装置,把主机名和IP地址的对应关系存储在管理表中。
因特网42内的多个DNS内容服务器30形成体系,构成DNS树枝结构。DNS代理服务器10从称作路由服务器的最上位的内容服务器30A起依次进行检索,即可解决因特网上的全部主机名的IP地址。
在现有技术中作为问题的、有可能对AAAA query作出误动作的服务器,例如是对仅能够适用IPv4地址的域网43B进行管理的内容服务器30B。DNS内容服务器30B例如对域网43B内的主机2,存储了主机名“host.example.co.jp”和IPv4地址“1、1、1、1”的对应关系,但不保持主机2的IPv6地址。
在图1中,为便于说明,DNS代理服务器10图示为独立的服务器。但,DNS代理服务器10的功能也可安装在边界路由器20A或20B上。并且,DNS代理服务器10不一定必须位于访问网络41内,在能够与终端1和DNS内容服务器30进行通信的范围内,设置在任何地方均可。终端1在访问DNS内容服务器30时,也可以经过DNS代理服务器以外的别的DNS服务器。
图2是表示本发明的DNS代理服务器10的功能的通信顺序的第1例的图。
属于IPv4/v6双任务网络40的终端1,在希望取得作为通信对方的因特网42内的特定主机的IP地址的情况下,在IPv4的主机名解决请求消息(A query)之前,先把IPv6的主机名解决请求消息(AAAA query)发送到DNS代理服务器10内(SQ1)。如后所述,AAAA query由标题部和查询部构成,在查询部内包括作为地址解决对象的特定的主机名(查询主机名)。
本发明的特征是,接收了上述AAAA query的DNS代理服务器10,根据接收到的AAAA query自动生成具有相同的查询主机名的A query(S10),并大致上同时向DNS内容服务器30(例如30B)发送AAAA query和A query(SQ2、SQ3)。发送了这些query的DNS代理服务器10开始测量从DNS内容服务器30接收最初响应为止的所需时间(响应时间)T1(S11)。
而且,在实际应用中,DNS代理服务器10在发送这些query(SQ2、SQ3)之前,进行DNS树检索等处理,以便确定作为query的目的地址的DNS内容服务器30(例如30B)。这些处理顺序,一般由DNS代理服务器执行,在图2中,为了简化将其省略。
并且,在DNS代理服务器10为具有高速缓冲存储器功能的DNS高速缓存服务器的情况下,在接收AAAA query时,DNS高速缓存服务器从高速缓冲存储器中检索与查询主机名对应的IPv6地址,如果没有目的IP地址,则不把AAAA query传输到DNS内容服务器内,而自己把DNS响应消息发送到请求源终端1。在DNS高速缓存服务器的情况下,以下说明的通信顺序,相当于在高速缓冲存储器内没有目的IPv6地址的情况下的通信顺序。
在此示出的顺序是:由DNS内容服务器30响应A query,使表示与查询主机名相对应的IPv4地址的A replay回复(SQ4)之后,作为对AAAAquery的响应,回复(SQ5)了表示在因特网中没有查询主机名的NXDOMAIN(AAAA)的情况。
DNS代理服务器10若从DNS内容服务器30接收A reply,则启动T2定时器(S12),等待从DNS内容服务器30对AAAA query的IPv6DNS响应消息。T2定时器用于限制IPv6DNS响应消息的等待时间,在启动后时间T2过去时,成为超时。
超时时间T2的值也可以是固定值,但也可以根据从发送AAAA query或A query之后最初的响应(A reply)到达为止的时间T1值,根据预先准备的T1的一次函数(T2=α·T1)计算出超时时间T2。系数α是整数值或具有小数值的任意值。
在此,假定由DNS内容服务器30回复的NXDOMAIN(AAAA),在T2定时器超时(S15)之前到达DNS代理服务器10。在此情况下,DNS代理服务器10判断为:上述NXDOMAIN(AAAA)与已接收的Areply相矛盾,NXDOMAIN(AAAA)是由DNS内容服务器30错误发行的。因此,DNS代理服务器10根据接收到的NXDOMAIN的内容,生成表示在指定主机名中没有IPv6地址的AAAA reply(No地址)(S14),将其发送到请求源终端1(SQ10)。
接收到上述AAAA reply(No地址)的终端1判断为不能把IPv6地址用于作为通信对方的特定主机,为了取得IPv4地址,发送IPv4的主机名解决请求消息A query(SQ21)。
DNS代理服务器10若接收上述A query,则将其传送到DNS内容服务器30(SQ22)。DNS内容服务器30响应接收到的Aquery,回复表示与指定主机名相对应的IPv4地址的A reply(SQ23)。DNS代理服务器10把上述A reply传送给终端1(SQ24)。
利用上述通信顺序,终端1利用由DNS内容服务器30错误发行的NXDOMAIN,不中断与因特网的连接处理,即可利用IPv4地址与通信对方的主机进行通信。
而且,在DNS代理服务器10是DNS高速缓存服务器的情况下,在步骤SQ4把从DNS代理服务器10接收的A reply的内容保存到高速缓冲存储器内,这样,DNS代理服务器10在从终端1收到Aquery时(SQ21),能够省略步骤SQ22、步骤SQ23,向终端1发送A reply。
图3表示在DNS代理服务器10接收到(SQ4)A reply之后,在对AAAA query等待响应的状态下,T2定时器超时的情况下的通信顺序(S15)。
DNS代理服务器10通过接收(SQ4)A reply,确认了由因特网内的AAAA query所指定的主机名(域)的存在。因此,在已出现T2超时(S15)的情况下,DNS代理服务器10根据上述A reply的内容,生成表示在指定主机名中没有IPv6地址的AAAA reply(No地址)(S16),将其发送到请求源终端1内(SQ10)。以下的顺序与图2相同。
这样,若以T2超时为契机,对DNS代理服务器10发行AAAA reply(No地址),则能够按照为了限制对AAAA query的响应等待时间而设定的比过去的超时时间TO短的等待时间,向请求源终端1发送A query(SQ21),能够提前开始终端1和主机的通信。尤其,在DNS代理服务器10是高速缓存服务器的情况下,能够响应A query(SQ21),立即从DNS代理服务器10返回(SQ24)A reply,所以,能够进一步提前开始终端1和主机的通信。
而且,如虚线所示,在达到T2超时之前,在DNS内容服务器30返回表示与主机名对应的IPv6地址的正常的响应消息AAAA reply(地址数据)的情况下(SQ6),DNS代理服务器10向请求源终端1传送所接收到的AAAA reply。在此情况下,终端1能够利用AAAA reply所表示的IPv6地址,立即开始与主机的通信。
图4表示DNS内容服务器30最初返回对AAAA query的响应消息NXDOMAIN(AAAA)(SQ5),之后,作为对A query的响应消息而返回(SQ4)表示与查询主机名相对应的IPv4地址的A reply通信顺序。
DNS代理服务器10若从DNS内容服务器30接收NXDOMAIN(SQ5),则启动(S13)T3定时器,不将NXDOMAIN传送给终端1而是保持在服务器中,等待接收对A query的响应消息。T3定时器在其启动后经过时间T3的时刻,成为超时。时间T3的值,根据从发送A query起到最初的响应(在该例中为NXDOMAINA)到达为止的时间T1的值,根据预先准备的T1的一次函数(T3=β·T1)计算出时间T3的值。式中,β是整数值或具有小数值的系数,也可以是β=α。
在T3定时器达到超时之前,若接收表示与指定主机名对应的IPv4地址的Areply(SQ4),则DNS代理服务器10判断为错误地发行了在步骤SQ5接收到的XDDOMAIN,根据A reply的内容,生成表示在查询主机名中没有IPv6地址的IPv6的DNS响应消息AAAA reply(No地址)(S14),将其发送到请求源终端1(SQ10)。其后的顺序SQ21~SQ24与图2相同。
图5表示在图4的顺序中,DNS代理服务器10接收到NXDOMAIN(SQ5)之后,在对A query的等待响应的状态下,T3定时器成为超时(S15)的情况下的通信顺序。
在此情况下,DNS代理服务器10把等待发送的NXDOMAIN传送到(SQ11)终端1。终端1通过接收上述NXDOMAIN,自己来判断在因特网没有由AAAA query指定的主机名,不考虑与主机的通信。
图6表示DNS消息的数据包格式。
上述AAAA query、A query、AAAA reply、NXDOMAIN、A reply等DNS消息M,以具有IP标题H1和TCP/UDP标题H2的IP包格式进行发送。
图7表示终端1发行的AAAA query的消息格式。
如图7所示,AAAA query60由标题部H6和查询部Q6构成,在标题部H6内包括消息ID61及其他标题信息部62。查询部Q6包括:表示作为地址检索对象的主机名的查询域名(QNAME)63、表示要检索的地址是IPv6还是IPv4的查询类型(QTYPE)64、以及查询类(QCLASS)65。
例如,为了取得图1所示的主机2的IPv6地址,终端1发行的AAAAquery60中作为QNAME63而包括主机名“host.example.co.jp”,作为QTYPE64而包括表示是IPv6的主机名解决请求的值“28”。
图8表示DNS代理服务器10生成的A query的消息格式。Aquery70包括标题部H和查询部Q7,包括与AAAA query60相同的信息项目71~75。
DNS代理服务器10若从终端1接收AAAA query60,则生成如下的A query,该Aquery在消息ID71内包括与AAAA query不同的ID值,在QTYPE74内包括表示作为IPv4的主机名解决消息的值“1”。对QNAME73设定与AAAAquery的QNAME63相同的主机名。
图9表示DNS内容服务器30发行的AAAA reply的消息格式。AAAAreply80包括标题部H8、查询部Q8和响应消息部R8。
标题部H8包括消息ID81、RCODE83、以及其他标题信息82、84。查询部Q8由和AAAA query60相同的信息项目85~87构成,回答信息部R8包括回答信息部88A、权威部88B和附加信息部88C。
对消息ID81设定与AAAA query60相同的ID值;对查询部Q8的QNAME85、QTYPE86、QCLASS87,分别设定与AAAA query60的QNAME63、QTYPE64、QCLASS65相同的值。RCODE83表示由DNS内容服务器30执行的解决处理中有无错误。
在NXDOMAIN的情况下,对RCODE83设定“3”,回答部88A、权威部88B、附加信息部88C分别为空白。在IPv6地址数据的检索成功的情况下,对RCODE83设定表示无错误的“0”,对回答部88A设定主机的IPv6地址的值。对权威部88B和附加信息部88C,设定与DNS内容服务器30中的状况相对应的值。
图10表示DNS代理服务器10生成的AAAA reply(No地址)80P的消息格式。
AAAA reply(No地址)80P的格式与DNS内容服务器30所发行的AAAA reply80相同,对消息ID81设定与AAAA query60相同的ID值,对RCODE83设定表示无错误的“0”。
对QNAME85、QTYPE86、QCLASS87分别设定与AAAA query60的QNAME63、QTYPE64、QCLASS65相同的值,回答部88A、权威部88B、附加信息部88C分别为空白。
DNS内容服务器30响应图8所示的A query70而发行的A reply的格式与图9所示的AAAA reply80相同,对QTYPE86设定表示IPv4的“1”;对回答部88A设定主机所具有的IPv4的地址值。并且,对消息ID81设定A query70的消息ID。
图11表示DNS代理服务器10的结构的一例。
DNS代理服务器10包括:处理器11、程序存储器12、数据存储器13、网络接口14、和对这些要素互相进行连接的内部总线15。
在程序存储器12内存储有为了实现DNS代理服务器(或高速缓存服务器)的功能而由处理器执行的各种软件。本发明的DNS代理服务器10作为DNS代理服务器功能的一部分,具有在图13A、图13B中详细表示的经过改进的AAAA query处理例程200。
在数据存储器13存储有DNS代理服务器所需要的各种数据。在DNS高速缓存服务器的情况下,数据存储器13的一部分被用作高速缓冲存储器。在用图12后述的query管理表16形成在数据存储器13内。
图13A、图13B是表示从终端接收AAAA query时,处理器11执行的AAAA query处理程序200的一个实施例的流程图。
如图2的说明中也提到的那样,在实际应用中,DNS代理服务器10确定作为query发送目的地的DNS内容服务器,在发送query之前先进行DNS树检索等处理,但这些处理对DNS代理服务器来说是一般的处理,所以为了简化说明,将其从流程图中省略。并且,在此,在DNS高速缓存服务器的情况下,也省略了在query接收时执行的高速缓冲存储器的检索处理。
所以,AAAA query处理例程200表示在如下情况下所进行的处理,即,高速缓冲存储器的检索处理的结果,确认到在高速缓冲存储器内没有对应于查询请求的地址数据,而且,通过DNS树检索处理来确定作为query的发送目的地的DNS内容服务器时所进行的处理。
AAAA query处理例程200包括:AAAA query的接收时执行的请求处理部、以及从DNS内容服务器接收响应消息时执行的响应处理部。
若从终端1接收AAAA query,则处理器11制作具有和AAAA query相同的查询域名、且改变了消息ID的A query(201),把从终端接收的AAAA query和自己制作的A query发送到DNS内容服务器30(202)。然后,处理器11启动来自DNS内容服务器30的最初响应之前的所需时间T1的测量定时器、以及通知预定的最大等待时间T0超时的T0定时器(203),等待接收来自DNS内容服务器30的响应消息(204)。
在从DNS内容服务器30既不能接收A reply也不能接收AAAA reply的状态下,在T0定时器成为超时的情况下(205),处理器11向请求源终端1发送超时错误消息(206),结束该例程。
若从DNS内容服务器30接收最初的响应消息,则处理器11根据接收消息的QTYPE,判断接收消息是对Aquery的响应消息还是对AAAAquery的响应消息(210)。在接收消息是对Aquery的响应消息(A reply)的情况下,处理器11进行后述的图13B的步骤220以后的处理。
在接收消息是对AAAA query的响应消息(AAAA reply)的情况下,处理器11根据接收消息的RCODE来判断接收消息是否是NXDOMAIN(211)。在接收消息不是NXDOMAIN的情况下,也就是说,在表示主机的IPv6地址数据的通常的AAAA reply,或者表示查询域名没有IPv6地址的AAAA reply的情况下,处理器11向请求源终端1内发送接收消息(AAAA reply)(212)之后,结束该例程。
在接收消息为NXDOMAIN的情况下,处理器11在把NXDOMAIN保存在存储器中的状态下,启动限制对A query的响应消息(A reply)的接收等待时间的T3定时器(213),并等待接收A reply(214)。上述T3定时器的设定值根据T1定时器的测量值T1来决定,与T0定时器相比较更早成为超时。在未接收A reply的状态下,T3定时器成为超时的情况下(215),处理器11把保持在存储器中的NXDOMAIN发送到请求源终端1(216),结束该例程。上述NXDOMAIN的发送相当于图5的步骤SQ11。
在T3定时器出现超时之前,若接收对A query的响应消息,则处理器11根据接收消息的RCODE来判断接收消息是否是NXDOMAIN(217)。在接收消息是NXDOMAIN的情况下,处理器11把保持在存储器内的NXDOMAIN发送到请求源终端1(216),结束该例程。
在接收消息不是NXDOMAIN的情况下,也就是说,是表示主机的IPv4地址数据的通常的A reply的情况下,处理器11根据接收到的Areply,生成表示没有目的的IPv6地址数据的AAAA reply(218),将其发送到请求源终端1(219),结束该例程。上述AAAA reply的生成相当于图4的步骤S14。
在最初接收的消息是对A query的响应消息的情况下,处理器11如图13B所示,启动限制对AAAA query的响应消息(AAAA reply)接收等待时间的T2定时器(220),处理器11检查上述最初的接收消息的RCODE(221),在RCODE为“0”(无错误),即接收消息是表示指定主机的IPv4地址的A reply消息的情况下,等待接收从DNS内容服务器30来的AAAA reply(222)。
在未接收AAAA reply的状态下,在T2定时器成为超时的情况下(223),已经通过正常的A reply消息的接收,确认了因特网内存在查询域名,所以,处理器11执行图13A的步骤218、219,向请求源终端1发送表示没有目的IPv6地址的AAAA reply,结束该例程。上述AAAAreply的发送相当于图3的步骤SQ10。
在T2定时器成为超时之前接收到AAAA reply的情况下,处理器11检查接收消息的RCODE(224),在RCODE为错误显示值“3”,即接收消息为NXDOMAIN的情况下,处理器11进行图13A的步骤218、219,向请求源终端1发送表示没有目的IPv6地址的AAAA reply,结束该例程。在接收消息的RCODE为“0”(无错误)的情况下,处理器11向请求源终端1发送(226)接收消息(表示目的IPv6地址的AAAA reply),结束该例程。上述AAAA reply的发送相当于图3中虚线所示的步骤SQ9。
在最初接收的A reply消息的RCODE为表示错误的值的情况下,即接收消息为IPv4的NXDOMAIN的情况下(221),处理器11等待接收来自DNS内容服务器30的AAAA reply(225)。在T2定时器成为超时之前,接收到AAAA reply的情况下,处理器11向请求源终端1发送接收消息(226),结束该例程。
在未接收AAAA reply的状态下,T2定时器成为超时的情况下(227),通过IPv4的NXDOMAIN的接收,已确认了在因特网内没有指定域名。所以,处理器11生成表示因特网内没有指定的主机名的IPv6的NXDOMAIN(228),将其发送到请求源终端1(229),结束该例程。
上述AAAA query处理例程200着眼于一个AAAA query,用时间序列来表示DNS代理服务器10的处理器11所执行的动作。但是,在实际应用中,DNS代理服务器10从多个终端接收AAAA query,也从DNS内容服务器接连地接收消息ID的不同的多个AAAA reply和A reply。所以,处理器11必须按每个发生的AAAA query来管理来自DNS内容服务器的响应消息状态,控制向各终端发送响应消息。
图12表示处理器11为控制向各个终端发送响应消息而参照的query管理表16的一例。
query管理表16包括:与AAAA query对应的多个表项目160-1……。各个表项目表示AAAA queryID161、AqueryID162、AAAA reply的RCODE163、A reply的RCODE164、请求源IP地址165,T0超时166、T2(T3)超时167。
处理器11在接收AAAA query时,在生成了具有与其相同的查询域名的A query之后,在query管理表16增加上述AAAA query用的新表项目160-j。这时,表项目160-j的RCODE164、165和T2(T3)超时167在空白的状态下,对AAAA querylD161设定接收AAAA query的消息ID81的值,对A queryID62设定所生成的A query的消息ID71;对请求源IP地址165设定从接收的AAAA query的IP标题H1中抽出的发送源IP地址的值。并且,对T0超时166设定T0定时器的超时时刻。
处理器11每当从DNS内容服务器接收reply消息时,从上述query管理表16检索出与接收消息的消息ID相对应的表项目160-k,进行与表项目状态相对应的动作。
当从DNS内容服务器接收reply消息时,如果RCODE164和165均为空白栏状态,则处理器11可以把接收消息的RCODE的值存储到上述表项目160-k的RCODE164或165,然后进行AAAA query处理例程200的步骤210~213或220,在步骤213或220计算出T2定时器或T3定时器的超时时刻,可将其作为T2(T3)定时器165的超时时刻存储在上述表项目。
当从DNS内容服务器接收到reply消息时,如果是在RCODE164和165中的一个已存储了有效数据的状态,则处理器11根据接收消息的QTYPE来判断接收消息是AAAA reply还是A reply。处理器11可以在接收消息是A reply的情况下,执行AAAA query处理例程200的步骤216~219,在接收消息是AAAA reply的情况下,可以根据上述RCODE164或165所示的A reply的状态,执行AAAA query处理例程200的步骤222、224~226。
并且,处理器11定期检查query管理表16的定时器166和167所示的超时时刻,对于已达到超时时刻的表项目,根据RCODE164和165的状态,有选择地执行AAAA query处理例程200的步骤206、216、218~219或步骤228~229。在步骤212、216、219、226或229,向请求源终端内发送响应消息时,可以从query管理表16删除不需要的表项目。