Domain name system for data discovery
By adding EDNS resource records to DNS requests, the problem of the DNS system being unable to locate data within a domain is solved, thus extending the functionality and compatibility of the DNS system and enabling it to locate data within a network domain.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2021-10-18
- Publication Date
- 2026-08-04
AI Technical Summary
The existing DNS system cannot effectively locate specific data within a domain, and cannot directly determine the location of data within a network domain through the Domain Name System.
By adding resource records to DNS requests using the Extended DNS Protocol (EDNS), including option codes and option data fields, the responder can resolve and locate the specified data within the domain and include the server address in the DNS response.
It enables the DNS system to locate data within a domain, is compatible with older systems, solves the problems of data storage and retrieval, and implements state transitions between DNS servers and clients.
Smart Images

Figure CN116888941B_ABST
Abstract
Description
[0001] Cross-referencing related applications
[0002] This patent application claims the benefit of U.S. Provisional Patent Application No. 63 / 111,416, filed November 9, 2020, entitled “DNS For Data Discovery (DDD)”, the contents of which are incorporated herein by reference. Technical Field
[0003] This invention generally relates to the Domain Name System (DNS) protocol, and more specifically to a mechanism for locating data within a domain using the DNS protocol. Background Technology
[0004] The Internet operates by assigning Internet Protocol (IP) addresses to devices running on it. For example, a server operating within a network domain can receive an IP address. IPv4 (IP version four) used a series of numbers to address individual network domains. Because the number of addresses available in IPv4 was limited, IPv6 (IP version six) used both numbers and letters, and more bits, to achieve a larger address space. In many cases, a large number of network devices can operate within a network domain, but not all devices can receive individual IP addresses. In such situations, various techniques such as subnetting and / or Network Address Translation (NAT) can be used to address specific devices operating within a network domain based on one or more domain IP addresses. One problem with IP addressing systems is that human users cannot easily retain IP addresses. Therefore, domain names can be assigned to domains that are easier for human users to read and understand. These domain names can be associated with corresponding IP addresses. In this way, users can enter a domain name, which can be translated into an IP address, allowing users to communicate with specific devices on a specific network domain. Summary of the Invention
[0005] In one embodiment, the present invention includes a method implemented in a DNS server. The method includes: a receiver of the DNS server receiving a DNS request for a resource record including a hostname and specified data; a processor of the DNS server resolving an IP address based on the hostname; the processor resolving a server address of the resource server including the data specified in the resource record; and a transmitter of the DNS server sending a DNS response including the IP address and the server address.
[0006] The DNS system is used to translate domain names (also known as hostnames) into IP addresses. In the DNS system, the requesting party sends a DNS request to the responding party. Typically, the requesting party is a client, and the responding party is a DNS server, such as an authoritative DNS server, a DNS recursive resolver, and / or a DNS stub resolver. The DNS request includes a hostname, such as a web address. The DNS server determines the IP address corresponding to the hostname. The DNS server can then reply with a DNS response that includes the IP address. Therefore, the DNS system can direct the requesting party to the domain corresponding to the hostname. However, the DNS system is not used to determine the location of specified data within a domain.
[0007] This invention includes a mechanism for locating specified data within a domain using the DNS protocol. A requesting party sends a DNS request including the hostname associated with the domain. The requesting party also adds a resource record to the DNS request according to the Extended DNS (EDNS) protocol. The resource record includes an option code field set to a value specifying that the resource record is a data resource record. The resource record also includes an option data field set to a value corresponding to the type of requested data. The responding party can then resolve the IP address from the hostname and determine the address of the resource server containing the requested data based on the information in the resource record. Then, for example, by including the server address in the resource record added to the DNS response, the responding party can include both the IP address and the server address in the DNS response. Legacy systems that do not support EDNS will discard the resource record. Therefore, the disclosed mechanism is backward compatible with legacy systems. As used herein, "requested data" can include data values, programs, services, resources, and / or any data on the network that is not assigned an IP address. Therefore, the disclosed mechanism addresses problems specific to the field of data storage and retrieval. Furthermore, the disclosed mechanism provides substantial improvements to the functionality of the DNS system and enables the transformation of DNS servers and / or DNS clients to different states.
[0008] Alternatively, according to any of the foregoing aspects, in another implementation of said aspect, the DNS request is received as part of the EDNS protocol.
[0009] Alternatively, according to any of the above aspects, in another implementation of said aspect, the IP address is associated with a domain, and the server address is located within the domain associated with the IP address.
[0010] Alternatively, according to any of the above aspects, in another implementation of said aspect, the resource record includes a value corresponding to the data within the domain.
[0011] Optionally, according to any of the above aspects, in another implementation of said aspect, resolving the server address further includes: communicating with one or more name servers to determine the correspondence between the resource record and the server address of the resource server.
[0012] Optionally, according to any of the above aspects, in another implementation of said aspect, the resource record includes: an option code field, set to a value specifying the type of the resource record; an option length field, set to a value specifying the length of the resource record; and an option data field, set to a value specifying the data.
[0013] Alternatively, according to any of the above aspects, in another implementation of said aspect, the data includes values, programs, services, resources, or combinations thereof.
[0014] In one embodiment, the present invention includes a method implemented in a DNS client. The method includes: a sender of the DNS client sending a DNS request for a resource record including a hostname and specified data; and a receiver of the DNS client receiving a DNS response including an IP address corresponding to the hostname and a server address corresponding to the data specified in the resource record.
[0015] The DNS system is used to translate domain names (also known as hostnames) into IP addresses. In the DNS system, the requesting party sends a DNS request to the responding party. Typically, the requesting party is a client, and the responding party is a DNS server, such as an authoritative DNS server, a DNS recursive resolver, and / or a DNS stub resolver. The DNS request includes a hostname, such as a web address. The DNS server determines the IP address corresponding to the hostname. The DNS server can then reply with a DNS response that includes the IP address. Therefore, the DNS system can direct the requesting party to the domain corresponding to the hostname. However, the DNS system is not used to determine the location of specified data within a domain.
[0016] This invention includes a mechanism for locating specified data within a domain using the DNS protocol. A requesting party sends a DNS request including the hostname associated with the domain. The requesting party also adds a resource record to the DNS request according to the Extended DNS (EDNS) protocol. The resource record includes an option code field set to a value specifying that the resource record is a data resource record. The resource record also includes an option data field set to a value corresponding to the type of requested data. The responding party can then resolve the IP address from the hostname and determine the address of the resource server containing the requested data based on the information in the resource record. Then, for example, by including the server address in the resource record added to the DNS response, the responding party can include both the IP address and the server address in the DNS response. Legacy systems that do not support EDNS will discard the resource record. Therefore, the disclosed mechanism is backward compatible with legacy systems. As used herein, "requested data" can include data values, programs, services, resources, and / or any data on the network that is not assigned an IP address. Therefore, the disclosed mechanism addresses problems specific to the field of data storage and retrieval. Furthermore, the disclosed mechanism provides substantial improvements to the functionality of the DNS system and enables the transformation of DNS servers and / or DNS clients to different states.
[0017] Alternatively, according to any of the above aspects, in another implementation of said aspect, the DNS request is sent as part of the EDNS protocol.
[0018] Alternatively, according to any of the above aspects, in another implementation of said aspect, the IP address is associated with a domain, and the server address is located within the domain associated with the IP address.
[0019] Alternatively, according to any of the above aspects, in another implementation of said aspect, the resource record includes a value corresponding to the data within the domain.
[0020] Optionally, according to any of the above aspects, in another implementation of said aspect, the resource record includes: an option code field, set to a value specifying the type of the resource record; an option length field, set to a value specifying the length of the resource record; and an option data field, set to a value specifying the data.
[0021] Alternatively, according to any of the above aspects, in another implementation of said aspect, the data includes values, programs, services, resources, or combinations thereof.
[0022] Optionally, according to any of the above aspects, in another implementation of said aspect, the method further includes: the sender sending a request for the data, wherein the request is directed to a resource server to which the server address belongs within the domain of the IP address.
[0023] In one embodiment, the present invention includes a DNS device. The DNS device includes: a processor, a receiver coupled to the processor, a memory coupled to the processor, and a transmitter coupled to the processor, wherein the processor, the receiver, the memory, and the transmitter are configured to perform the methods described in any of the foregoing aspects.
[0024] In one embodiment, the present invention includes a non-transitory computer-readable medium. The non-transitory computer-readable medium includes a computer program product for use by a DNS device, the computer program product including computer-executable instructions stored in the non-transitory computer-readable medium, which, when executed by a processor, cause the DNS device to perform any of the methods described above.
[0025] In one embodiment, the present invention includes a DNS server. The DNS server includes: a receiving module for receiving a DNS request for a resource record including a hostname and specified data; a resolving module for: resolving an IP address based on the hostname; resolving a server address of the resource server including the data specified in the resource record; and a sending module for sending a DNS response including the IP address and the server address.
[0026] The DNS system is used to translate domain names (also known as hostnames) into IP addresses. In the DNS system, the requesting party sends a DNS request to the responding party. Typically, the requesting party is a client, and the responding party is a DNS server, such as an authoritative DNS server, a DNS recursive resolver, and / or a DNS stub resolver. The DNS request includes a hostname, such as a web address. The DNS server determines the IP address corresponding to the hostname. The DNS server can then reply with a DNS response that includes the IP address. Therefore, the DNS system can direct the requesting party to the domain corresponding to the hostname. However, the DNS system is not used to determine the location of specified data within a domain.
[0027] This invention includes a mechanism for locating specified data within a domain using the DNS protocol. A requesting party sends a DNS request including the hostname associated with the domain. The requesting party also adds a resource record to the DNS request according to the Extended DNS (EDNS) protocol. The resource record includes an option code field set to a value specifying that the resource record is a data resource record. The resource record also includes an option data field set to a value corresponding to the type of requested data. The responding party can then resolve the IP address from the hostname and determine the address of the resource server containing the requested data based on the information in the resource record. Then, for example, by including the server address in the resource record added to the DNS response, the responding party can include both the IP address and the server address in the DNS response. Legacy systems that do not support EDNS will discard the resource record. Therefore, the disclosed mechanism is backward compatible with legacy systems. As used herein, "requested data" can include data values, programs, services, resources, and / or any data on the network that is not assigned an IP address. Therefore, the disclosed mechanism addresses problems specific to the field of data storage and retrieval. Furthermore, the disclosed mechanism provides substantial improvements to the functionality of the DNS system and enables the transformation of DNS servers and / or DNS clients to different states.
[0028] Optionally, according to any of the above aspects, in another implementation of said aspect, the DNS server is also used to perform the method described in any of the above aspects.
[0029] In one embodiment, the present invention includes a DNS client. The DNS client includes: a sending module for sending a DNS request for a resource record including a hostname and specified data; and a receiving module for receiving a DNS response including an Internet Protocol (IP) address corresponding to the hostname and a server address corresponding to the data specified in the resource record.
[0030] The DNS system is used to translate domain names (also known as hostnames) into IP addresses. In the DNS system, the requesting party sends a DNS request to the responding party. Typically, the requesting party is a client, and the responding party is a DNS server, such as an authoritative DNS server, a DNS recursive resolver, and / or a DNS stub resolver. The DNS request includes a hostname, such as a web address. The DNS server determines the IP address corresponding to the hostname. The DNS server can then reply with a DNS response that includes the IP address. Therefore, the DNS system can direct the requesting party to the domain corresponding to the hostname. However, the DNS system is not used to determine the location of specified data within a domain.
[0031] This invention includes a mechanism for locating specified data within a domain using the DNS protocol. A requesting party sends a DNS request including the hostname associated with the domain. The requesting party also adds a resource record to the DNS request according to the Extended DNS (EDNS) protocol. The resource record includes an option code field set to a value specifying that the resource record is a data resource record. The resource record also includes an option data field set to a value corresponding to the type of requested data. The responding party can then resolve the IP address from the hostname and determine the address of the resource server containing the requested data based on the information in the resource record. Then, for example, by including the server address in the resource record added to the DNS response, the responding party can include both the IP address and the server address in the DNS response. Legacy systems that do not support EDNS will discard the resource record. Therefore, the disclosed mechanism is backward compatible with legacy systems. As used herein, "requested data" can include data values, programs, services, resources, and / or any data on the network that is not assigned an IP address. Therefore, the disclosed mechanism addresses problems specific to the field of data storage and retrieval. Furthermore, the disclosed mechanism provides substantial improvements to the functionality of the DNS system and enables the transformation of DNS servers and / or DNS clients to different states.
[0032] Optionally, according to any of the above aspects, in another implementation of said aspect, the DNS client is also used to perform the method described in any of the above aspects.
[0033] For clarity, any of the above embodiments can be combined with any one or more of the other embodiments described above to create new embodiments within the scope of the present invention.
[0034] These and other features will become clearer from the following detailed description in conjunction with the accompanying drawings and claims. Attached Figure Description
[0035] To gain a more complete understanding of the present invention, reference is made to the following brief description in conjunction with the accompanying drawings and specific embodiments, wherein similar reference numerals denote similar parts.
[0036] Figure 1 This is a schematic diagram of an exemplary DNS system.
[0037] Figure 2 This is a protocol diagram illustrating an exemplary method for locating specified data within a domain using the DNS system.
[0038] Figure 3 An example resource record included in a DNS request is shown.
[0039] Figure 4This is a schematic diagram of an exemplary DNS device used to locate specified data within a domain.
[0040] Figure 5 This is a flowchart illustrating an exemplary method for requesting specified data via a DNS request.
[0041] Figure 6 This is a flowchart of an exemplary method for resolving the location of specified data in a domain in response to a DNS request.
[0042] Figure 7 This is a schematic diagram of an exemplary DNS system used to locate specified data within a domain. Detailed Implementation
[0043] First, it should be understood that although illustrative implementations of one or more embodiments are provided below, the disclosed systems and / or methods can be implemented using any number of techniques, whether currently known or not yet developed. The invention is by no means limited to the illustrative implementations, drawings, and techniques described below, including the exemplary designs and implementations illustrated and described herein, but can be modified within the full scope of the appended claims and their equivalents.
[0044] The DNS system is used to translate domain names (also known as hostnames) into IP addresses. In the DNS system, the requesting party sends a DNS request to the responding party. Typically, the requesting party is a client, and the responding party is a DNS server, such as an authoritative DNS server, a DNS recursive resolver, and / or a DNS stub resolver. The DNS request includes a hostname, such as a web address. The DNS server determines the IP address corresponding to the hostname. The DNS server can then reply with a DNS response that includes the IP address. Therefore, the DNS system can direct the requesting party to the domain corresponding to the hostname. However, the DNS system is not used to determine the location of specified data within a domain.
[0045] This document discloses a mechanism for locating specified data within a domain using the DNS protocol. The requesting party sends a DNS request including the hostname associated with the domain. The requesting party also adds a resource record to the DNS request according to the Extended DNS (EDNS) protocol. The resource record includes an option code field, which is set to a value specifying that the resource record is a data resource record. The resource record also includes an option data field, which is set to a value corresponding to the type of requested data. The responding party can then resolve the IP address from the hostname and determine the address of the resource server containing the requested data based on the information in the resource record. Then, for example, by including the server address in the resource record added to the DNS response, the responding party can include both the IP address and the server address in the DNS response. Legacy systems that do not support EDNS will discard the resource record. Therefore, the disclosed mechanism is backward compatible with legacy systems. As used herein, "requested data" can include data values, programs, services, resources, and / or any data on the network that is not assigned an IP address. Therefore, the disclosed mechanism addresses problems specific to the field of data storage and retrieval. Furthermore, the disclosed mechanism provides substantial improvements to the functionality of the DNS system and enables the transformation of DNS servers and / or DNS clients to different states.
[0046] Figure 1 This is a schematic diagram of an exemplary DNS system 100. The DNS system 100 includes a DNS client 101 communicating via the Internet 109, a resource server 107 within a network domain 105, and a DNS server 103.
[0047] DNS client 101 can be any network computing device, such as a personal computer, laptop, tablet, or smartphone. DNS client 101 is typically operated by a user through a web browser or other web-based software applications. In DNS terminology, DNS client 101 acts as the requester. This indicates that DNS client 101 requests the IP address corresponding to the hostname. The IP address can be an IPv4 address and / or an IPv6 address, depending on the specific example. The hostname can be any hostname that is available over the Internet 109, such as www.example.com, where www represents the World Wide Web, .com represents a commercial website, and example is the name chosen by the operator of the network domain 105.
[0048] DNS client 101 sends a DNS request to DNS server 103 via the Internet 109. The DNS request includes the hostname corresponding to network domain 105 and / or resource server 107. DNS server 103 can be any network computing device or any device capable of receiving and processing DNS requests. For example, DNS server 103 can function as a DNS stub resolver, DNS recursive resolver, DNS cache, and / or authoritative DNS server. A DNS stub resolver is a DNS configuration device that receives DNS requests from DNS client 101 and forwards them to a DNS resolver for resolution. A DNS recursive resolver is a DNS configuration device that receives DNS requests from DNS client 101 and / or DNS stub resolver. The DNS recursive resolver then uses (e.g., recursively) to query one or more name servers that store databases mapping hostnames to various parts of IP addresses. A DNS cache is a DNS configuration device that temporarily stores the results of other users' DNS requests and responses to other DNS requests without directly querying name servers (if possible). An authoritative DNS server is a DNS configuration device that stores one or more databases mapping various hostnames to IP addresses and is capable of resolving IP addresses based on local information. Therefore, DNS server 103 can be implemented as one or more network devices that receive DNS requests, resolve hostnames to IP addresses, and respond to DNS requests with a DNS response including the hostname. Thus, in DNS terminology, DNS server 103 acts as the responder. In the DNS context, the term "resolve" refers to the translation between data indicating a device in a network and the address of that device. For example, the name of a device (e.g., a hostname) can be resolved to the device's IP address.
[0049] DNS server 103 forwards the DNS response back to DNS client 101 via the Internet 109. In this example, the hostname refers to network domain 105. Therefore, the DNS response includes the IP address of network domain 105. For example, the IP address can identify a specific server within network domain 105. Network domain 105 is a group consisting of one or more computer networks and / or hosts in a public management and / or hardware infrastructure. In the DNS context, as long as DNS client 101 has the hostname of the device and / or network domain 105, DNS client 101 can determine the IP address of the device within network domain 105.
[0050] As described above, DNS client 101 can use a hostname to determine the IP address of a specific device. However, DNS does not support locating specific data within network domain 105. Therefore, DNS client 101 can find the device based on its IP address, but may not find the relevant data if this data is not stored on the device associated with the IP address. Extended DNS (EDNS) is a protocol that adds additional functionality to DNS system 100. Specifically, EDNS can add resource records to DNS requests and / or DNS responses. Devices that support EDNS can read resource records. Devices that do not support EDNS will ignore resource records. DNS functionality is retained even if the receiver of EDNS messages is not configured for EDNS; therefore, EDNS is backward compatible.
[0051] This invention extends EDNS to support data searching within network domain 105. For example, data resource records can be added to DNS requests and DNS responses. In a specific example, DNS client 101 is interested in data stored in resource server 107. DNS client 101 knows the hostname and the value associated with the data. DNS client 101 can then generate a DNS request including the hostname and add a data resource record including the value associated with the data. Upon receiving the DNS request, DNS server 103 can resolve the IP address based on the hostname and generate a DNS response including the IP address. Furthermore, DNS server 103 can read the value in the data resource record and resolve the location of the data corresponding to that value within network domain 105. For example, DNS server 103 can query the name server database and determine that the data is stored in resource server 107. DNS server 103 can then add the address information of resource server 107 to the data resource record in the DNS response. Next, DNS client 101 can use the IP address in the DNS response to contact the correct network domain 105 and the address information in the data resource record to contact the correct resource server 107 within the network domain.
[0052] As used herein, "data" can refer to values, programs, services, resources, or combinations thereof. For example, data can reference any software or hardware resource that does not have a dedicated IP address. By way of non-limiting examples, data can include values such as statistics, measurements, temperature, location, metadata, and system health metrics. Data can also include programs such as applets, graphs, games, spreadsheets, database systems, and browsers. Data can also include services such as firewalls, load balancers, spam filters, and head manipulators. Data can also include system resources such as central processing units (CPUs) and storage locations. Therefore, resource server 107 can be any network computer device that includes the data described above. Therefore, as long as the data is assigned a unique value in the data database, DNS client 101 can request DNS server 103 to resolve the location of that data within network domain 105.
[0053] In one example, resource server 107 may be a network edge computing device connected to an elevator control panel. In this example, resource server 107 may be used to collect and store various sensor data related to the elevator, such as speed, vibration, temperature, etc. In one example, DNS client 101 may want to access temperature data related to the elevator in a network domain. DNS client 101 may add a data resource record to a DNS request with a value associated with the elevator temperature. DNS server 103 can then resolve the DNS request and the data resource record to determine if the data related to the elevator temperature is in resource server 107. Next, DNS server 103 can provide information to DNS client 101 in a DNS response to locate resource server 107. Afterward, DNS client 101 can query resource server 107 within network domain 105 to obtain the elevator temperature.
[0054] In another example, data can be grouped and subgrouped according to general categories to specific categories. In this case, values for each data type can be assigned in a relational manner. For example, network domain 105 may include medical data related to allergy / immunology, anesthesiology, cardiology, etc. Each of these groups can be assigned a value. In this example, the allergy / immunology group can be further subdivided into asthma, eczema, food allergies, insect bite allergies, autoimmune diseases, etc. Each of these subgroups can also be assigned a value. These values can then be added to data resource records to look up specific data. For example, a DNS request may include a data resource record requesting the location within network domain 105 of data related to asthma in a 12-year-old child under the allergy / immunology category. DNS server 103 can retrieve the values from one or more data resource records, query one or more relevant databases, identify resource server 107 as a device within network domain 105 storing this type of data, and report the results to DNS client 101 via a DNS response including the data resource record.
[0055] In another example, DNS client 101 may be interested in the location of a CPU running a specific computation thread, the location of a specific firewall instance, the location of a specific application instance, etc. As long as a data value has been assigned to any data within these data sets, DNS client 101 can locate the resource server 107 within network domain 105 that operates on that data. DNS client 101 adds the data value to a data resource record, and DNS server 103 resolves the location of that data based on that data value. Data values can be defined as needed within the DNS infrastructure, and therefore can be used to address and locate any data required by the operators of DNS system 100.
[0056] It should be noted that, for security reasons, DNS server 103 can be a dedicated DNS device located behind a firewall. This approach ensures that access to data within network domain 105 is restricted to users permitted to access such data (e.g., customers of network domain 105). Furthermore, in some examples, DNS server 103 may be located within network domain 105.
[0057] Figure 2This is a protocol diagram of an exemplary method 200 for locating specified data within a domain using a DNS system. For example, method 200 can be implemented between a DNS client 101 and a DNS server 103 in a DNS system 100. In step 201, the DNS client prepares a DNS request and sends it to the DNS server. The DNS request includes the hostname corresponding to the network domain. The DNS client is interested in specified data within the network domain. Therefore, the DNS client adds a data resource record to the DNS request. This data resource record includes a value that uniquely identifies the data. This value can be any combination of characters, such as alphanumeric characters, that can identify the aforementioned data.
[0058] In step 203, the DNS server resolves the IP address and the location of the data within the network domain. For example, the DNS server may recursively query one or more name server databases to determine the IP address corresponding to the hostname. The DNS server may also use the data value to query other name server databases to determine the location of the data within the network domain associated with the IP address.
[0059] In step 205, the DNS server generates a DNS response and sends it to the DNS client. The DNS response includes the IP address of the network domain. It also includes a data resource record specifying the location of the data within the network domain. The DNS client can then use the information in the DNS response to retrieve and / or access data within the network domain.
[0060] Figure 3An example resource record 300 included in a DNS request (e.g., a DNS request and / or DNS response in method 200) is shown. Therefore, resource record 300 can be used for communication between DNS client 101 and DNS server 103 in DNS system 100. Resource record 300 may include an option code field 301. In one example, option code field 301 may be 16 bits (or 32 bits) long and may include a value specifying the type of resource record 300. For example, option code field 301 may include a value specifying that resource record 300 is a data resource record. In one example, option code field 301 may be set to 18 to specify that resource record 300 is a data resource record. Resource record 300 may also include an option length field 303. Option length field 303 may be 16 bits (or 32 bits) long and may include a value specifying the length (in bits) of resource record 300. Resource record 300 may also include an option data field 305. Option data field 305 may have a variable length and may include one or more data values corresponding to data, wherein the data location is requested by the user. Therefore, resource record 300 uses option data field 305 to specify the data requested by the DNS client. In one example, the DNS server may also include address information corresponding to the location of the data in option data field 305 and add the resource record to the DNS response.
[0061] Figure 4This is a schematic diagram of an exemplary DNS device 400 (e.g., DNS client 101 and / or DNS server 103 in DNS system 100) for locating specified data within a domain. For example, DNS device 400 can be used to implement methods 200, 500, and / or 600 using resource records 300 in a DNS request. Therefore, DNS device 400 is suitable for implementing the disclosed examples / implementations described herein. DNS device 400 includes a downlink port 420, an uplink port 450, and / or one or more transceiver units (Tx / Rx) 410, wherein the one or more transceiver units 410 include transmitters and / or receivers for uplink and / or downlink data communication over a network. DNS device 400 also includes a processor 430 and a memory 432, wherein the processor 430 includes logic units and / or a central processing unit (CPU) for processing data, and the memory 432 is used to store data. DNS device 400 may also include optical-to-electrical (OE) components, electro-optical (EO) components, and / or wireless communication components coupled to uplink port 450 and / or downlink port 420 for data communication via electrical communication networks, optical communication networks, and / or wireless communication networks.
[0062] Processor 430 is implemented through hardware and software. Processor 430 can be implemented as one or more CPU chips, one or more cores (e.g., implemented as a multi-core processor), one or more field-programmable gate arrays (FPGAs), one or more application-specific integrated circuits (ASICs), one or more digital signal processors (DSPs), or any combination thereof. Processor 430 communicates with downlink port 420, Tx / Rx 410, uplink port 450, and memory 432. Processor 430 includes DNS module 414. DNS module 414 can implement one or more of the embodiments disclosed herein. Specifically, DNS module 414 can be used to transmit and / or process resource records added to DNS requests, thus enabling the location of data within a network domain using DNS requests. Therefore, DNS module 414 can be used to execute mechanisms to solve one or more of the problems discussed above. Thus, DNS module 414 improves the functionality of DNS device 400 and solves problems specific to information retrieval techniques. Furthermore, DNS module 414 implements transitions of DNS device 400 to different states. Alternatively, the DNS module 414 may be implemented as instructions stored in memory 432 and executed by processor 430 (e.g., implemented as a computer program product stored in a non-transitory medium).
[0063] Memory 432 includes one or more memory types, such as disk drives, tape drives, solid-state drives, read-only memory (ROM), random access memory (RAM), flash memory, ternary content-addressable memory (TCAM), static random-access memory (SRAM), and other optical and / or electrical storage systems suitable for this task. Memory 432 can be used as an overflow data storage device to store such a program when a program is selected for execution, and to store instructions and data read during program execution.
[0064] Figure 5This is a flowchart of an exemplary method 500 for requesting specified data via a DNS request. For example, method 500 can be used to implement method 200. Furthermore, method 500 can be used by DNS client 101 to request the location of data within network domain 105 from DNS server 103 in DNS system 100. Additionally, method 500 can use a DNS request including resource record 300. Furthermore, method 500 can be used by DNS device 400.
[0065] Method 500 can be initiated when the DNS client requests the location of data within a network domain based on user input, etc. Before initiating the request, the DNS client may receive the hostname of the network domain and a value specifying the data to be located as input. In step 501, the DNS client generates a DNS request and sends it to the DNS server. The DNS request includes a hostname and a resource record specifying the data. In one example, the resource record may include: an option code field, set to a value specifying the type of the resource record; an option length field, set to a value specifying the length of the resource record; and an option data field, set to a value specifying the data. For example, the resource record may include a value corresponding to data within the domain. The data may include values, programs, services, resources, or combinations thereof. In one example, the DNS request is sent as part of the EDNS protocol.
[0066] In step 503, the DNS client receives a DNS response including the IP address corresponding to the hostname and the server address corresponding to the data specified in the resource record. For example, the IP address may be associated with a network domain, and the server address may be within the network domain of the IP address. Then, in step 505, the DNS client may send a request for the data. This request may be directed to the resource server to which the server address belongs within the network domain of the IP address.
[0067] Figure 6 This is a flowchart of an exemplary method 600 for resolving the location of specified data within a domain in response to a DNS request. For example, method 600 may be initiated in response to method 500. Furthermore, method 600 may be used by DNS server 103, which receives a DNS request including resource record 300 from DNS client 101 in DNS system 100. Additionally, method 600 may be used to implement method 200. Method 600 may also be used by DNS device 400.
[0068] Method 600 can be initiated when the DNS server receives a DNS request. In step 601, the DNS server receives a DNS request from a DNS client. The DNS request includes a hostname and a resource record specifying data. In one example, the resource record may include: an option code field, set to a value specifying the type of the resource record; an option length field, set to a value specifying the length of the resource record; and an option data field, set to a value specifying the data. For example, the resource record may include a value corresponding to data within a domain. The data may include values, programs, services, resources, or combinations thereof. In one example, the DNS request is received as part of the EDNS protocol.
[0069] In step 603, the DNS server resolves IP addresses based on hostnames. The DNS server also resolves the server address of the resource server, including the data specified in the resource record. Resolution can be accomplished by querying a local database, communicating with one or more name servers, and / or querying a separate DNS recursive resolver, depending on the specific example. Resolution involves querying and / or communicating with a database to determine the mapping between hostnames and IP addresses, and the mapping between resource records and the server address of the resource server. In some examples, IP addresses may be associated with network domains, and the server address of the resource server may be within the network domain of the IP address.
[0070] In step 605, the DNS server sends a DNS response that includes the IP address and the server address. In some examples, the IP address is included in the DNS response, and the server address is added to the resource record in the DNS response.
[0071] Figure 7 This is a schematic diagram of an exemplary DNS system 700 for locating specified data within a domain. For example, DNS system 700 may be implemented by DNS system 100 and / or DNS device 400. Furthermore, DNS system 700 may be used to implement methods 200, 500, and / or 600 using resource records 300 in DNS requests.
[0072] DNS system 700 may include DNS client 710. DNS client 710 includes sending module 703, which is used to send a DNS request for a resource record including a hostname and specified data. DNS client 710 also includes receiving module 701, which is used to receive a DNS response including an Internet Protocol (IP) address corresponding to the hostname and a server address corresponding to the data specified in the resource record.
[0073] The DNS system 700 may further include a DNS server 720. The DNS server 720 includes a receiving module 721, which receives DNS requests for resource records including hostnames and specified data. The DNS server 720 also includes a resolving module 723, which resolves IP addresses based on hostnames. The resolving module 723 is also used to resolve the server address of a resource server, including the data specified in the resource record. The DNS server 720 further includes a sending module 725, which sends DNS responses including IP addresses and server addresses.
[0074] When there are no intermediate components between the first and second components other than a line, trace, or other medium, the first and second components are directly coupled. When there are intermediate components between the first and second components other than a line, trace, or other medium, the first and second components are indirectly coupled. The term "coupling" and its synonyms include direct coupling and indirect coupling. Unless otherwise stated, the term "about" means a range including ±10% of the following quantity.
[0075] It should also be understood that the steps of the exemplary methods described herein do not necessarily need to be performed in the order described, and the order of the steps of these methods should be understood as merely exemplary. Similarly, in methods consistent with various embodiments of the present invention, these methods may include other steps, and some steps may be omitted or combined.
[0076] While this invention provides several embodiments, it should be understood that the disclosed systems and methods can also be embodied in many other specific forms without departing from the spirit or scope of the invention. These examples are intended to be illustrative rather than restrictive and are not intended to be limited to the details given herein. For example, various elements or components may be combined or integrated into another system, or some features may be omitted or not implemented.
[0077] Furthermore, the techniques, systems, subsystems, and methods described and illustrated as discrete or separate in the various embodiments may be combined or integrated with other systems, components, techniques, or methods without departing from the scope of the invention. Those skilled in the art can identify other examples of changes, substitutions, and modifications, and make such changes, substitutions, and modifications without departing from the spirit and scope of the invention.
Claims
1. A method implemented in a Domain Name System (DNS) server, characterized in that, The method includes: The DNS server's receiver receives DNS requests for resource records that include the hostname and specified data; The DNS server's processor resolves Internet Protocol (IP) addresses based on the hostname; The processor parses the server address of the resource server, which includes the data specified in the resource record; The DNS server's transmitter sends a DNS response including the IP address and the server address; The resource records include: The option code field is set to a value that specifies the type of the resource record. The option length field is set to a value that specifies the length of the resource record. The option data field is set to specify the value of the data.
2. The method according to claim 1, characterized in that, The DNS request was received as part of the Extended DNS (EDNS) protocol.
3. The method according to claim 1 or 2, characterized in that, The IP address is associated with a domain, and the server address is located within the domain associated with the IP address.
4. The method according to claim 3, characterized in that, The resource record includes the value corresponding to the data within the domain.
5. The method according to claim 1, 2, or 4, characterized in that, The process of resolving the server address also includes communicating with one or more name servers to determine the correspondence between the resource record and the server address of the resource server.
6. The method according to claim 1, 2, or 4, characterized in that, The data includes values, programs, services, resources, or combinations thereof.
7. A method implemented in a Domain Name System (DNS) client, characterized in that, The method includes: The DNS client's sender sends a DNS request for a resource record that includes the hostname and specified data; The receiver of the DNS client receives a DNS response including the Internet Protocol IP address corresponding to the hostname and the server address corresponding to the data specified in the resource record; The resource records include: The option code field is set to a value that specifies the type of the resource record. The option length field is set to a value that specifies the length of the resource record. The option data field is set to specify the value of the data.
8. The method according to claim 7, characterized in that, The DNS request was sent as part of the Extended DNS (EDNS) protocol.
9. The method according to claim 7 or 8, characterized in that, The IP address is associated with a domain, and the server address is located within the domain associated with the IP address.
10. The method according to claim 9, characterized in that, The resource record includes the value corresponding to the data within the domain.
11. The method according to claim 7, 8, or 10, characterized in that, The data includes values, programs, services, resources, or combinations thereof.
12. The method according to claim 7, 8, or 10, characterized in that, The method further includes: the sender sending a request for the data, wherein the request is directed to a resource server to which the server address belongs within the domain of the IP address.
13. A Domain Name System (DNS) device, characterized in that, The DNS device includes: A processor, a receiver coupled to the processor, a memory coupled to the processor, and a transmitter coupled to the processor, wherein the processor, the receiver, the memory, and the transmitter are configured to perform the method according to any one of claims 1 to 12.
14. A non-transitory computer-readable medium, characterized in that, The non-transitory computer-readable medium includes a computer program product for use by a Domain Name System (DNS) device, the computer program product including computer-executable instructions stored in the non-transitory computer-readable medium, which, when executed by a processor, cause the DNS device to perform the method of any one of claims 1 to 12.
15. A Domain Name System (DNS) server, characterized in that, The DNS servers include: The receiving module is used to receive DNS requests for resource records that include the hostname and specified data; The parsing module is used for: Resolve the Internet Protocol (IP) address based on the hostname; The server address of the resource server, including the data specified in the resource record, is resolved; A sending module is used to send a DNS response including the IP address and the server address; The resource records include: The option code field is set to a value that specifies the type of the resource record. The option length field is set to a value that specifies the length of the resource record. The option data field is set to specify the value of the data.
16. The DNS server according to claim 15, characterized in that, The DNS server is also used to perform the method of any one of claims 1 to 6.
17. A Domain Name System (DNS) client, characterized in that, The DNS client includes: The sending module is used to send DNS requests for resource records that include the hostname and specified data; A receiving module is configured to receive a DNS response including an Internet Protocol IP address corresponding to the hostname and a server address corresponding to the data specified in the resource record; The resource records include: The option code field is set to a value that specifies the type of the resource record. The option length field is set to a value that specifies the length of the resource record. The option data field is set to specify the value of the data.
18. The DNS client according to claim 17, characterized in that, The DNS client is also used to perform the method according to any one of claims 7 to 12.