WO2016074150A1 - Streamlining location-dependent dns configuration - Google Patents

Streamlining location-dependent dns configuration Download PDF

Info

Publication number
WO2016074150A1
WO2016074150A1 PCT/CN2014/090809 CN2014090809W WO2016074150A1 WO 2016074150 A1 WO2016074150 A1 WO 2016074150A1 CN 2014090809 W CN2014090809 W CN 2014090809W WO 2016074150 A1 WO2016074150 A1 WO 2016074150A1
Authority
WO
WIPO (PCT)
Prior art keywords
dns
name
resolutions
servers
domain
Prior art date
Application number
PCT/CN2014/090809
Other languages
French (fr)
Inventor
Fuhua ZENG
Guizhu WU
Original Assignee
21Vianet Group, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 21Vianet Group, Inc. filed Critical 21Vianet Group, Inc.
Priority to PCT/CN2014/090809 priority Critical patent/WO2016074150A1/en
Publication of WO2016074150A1 publication Critical patent/WO2016074150A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1036Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Definitions

  • the present invention relates generally to internet communications, and in particular to configuring name servers.
  • a content provider such as “sina. com. cn” may have many domain names such as “sports. sina. com. cn” , “news. sina. com. cn” , “cars. sina. com. cn” , etc.
  • Different domain names of the content provider can be used to serve out different types of internet-based content.
  • multiple cache server nodes with different host addresses may be used to cache and distribute internet-based content associated with a domain name to user devices located in different continents, countries, provinces, regions, computer networks, etc.
  • the amount of name resolution data to be configured into an intelligent domain name system (DNS) server for resolving multiple domain names of a content provider into multiple host addresses may be estimated to be on the order of N x M, where N represents the number of domain names of the content provider, and M represents the number of host addresses of multiple cache server nodes used with each of the domain names.
  • DNS configuration operations to configure such an intelligent DNS server can be extremely laborious and error-prone, as N (e.g. , 10,000, etc. ) x M (e.g. , 100,etc. ) can be a very large number (e.g., 1 million, etc. ) .
  • FIG. 1 depicts an example configuration for streamlined DNS configuration
  • FIG. 2 illustrates an example domain name space
  • FIG. 3 illustrates example name resolutions from domain names under a managed domain name to respective host addresses at respective locations
  • FIG. 4A illustrates an example streamlined DNS configuration platform
  • FIG. 4B illustrates an example block diagram with related data flows for streamlined configuration operations on an intelligent DNS server by a streamlined DNS configuration platform
  • FIG. 5 illustrates an example process flow
  • FIG. 6 illustrates an example hardware platform on which a computer or a computing device as described herein may be implemented.
  • Example embodiments which relate to configuring name servers, are described herein.
  • numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are not described in exhaustive detail, in order to avoid unnecessarily occluding, obscuring, or obfuscating the present invention.
  • An intelligent DNS service client such as a content provider, a website operator, etc., may delegate to a DNS server (e.g., a third-party DNS server, an intelligent DNS server, etc. ) as an authoritative name server for resolving domain names affiliated with or owned by the intelligent DNS service client.
  • a DNS server e.g., a third-party DNS server, an intelligent DNS server, etc.
  • the intelligent DNS service client for example a content provider, may have a large number of domain names with corresponding networks or subnets located in various locations.
  • a large number of users such as network administrators, etc., may be responsible for managing different domain names and network configurations of networks or subnets corresponding to these different domain names.
  • a large nmnber of users such as domain administrators or network administrators may need to go over their network configurations in order to create, review and confirm a large amount of DNS name resolution data.
  • techniques as described herein can be used to provide a streamlined DNS configuration platform that collects DNS query processing logs from DNS servers that are deployed in different access networks, service provider networks, etc.
  • An intelligent DNS service client or its representative can input or specify a managed domain name.
  • a list, hierarchy, set, table, etc., of domain names related to (e.g., under, etc. ) the managed domain name e.g., “sina. com. cn” , etc.
  • the streamlined DNS configuration platform can be automatically determined by the streamlined DNS configuration platform based on the DNS query processing logs collected from the DNS servers.
  • a location-dependent domain name resolver e.g., a real time domain name probe, etc.
  • DNS servers e.g., local DNS servers, recursive servers, etc.
  • the location-dependent domain name resolver Based on DNS responses received from these DNS servers, the location-dependent domain name resolver generates probed name resolutions that represent how these DNS servers resolve the domain names to (e.g., location-dependent, etc. ) host addresses.
  • the probed name resolutions may include name resolutions (or mappings) from each domain name in the domain names as identified from the DNS query processing logs to one or more host addresses as resolved to by the DNS servers in the different networks, locations, etc.
  • the streamlined DNS configuration platform can generate candidate name resolutions for configuring one or more intelligent DNS servers.
  • the candidate name resolutions may include, but are not limited to only, any of: probed name resolutions, resource records that explicitly or implicitly map domain names to location-dependent host addresses, DNS view definitions, DNS zone definitions, etc.
  • the candidate name resolution are to be reviewed, edited, approved, etc., by the intelligent DNS service client or its representative for the purpose of using approved name resolutions to configure the one or more intelligent DNS servers.
  • the candidate name resolutions automatically generated by the streamlined DNS configuration platform based on the probed name resolutions are satisfactory, the candidate name resolutions can be approved by the intelligent DNS service client or its representative with as few as a single user action such as one of a single key pressing, a single button pressing, a single icon selection, etc. If the candidate name resolutions as automatically generated by the streamlined DNS configuration platform are not satisfactory, the candidate name resolutions can be modified by the intelligent DNS service client or its representative (e.g., in an interactive manner, manually, etc. ) , until the candidate name resolutions are satisfactory and approved.
  • techniques as described herein can be used to provide streamlined DNS configuration for an intelligent DNS server and greatly simplify the task of delegating DNS name resolution tasks related to domain names under a managed domain name to the intelligent DNS server as an authoritative name server. For example, there is no need for a large number of users such as domain administrators or network administrators to go over their respective network configurations to create, review and confirm (e.g., manually, etc. ) a large number of name resolution entries, resource records, view definitions, zone definitions, etc. An intelligent DNS server to be tasked to serve location-dependent host addresses can be configured with approved name resolutions that has a relatively low error rate. Since DNS server configuration management can be made by performing relatively simple, fast, and streamlined configuration operations, time and effort required to configure an intelligent DNS server is significantly reduced under the techniques as described herein as compared with other approaches.
  • candidate name resolutions as described herein are generated based on (e.g., up-to-date, real time, etc. ) DNS responses from DNS servers located in different networks, different locations, etc.
  • the candidate name resolutions as described herein match network configurations actually existing in the field and have a relatively high degree of accuracy.
  • the candidate name resolutions can be generated by real time DNS queries (e.g., from time to time, periodically, continuously, on demand, etc. )
  • the candidate name resolutions has a relatively high degree of accuracy and timeliness (or currency) .
  • the DNS configuration information is created by different users, different groups, different organizations, etc., witlin a possibly large organization, the DNS name resolution data under those approaches may not have a high degree of accuracy and timeliness.
  • DNS server By querying DNS servers actually deployed in different access networks, different service provider networks, different locations, etc., techniques as described herein can be used to prevent or reduce missing, incorrect, or outdated name resolutions for config-uring an intelligent DNS server.
  • the intelligent DNS server may be configured with user-approved name resolutions with a high degree of accuracy and timeliness, Subsequent DNS responses generated by the intelligent DNS servers can be relatively accurate and up to date with the actual network configurations deployed in the field.
  • Other operations e.g., online transactions, etc.
  • applications e.g., media playing applications, etc.
  • activities e.g., internet accessing activities, etc.
  • etc. that (e.g., critically, etc. ) depend on correct DNS operations, can operate relatively smoothly with DNS services that are relatively error free.
  • mechanisms as described herein form a part of an information processing system, including but not limited to any of: a computer server, a network switch, a network element, a router, a gateway, a computer cluster, an application server system, a database system, a handheld device, game machine, television, laptop computer, netbook computer, tablet computer, cellular radiotelephone, electronic book reader, point of sale terminal, desktop computer, computer workstation, computer kiosk, plug-in devices, media accessing devices, or various other kinds of terminals and media processing units.
  • FIG. 1 depicts an example configuration 100 for streamlined DNS configuration, which comprises an intelligent DNS server 102, a streamlined DNS configuration platform 104, local DNS servers 106, an intelligent DNS service client 108, a delegating DNS server 110, a client device 110, a user device 116, etc.
  • Some or all of the components, devices, systems, modules, etc., in the example configuration (100) of FIG. 1 may be operatively linked through one or more computer networks such as one or more of wide area networks (WANs) , local area networks (LANs) , customer premises networks (CPNs) , wireless networks, wireline networks, optical networks, non-optical networks, telecom networks, non-telecom networks, etc.
  • WANs wide area networks
  • LANs local area networks
  • CPNs customer premises networks
  • wireless networks wireline networks, optical networks, non-optical networks, telecom networks, non-telecom networks, etc.
  • the intelligent DNS service client (108) may represent one or more of (e.g., internet-based, etc. ) content providers, websites, portals, database systems, computer servers, etc.
  • the intelligent DNS service client (108) may be a content provider that uses a variety of domain names (e.g., 210 of FIG. 2, etc. ) under a managed domain name (e.g., 208 of FIG. 2, etc. ) to provide content that is to be rendered/presented on user devices (or user computing devices) such as the user device (116) , etc., operated by content users.
  • each of the domain names (210) under the managed domain name (208) affiliated with the intelligent DNS service client (or used by the content provider, etc. ) may be resolved in DNS name resolution processes to one or more host addresses.
  • Host addresses for a domain name under the managed domain name may be location-dependent.
  • the same domain name e.g., under the managed domain name 208, etc.
  • user devices e.g., 116, etc.
  • a location-dependent host address refers to a host address that is determined not just based on a domain name, but also on a location (as an input parameter) as determined by an intelligent DNS server.
  • Examples of locations as described heroin may include, but are not limited to only, one or more of: geographic locations of the user devices as estimated by geotagging or geolocation techniques; service provider networks such as China Telecom, China Unicom, etc., network topology; individual host addresses of the user devices; portions of individual host addresses of the user devices; access networks in which the user devices are located; subnets related to individual host addresses of the user devices; etc.
  • the intelligent DNS server (102) can be configured to receive, ascertain, estimate, etc., a location of a user device (e.g., 116 of FIG. 1, etc. ) thr-ough DNS protocol operations (e.g., edns-client-subnet related parameters, etc. ) .
  • a domain name accessed by first user devices at a first location of a user device may be resolved to a first host address; the same domain name accessed by second user devices at a second location may be resolved to a second host address; and so on.
  • a content provider may wish to serve different content to users at different locations (e.g., different geographic locations, different networks, different parts of a network topology, etc. ) .
  • a website operator may wish to serve from different caching server nodes to users at different locations, for example based on respective proximities of the different caching server nodes to user devices operated by the users, to access networks in which the user devices are located, to service provider networks in which the user devices are located, etc.
  • the delegating DNS server (110) comprises software, hardware, a combination of software and hardware, etc., configured to receive DNS queries related to the domain names (210) under the managed domain name (208) , send DNS responses comprising delegation records to redirect senders of the DNS queries to the intelligent DNS server (102) , etc.
  • the delegating DNS server (110) has been depicted as a part of the intelligent DNS service client (108) in FIG. 1. It should be noted that a delegating DNS server as described herein may be any DNS server that redirects senders of received DNS queries related to the domain names (210) under the managed domain name (208) to the intelligent DNS server (102) .
  • the delegating DNS server (110) may be a third party DNS server that is not a part of the intelligent DNS service client (108) .
  • the local DNS servers (106) comprises a local DNS server 106-1, a local DNS server 106-2, a local DNS server 106-N, etc.
  • at least two or more of these local DNS servers may be at two or more different access networks (e.g., a fixed accessed network, a mobile access network, a customer premises network or CPN, etc. ) such as one of 112-1, 112-2, 112-N, etc.
  • a local DNS server (e.g., 106-1, 106-2, 106-N, etc. ) of the local DNS servers (106) comprises software, hardware, a combination of software and hardware, etc., configured to receive DNS queries from DNS clients such as “nsloopup” , “dig” , a location-dependent domain name resolver (e.g., 410 of FIG. 4A, etc. ) , etc.; returns corresponding DNS responses to the DNS clients; etc.
  • DNS clients such as “nsloopup” , “dig” , a location-dependent domain name resolver (e.g., 410 of FIG. 4A, etc. ) , etc.; returns corresponding DNS responses to the DNS clients; etc.
  • a local DNS server as described herein may be implemented as a recursive name server configured to query other name servers (e.g., DNS servers, root name server, zone name servers, etc. ) hierarchically to obtain a host address (e.g., an IP address, a non-domain-name network address, etc. ) for a queried domain name such as the domain name “sina. com. cn” , “www. sina. com. cn” , “news. sina. com. cn” , “sports. sina. com. cn” , etc.
  • name servers e.g., DNS servers, root name server, zone name servers, etc.
  • a host address e.g., an IP address, a non-domain-name network address, etc.
  • a local DNS server as described herein may comprise cached resource records related to some or all of the domain names (210) under the managed domain names. These cached resource records may, but are not limited to only, resource records from DNS responses of other authoritative name servers before some or all of the domain names (210) under the managed domain name (208) are delegated to the intelligent DNS server (102) . These cached resource records may have time-to-live (TTL) values to specify when any of the cached resource records is to expire. Ifa cached resource record is valid, the local DNS server may use the cached resource record directly for responding to a DNS query relating to a domain name in the cached resource record without sending DNS queries to other DNS servers.
  • TTL time-to-live
  • the intelligent DNS server (102) may be an authoritative DNS server configured, assigned or delegated for providing authoritative DNS name resolutions on the domain names (210) associated with (e.g., under, etc. ) the managed domain name (208) of a DNS name space (e.g., 200 of FIG. 2, etc. ) .
  • the intelligent DNS server comprises software, hardware, a combination of software and hardware, etc., configured to receive DNS queries; act as the authoritative name server if the received DNS queries are determined to be related to an individual domain name in the domain names (210) under the managed domain name (208) ; resolve the individual domain name to one or more (e.g., location-dependent, etc. ) host addresses; return the host addresses in DNS responses to senders of the DNS queries, etc.
  • the intelligent DNS server (102) has been depicted as external to the intelligent DNS service client (108) in FIG. 1.
  • the intelligent DNS server (102) may be a third party DNS server in relation to the intelligent DNS service client (108) .
  • an intelligent DNS server may be any DNS server that serves as an authoritative name servers for responding to DNS queries related to the domain names (210) under the managed domain name (208) and that is capable of resolving a domain name to location-dependent host addresses.
  • the intelligent DNS server (102) may be an internal DNS server that is a part of the intelligent DNS service client (108) .
  • more than one intelligent DNS servers e.g., primary, secondary, etc.
  • ) may be configured, assigned or delegated for providing authoritative DNS name resolutions on the domain names (210) associated with (e.g., under, etc. ) the managed domain name (208) of a DNS name space (e.g., 200 of FIG. 2, etc. ) .
  • the streamlined DNS configuration platform (104) comprises software, hardware, a combination of software and hardware, etc., configured to interact with the client device (110) , for example, to obtain the managed domain name (e.g., “sina. com. cn” , etc. ) , to perform streamlined configuration operations on the intelligent DNS server (102) ; to collect DNS query processing logs from a variety of DNS servers; to query the local DNS servers (106) in different access networks (e.g., 112-1, 112-2, 112-N, etc. ) what host addresses a domain name under the managed domain name is resolved to; etc.
  • the managed domain name e.g., “sina. com. cn” , etc.
  • the local DNS servers (106) in different access networks (e.g., 112-1, 112-2, 112-N, etc. ) what host addresses a domain name under the managed domain name is resolved to; etc.
  • the client device (110) comprises software, hardware, a combination of software and hardware, etc., configured to interact with a user of the client device (110) with one or more user interfaces presented at the client device (110) , receive user input from the user, communicate with the streamlined DNS configuration platform (104) , etc.
  • Some or all of the one or more user interfaces may be driven or provided by the streamlined DNS configuration platform (104) , or a DNS configuration front end (e.g., 406 of FIG. 4A, etc. ) therein.
  • the client device (110) has been depicted as a part of the intelligent DNS service client (108) in FIG. 1. It should be noted that such a client device may be any computing device used by a user to communicate with the streamlined DNS configuration platform (104) for the purpose of performing streamlined DNS configuration of the intelligent DNS server (102) . In an example, in some embodiments, the client device (110) may be a part of the intelligent DNS server (102) . In another example, in some embodiments, the client device (110) may be a mobile computing device operated by a user.
  • the user device (102) comprises software, hardware, a combination of software and hardware, etc., configured to interact with a user of the user device (116) via one or more user interfaces; based on user input from the user, sends DNS queries to a local DNS server relating to one or more of the domain names (210) under the managed domain name (208) ; causes the local DNS server to send DNS queries to the intelligent DNS server (102) relating to the one or more of the domain names (210) under the managed domain name (208) ; receive DNS responses that originates from the intelligent DNS server (102) relating to the one or more of the domain names (210) under the managed domain name (208) ; etc.
  • the intelligent DNS server (102) of FIG. 1 may be used to respond to DNS queries caused by many user devices concurrently, serially, part concurrentty part serially, etc.
  • an internet accessing application such as a Microsoft Internet Browser (IE) , a Fire Fox browser, a media playing application, etc.
  • a user of the user device (116) may direct the internet accessing application to access content of a number of websites.
  • a resource locator used by the internet accessing application such as a Universal Resource Locator (URL) , etc., may comprise one of the domain names (210) that needs to be resolved to IP addresses eventually through the intelligent DNS server (102) of FIG. 1 after the intelligent DNS server (102) is delegated to as an authoritative name server for domain names that include the one of the domain names (210) .
  • An example domain name may be “news. sina. com.
  • cn which may represent a specific domain name under which the intelligent DNS service client (108) such as a content provider, etc., provides a wide variety of internet-based, possibly location-dependent, rich contents from one or more caching server nodes with one or more (e.g., location-dependent, etc. ) host addresses to user devices (e.g., 116, etc. ) .
  • FIG. 2 illustrates a domain name space 200.
  • the domain name space (200) comprises a first-level zone 202 (e.g., a root zone, a “. ” zone, etc. ) , a second-level zone 204 (e.g., the “. cn” zone, etc. ) , a third-level zone 206 (e.g., the “com. cn”zone, etc. ) , a managed domain name 208, domain names 210 under the managed domain name (208) , etc. While FIG. 2 illustrates the managed domain name (208) as below the third-level zone (206) , generally speaking, the managed domain name (208) may be below a different zone other than the third-level zone (206) as illustrated.
  • a first-level zone 202 e.g., a root zone, a “. ” zone, etc.
  • a second-level zone 204 e.g., the “. cn” zone, etc.
  • FIG. 3 illustrates example name resolutions fom domain names (e.g., 210 of FIG. 2, etc. ) under a managed domain nae (e.g., 208 of FIG. 2, etc. ) to respective (e.g., location-dependent, etc. ) host addresses.
  • these name resolutions represent candidate name resolutions to be reviewed, edited, approved, configured, etc., into a intelligent DNS server (e.g., 102 of FIG. 1, etc. ) by a streamlined DNS configuration platform (e.g., 104 of FIG. 1, etc. ) using techniques as described herein.
  • the domain names (210) comprse a first domain name 210-1, a second domain name 210-2, etc.
  • Each domain name i the domai names (210) may be mapped to one or more host addresses in DNS name resolution processes.
  • the first domain nae (210-1) is mapped to first host addresses (302-1) , which comprise host address 1 (302-1-1) , host address 2 (302-1-2) , etc.
  • the second domain name (210-2) is mapped to second host addresses (302-2) , which comprse host address 3 (302-2-1) , host address 4 (302-2-2) , etc.
  • a host address may be location-dependent. For exaple, as illustrated in FIG. 3, host address 1 (302-1-1) , host address 2 (302-1-2) , host address 3 (302-2-1) , host address 4 (302-2-2) , etc., respectively correspond to location 1 (304-1-1) , location 2 (302-1-2) , location 3 (304-2-1) , location 4 (304-2-2) , etc.
  • DNS queries caused by user devices located in different locations for the same individual domai name (e.g., the first domain name 210-1, etc. ) in the domain names (210) can be responded with DNS responses (or answers) comprsing rsource records idicating different host addesses (e.g., host address 1, host address 2, et. ) .
  • the intelligent DNS serer (102) determines (e.g., based on edns-client-subnet related data field values, etc. ) that a received DNS query for the first domain name (210) is caused by a first user device (e.g., 116 of FIG. 1, etc. ) at location 1 (304-1-1) , then the itelligen DNS server (102) can use the name resolutions of FIG. 3 to resolve the first domain name (210) to host address 1 (302-1-1) , which corresponds to location 1 (304-1-1) according to the name resolutions configured in the intelligent DNS server (102) .
  • the intelligent DNS server (102) determines (e.g., based on edns-client-subnet related data field values, etc. ) that a received DNS query for the first domain name (210) is caused by a second user device (e.g., other than 116 of FIG. 1, etc. ) at location 2 (304-1-2) , then the intelligent DNS server (102) can use the name resolutions of FIG. 3 to resolve the first domain name (210) to host address 2 (302-1-2) , which corresponds to location 2 (304-1-2) according to the name resolutions configured in the intelligent DNS server (102) .
  • host address 1 may be a host address of a first caching server node for the first domain name (210-1)
  • host address 2 may be a host address of a second caching server node for the first domain name (210-1)
  • the first cachig serer node may be an optimal content delivery network (CDN) node among a plurality of CDN nodes that is optimized relative to the first user device
  • the second caching server node may be an optimal CDN node among the plurality of CDN nodes that is optimized relative to the second user device.
  • CDN content delivery network
  • the first caching server node may be configured to serve first content to the first user device, whereas the second caching server node may be configured to serve second content (which may or may not be the same as the first content) to the second user device.
  • different host addresses are those of different network elements such as caching server nodes. In some embodiments, two or more different host addresses are those of a single network element with multiple network addresses.
  • a location of a user device is used by an intelligent DNS server to determine a host address of a domain name. It should be noted that that is for illustration purposes only.
  • a location as described herein is not limited to be a physical location (as determined or estimated by an intelligent DNS server) such as a continent, a country, a state or province, a city, a postal code, a neighborhood, an amusement park, a geographic location, a global positioning system (GPS) coordinate value, etc.
  • a location as described herein may refer to a logical location such as a subnet of a host address of a user device, a portion (e.g., a network prefix, a certain number of bits as filtered by a network mask, etc.
  • a host address of a user device e.g., a GPRS related information, an identity of a service provider network, a particular type of network (e.g., a first host address for a mobile network, a second host address for a landline-based network, etc. ) , etc.
  • a particular type of network e.g., a first host address for a mobile network, a second host address for a landline-based network, etc.
  • an intelligent DNS server may be used by an intelligent DNS server to determine a location that can be used as an input parameter to resolve a domain name to a host address.
  • an intelligent DNS server e.g., 102 of FIG. 1, etc.
  • a location as described herein is not limited to be given or extracted from a DNS query (e.g., edns-client-subnet parameter values, etc. ) .
  • an intelligent DNS server e.g., 102 of FIG. 1, etc.
  • Such determination of a location to be used for selecting a resolved-to host address can be based on one or more input parameters, which may include but are not limited to only one or more of DNS query parameter values, host address information of a user device, a host address information of a local DNS server used by the user device, etc.
  • Name resolutions as described herein, such as those of FIG. 3, can be represented in one or more of a variety of ways.
  • an intelligent DNS server (e.g., 102 of FIG. 1, etc. ) may be configured by a streamlined DNS configuration platform (e.g., 104 of FIG. 1, etc. ) with name resolutions in the form of resource records (e.g., in zone file, in configuration file, etc. ) that explicitly map individual domain names to respective host addresses such as host address 1 (302-1-1) , host address 2 (302-1-2) , host address 3 (302-2-1) , host address 4 (302-2-2) , etc. , dependent on locations such as location 1 (304-1-1) , location 2 (304-1-2) , location 3 (304-2-1) , location 4 (304-2-2) , etc. , as input parameters.
  • a streamlined DNS configuration platform e.g., 104 of FIG. 1, etc.
  • resource records e.g., in zone file, in configuration file, etc.
  • resource records e.g., in zone file, in configuration file, etc.
  • resource records e.g., in zone file, in
  • an intelligent DNS server (e.g., 102 of FIG. 1, etc. ) may be configured by a streamlined DNS configuration platform (e.g., 104 of FIG. 1, etc. ) with name resolutions in the form of DNS view definitions, DNS zone definitions, etc., (e.g., in zone file, in configuration file, etc. ) that explicitly or implicitly maps domain names to host addresses.
  • a streamlined DNS configuration platform e.g., 104 of FIG. 1, etc.
  • name resolutions in the form of DNS view definitions, DNS zone definitions, etc., (e.g., in zone file, in configuration file, etc. ) that explicitly or implicitly maps domain names to host addresses.
  • host addresses resolved from a domain name may be organized with a hierarchy of locations.
  • the hierarchy of locations used to organize the host addresses may comprise one or more non-leaf nodes (e.g., at one, two or more levels, etc. ) representing locations and one or more leaf nodes representing host addresses.
  • the hierarchy may be implemented with one or more of resource records dependent on locations as input parameters, DNS view definitions, DNS zone definitions, name resolution functions or algorithms configured to return resource records based on a domain name and location as input parameters, etc.
  • host addresses related to a section of the hierarchy of locations may be defined or implemented as a DNS view or zone in name resolutions as described herein.
  • FIG. 4A illustrates an example streamlined DNS configuration platform (e.g., 104, etc. ) , which comprises a DNS log collector 402, a domain information repository 404, a DNS configuration front end 406, a one-key DNS configuration module 408, a location-dependent domain name resolver 410, a domain information configurator 412, etc.
  • Some or all of the components, devices, systems, modules, etc. , in the streamlined DN S configuration platform (104) may be implemented with one or more computing devices that are operatively linked through one or more of computer networks, interconnects, buses, data links, etc.
  • the DNS log collector (402) comprises software, hardware, a combination of software and hardware, etc., configured to collect DNS query processing logs (e.g., 434 of FIG. 4B, etc. ) from DNS servers, for example, in a number of service provider networks. These DNS servers may be used by the service provider networks to provide DNS name resolution services to service subscribers, GPRS users, etc.
  • the DNS servers from which the DNS query processing logs (434) are local DNS servers (e.g., 106 of FIG. 1, etc. ) . In some embodiments, at least some of the DNS servers from which the DNS query processing logs (434) are non-local DNS servers.
  • a service provider deploys DNS logging functionality with the DNS servers to generate logs for DNS query processing operations. These logs may be used by the service provider to optimize its operations in DNS services, to improve subscriber experience, etc. Insome embodiments, some or all of these logs, which are already being generated by the DNS servers in the service provider’s networks, can be collected by the DNS log collector (402) as a part of the DNS query processing logs (434) .
  • a service provider network from which the DNS log collector is to collect a part of the DNS query processing logs (434) does not implement logging functionality for DNS query processing.
  • the DNS log collector (402) may be configured to obtain or intercept some or all external traffic of the service provider network (e.g., assuming that a proper agreement with the service provider network is in effect, assuming that it is legal to obtain such external traffic, etc. ) , filter away non-DNS related traffic, generate a part of the DNS query processing logs (434) based on the remaining filtered-in DNS related traffic, etc.
  • the DNS query processing logs (434) may contain a large amount of DNS query information and DNS response information, and possibly constitute big data. Domain names (e.g., 210 of FIG. 2, etc. ) under a managed domain name (e.g., 208 of FIG. 2, etc. ) can be obtained or determined based on the DNS query processing logs (434) .
  • the domain names (210) determined from the DNS query processing logs (434) can be organized in a variety of ways such as list, hierarchy, set, table, etc., and stored in the domain information repository (404) .
  • the domain information repository (404) comprises software, hardware, a combination of hardware and software, etc., configured to store some or all of the DNS query processing logs (434) , probed name resolutions, candidate name resolutions (e.g., 454 of FIG. 4B, etc. ) , approved name resolutions, etc.
  • the domain information repository (404) can be configured to support data access operations, data modification operations, data creation operations, etc., related to data in the domain information repository (404) .
  • some or all of the data in the domain information repository (404) may be dynamically updated (e.g., after the intelligent DNS server has already been delegated as an authoritative name servers for domain names under the managed domain name 208, etc. ) as changes to some or all of the DNS query processing logs (434) , probed name resolutions, candidate name resolutions (e.g., 454 of FIG. 4B, etc. ) , approved name resolutions, etc., occur.
  • the DNS configuration front end (406) comprises software, hardware, a combination of software and hardware, etc., configured to interact with a user through one or more user interfaces presented at a client device (e.g., 110 of FIG. 1, etc. ) , receive the managed domain name (e.g., 208 of FIG. 2, etc. ) as specified by the user, allows the user to invoke streamlined DNS configuration operations with respect to the managed domain name (208) , etc.
  • a client device e.g., 110 of FIG. 1, etc.
  • the managed domain name e.g., 208 of FIG. 2, etc.
  • the user can interact with one or more user interfaces presented at the client device (110) by the DNS configuration front end (406) to access and use the streamlined DNS configuration platform (104) to configure one or more intelligent DNS servers (e.g., 102 of FIG. 1, etc. ) .
  • the user can use as few as a single key input to cause the one or more intelligent DNS servers to be configured with accurate and timely approved name resolutions.
  • the user does not need to spend a significant amount of time to enter (e.g., manually) each name resolution for each domain name for a host address at each location.
  • the one-key DNS configuration module (408) comprises software, hardware, a combination of software and hardware, etc., configured to receive a managed domain name (e.g., 208 of FIG. 2, etc. ) from the DNS configuration front end (406) ; determines domain names (e.g., 210 of FIG. 2, etc. ) under the managed domain name (210) based on data in the domain information repository (404) such as the DNS query processing logs (434) , etc.; use the domain names (210) as determined from the DNS query processing logs (434) as primary information to perform streamlined DNS configuration operations; etc.
  • a managed domain name e.g., 208 of FIG. 2, etc.
  • the DNS configuration front end (406) determines domain names (e.g., 210 of FIG. 2, etc. ) under the managed domain name (210) based on data in the domain information repository (404) such as the DNS query processing logs (434) , etc.
  • the location-dependent domain name resolver (410) comprises software, hardware, a combination of software and hardware, etc., configured to perform real time probing of name resolutions (or probed name resolutions) from domain names (e.g., 210 of FIG. 2, etc. ) to host addresses after the one-key DNS configuration module (408) is invoked.
  • the location-dependent domain name resolver (410) may be implemented as a backend of the streamlined DNS configuration platform (104) .
  • the location-dependent domain name resolver (410) is configured to send DNS queries for each of the domain names (210) to local DNS servers (e.g., 106, etc. ) in different access networks (e.g., 112-1, 112-2, 112-N, etc. ) , and receive corresponding DNS responses that resolve that domain name to one or more (e.g., location-dependent, etc. ) host addresses in different access networks.
  • the streamlined DNS configuration platform (104) can be configured to generate candidate name resolutions (e.g., 454 of FIG. 4B, etc. ) based at least in part on the probed name resolutions derived from the DNS responses of the DNS servers probed by the location-dependent domain name resolver (410) , and store the candidate name resolutions (454) into the domain information repository (404) .
  • some or all the probed name resolutions can be imported, organized, converted, etc., into the candidate name resolutions (454) .
  • the candidate name resolutions (454) may include, but are not limited to only, any of: one or more host addresses of each of the domain names (210) under the managed domain name (208) , DNS view information (e.g., DNS Bind View definitions, etc. ) ,
  • the DNS configuration front end (406) is configured to present to the user the candidate name resolutions (454) , which the streamlined DNS configuration platform (104) has matched the domain names (210) to respective host addresses (e.g., 302-1-1, 302-1-2, 302-2-1, 302-2-2, etc., of FIG. 3, etc. ) at different locations (e.g., 304-1-1, 304-1-2, 304-2-1, 304-2-2, etc., of FIG. 3, etc. ) based at least in part on the probed name resolutions.
  • the candidate name resolution (454) may be presented by the DNS configuration front end (406) at one or more user interfaces on the client device (I10) .
  • the user can provide confirmation or approval possibly with as few as a single user action such as a single key pressing, a single button pressing, etc.
  • the candidate name resolutions are not satisfactory, the user can perform addition, modification, deletion, etc., of the candidate name resolutions (454) until the user provides confirmation or approval that the candidate name resolutions (454) are satisfactory. Since the user is refining on the candidate name resolutions (454) that are generated based on real time probing of name resolutions from the local DNS servers (106) , the user may not need to perform much data manipulation on the candidate name resolutions (454) in order to ensure the correctness and readiness of the candidate name resolutions (454) for configuring the intelligent DNS servers.
  • candidate name resolutions (454) because the review and approval process of candidate name resolutions (454) is streamlined, the user who performs these tasks is not required to be an extraordinarily resourceful domain or network administrator in order for the intelligent DNS servers to be correctly configured with accurate and timely approved name resolutions.
  • the domain information configurator (412) comprises software, hardware, a combination of software and hardware, etc., configured to interface with the one or more intelligent DNS servers (e.g., 102 of FIG. 1, etc. ) , causes DNS configuration operations to be performed on each of the one or more intelligent DNS servers (e.g., 102 of FIG. 1, etc. ) using the approved name resolutions, etc.
  • the domain information configuration (412) may communicate with one or more DNS configuration units (e.g., configuration management agent processes, etc. ) of the one or more intelligent DNS servers (e.g., 102 of FIG. 1, etc. ) , cause the one or more DNS configuration units to perform the DNS configuration operations on each of the one or more intelligent DNS servers (e.g., 102 of FIG. 1, etc. ) using the approved name resolutions.
  • DNS configuration units e.g., configuration management agent processes, etc.
  • FIG. 4B illustrates an example block diagram with related data flows for streamlined configuration operations on an intelligent DNS server (e.g., 102 of FIG. 1, etc. ) by a streamlined DNS configuration platform (e.g., 104 of FIG. 1, etc. ) .
  • a DNS log collector e.g., 402 of FIG. 4A, etc.
  • the streamlined DNS configuration platform 1014 collects DNS query processing logs 434 from one or more internet service providers (not shown) in data flow 432.
  • the one or more internet service providers may comprise landline-based access networks, mobile access networks, etc., in which local DNs servers (e.g., 106 of FIG. 1, etc. ) operate to receive DNS queries for domain names from a number of user devices in the one or more internet service providers.
  • local DNs servers e.g., 106 of FIG. 1, etc.
  • at least some of the DNS query processing logs (434) are collected from the local DNS servers (106) .
  • the DNS query processing logs (434) may include log information related to processing DNS requests by the local DNS servers (106) .
  • One or more first local DNS servers among the local DNS servers (106) may be configured (e.g., as recursive DNS servers, etc. ) to process DNS requests from first user devices located in a first portion (e.g., Beijing access networks, Beijing mobile networks, etc., of China Unicom, etc. ) of service provider networks operated by the one or more service providers;
  • one or more second local DNS servers among the local DNS servers (106) may be configured (e.g., as recursive DNS servers, etc. ) to process DNS requests from second user devices located in a second portion (e.g., Shanghai access networks, Shanghai mobile networks, etc., of China Unicom, etc. ) of the service provider computer networks; etc.
  • the DNS log collector (402) analyzes the DNS query processing logs (434) , identifies domain names in the DNS query processing logs (434) , generates a hierarchy of domain names based at least in part on the DNS query processing logs (434) , etc.
  • the hierarchy of domain names generated from the DNS query processing logs enables the streamlined DNS configuration platform (104) to determine some or all domain names (e.g., representing respective subdomains, “news. sina. com. cn” , “sports. sina. com. cn” , 210 of FIG. 2,etc. ) associated with (e.g., domain names under, etc. ) a managed domain name (e.g., representing a top level domain assigned to a website operator, “sina. com. cn” , 208 of FIG. 2, etc. ) .
  • the DNS log collector stores the domain names, the hierarchy of domain names, etc., as identified and generated in block 436 into a domain information repository (e.g., 404 of FIG. 4A,etc. ) in data flow 438.
  • data stored in the domain information repository (404) may include additional information other than the domain names and the hierarchy of domain names.
  • Some or all of the data in the domain information repository (404) can be used to support perform streamlined DNS configuration operations on an intelligent DNS server (e.g., 102 of FIG. 1, etc. ) .
  • a user accesses a DNS configuration front end (e.g., 406 of FIG. 4A, etc. ) .
  • the user may be, but is not limited to, an authorized user of the intelligent DNS service client (108) , a representative from the intelligent DNS service client (108) , an authorized user of the streamlined DNS configuration platform (104) , etc.
  • the user may operate a client device (e.g., 110 of FIG. 1, etc. ) to communicate with the streamlined DNS configuration platform (104) .
  • the user provides user input that specifies a selection of invoking a one-key DNS configuration module (e.g., 408 of FIG. 4A, etc. ) .
  • a managed domain name e.g., 208 of FIG. 2, etc.
  • the managed domain name (208) is communicated by the client device (110) to the DNS configuration front end (406) in data flow 440.
  • the managed domain name (208) is provided as an operational parameter for the one-key DNS configuration module.
  • the DNS configuration front end (406) provides the managed domain name (208) to the one-key DNS configuration module (408) in data flow 448.
  • the one-key DNS configuration module (408) in turn invokes a location-dependent domain name resolver (e.g., 410 of FIG. 4A, etc. ) to resolve domain names under the managed domain name (208) as entered by the user to (e.g., location-dependent, etc. ) host addresses.
  • a location-dependent domain name resolver e.g., 410 of FIG. 4A, etc.
  • the location-dependent domain name resolver (410) proceeds to perform DNS resolution operations 450 that resolve the domain names under the managed domain name.
  • the DNS resolution operations (450) include retrieving data from the domain information repository (404) to identify the domain names (210) under the managed domain name (208) in data flow 452.
  • the managed domain name (208) is “sina. com. cn” .
  • the domain names under the managed domain name (208) , “sina. com. cn” are identified in block 436 based at least in part on the DNS query processing logs (434) .
  • the DNS resolution operations (450) as performed by the location-dependent domain name resolver (410) , further include resolving each of the domain names under the managed domain name into one or more host addresses (e.g., IP addresses, etc. ) as probed name resolutions.
  • a domain name in the domain names (210) under the managed domain name (208) is resolved into a plurality of location-dependent host addresses according to the probed name resolutions.
  • the location-dependent domain name resolver (410) may be configured to send a plurality of DNS queries to a plurality of DNS servers (e.g., local DNS servers, recursive name servers, etc. ) for the same domain name for the purpose of determining to which host addresses the plurality of DNS servers in different access networks maps the same domain name.
  • DNS servers e.g., local DNS servers, recursive name servers, etc.
  • the plurality of DNS servers queried by the location-dependent domain name resolver (410) can be located in different access networks, different service provider networks, in different network portions, domains, subdomains, etc., of a service provider network, etc.
  • Examples of service provider networks may include, but are not limited to only: any of: China Unicom, China Telecom, China Mobile, AT&T, Verizon, T-Mobile, Sprint, NTT, etc.
  • Examples of network portions, domains, subdomains, etc., of a service provider network may include, but are not limited to only, any of: one or more China Unicom networks in Beijing, one or more China Unicom networks in Shanghai, one or more China Unicom networks in Hebei, one or more China Unicom networks in Hunan, etc.
  • the plurality of DNS servers queried by the location-dependent domain name resolver (410) can be located in different continents, countries, provinces, regions, computer networks, etc.
  • host addresses mapped by two or more DNS servers in the plurality of DNS servers are different. In some embodiments, according to the probed name resolutions, host addresses mapped by two or more DNS servers in the plurality of DNS servers are the same.
  • the streamlined DNS configuration platform (104) (e.g., automatically, etc. ) , or the location-dependent domain name resolver (410) therein, generates candidate name resolutions (454) based on the probed name resolutions, and stores the candidate name resolutions (454) into the domain information repository (404) in data flow 456.
  • the streamlined DNS configuration platform (104) retrieves and presents to the user the candidate name resolutions at a user interface on the client device (110) .
  • the candidate name resolutions presented to the user may include, but are not limited to only, any of: one or more (e.g., location-dependent, etc. ) host addresses of each of the domain names (210) under the managed domain name (208) , DNS view information (e.g., DNS Bind View definitions, etc. ) , DNS zone information, host addresses organized with a hierarchy of locations, etc.
  • the candidate name resolutions (454) may be passed to, or retrieved by, the DNS configuration front end (406) in data flow 458 from the domain information repository (404) .
  • the candidate name resolutions (454) is further passed by the DNS configuration front end (406) to the client device (110) in data flow 460.
  • the user may view the candidate name resolutions (454) and decides whether to change (e.g., modify, add, delete, etc. ) the candidate name resolutions (454) .
  • the candidate name resolutions (454) as (e.g., automatically, etc. ) generated in the DNS name resolution operations (450) may or may not be changed. Any change to the candidate name resolutions (454) may be made by the user through a user interface at the client device (110) that communicates user input to the DNS configuration front end (406) .
  • the user can proceed to approve the candidate name resolutions (454) (e.g., with any changes made by the user, with no change made by the user, etc. ) such as mappings of individual domain names to (e.g., location-dependent, etc. ) host addresses, DNS view definitions, DNS zone definitions, host addresses as organized with a hierarchy of locations, etc., as displayed on the client device (110) .
  • the user can approve such candidate name resolutions (454) with a single user interface action such as a single key pressing (e.g., hitting the “Enter” key, etc. ) , a single mouse button clicking, etc.
  • the streamlined DNS configuration platform (104) In response to receiving user input representing the user’s approval of the candidate name resolutions (454) , the streamlined DNS configuration platform (104) , or a domain information configurator (e.g., 412 of FIG. 4A) therein, configures the intelligent DNS server (102) with some or all of the now-approved candidate name resolutions (454) (or simply approved name resolutions) .
  • an intelligent DNS service client such as a content provider, a website operator, an internet-based vendor, etc., delegates to the intelligent DNS server (102) to resolve some or all domain names under the managed domain name (208) of the intelligent DNS service client.
  • the intelligent DNS service client is a content provider (e.g., 108 of FIG. 1, etc. ) with the managed domain name (208) as a top level domain name.
  • a DNS server affiliated with the content provider which may be a content provider DNS server (e.g., 114 of FIG. 1, etc. ) , is configured with one or more resource records (e.g., in a zone file, etc. ) that redirect all DNS queries of some or all of the domain names (210) under the managed domain name (208) to the intelligent DNS server (102) as an authoritative DNS server (or authoritative name server) .
  • the content provider DNS server (114) can be configured to send a DNS reply with a “NS” (or name server) record defining (e.g., providing address information of, etc. ) the intelligent DNS server (202) as the authoritative DNS server for the domain name.
  • the DNS log collector (402) collects the DNS query processing logs (434) before, after, or at the same time when, the content provider delegates to the intelligent DNS server to resolve some or all domain names under the managed domain name (208) .
  • the analysis of the DNS query processing logs (434) and/or the identification of the domain names associated with the managed domain name (208) can be performed in response to the content provider (108) delegating to the intelligent DNS server (102) to resolve some or all domain names under the managed domain name (208) .
  • FIG. 5 illustrates an example process flow according to an example embodiment of the present invention.
  • one or more computing devices or components may perform this process flow.
  • an intelligent DNS configuration platform e.g., 104 of FIG. 1 or FIG. 4A, etc. ) collects one or more DNS query processing logs from one or more first DNS servers.
  • the intelligent DNS configuration platform (104) identifies a plurality of domain names under a managed domain name from the one or more DNS query processing logs.
  • the intelligent DNS configuration platform (104) queries one or more second DNS servers to generate probed name resolutions that resolve each domain name in the plurality of domain names to one or more host addresses.
  • the intelligent DNS configuration platform (104) generates, based at least in part on the probed name resolutions, name resolutions to be used to configure one or more third DNS servers.
  • the foregoing are performed at one of a first time before the one or more third DNS servers are delegated to respond to DNS queries for resolving the domain names under the managed domain name as authoritative name server (s) , a second time after the one or more third DNS servers are delegated to DNS queries for resolving the domain names under the managed domain name as authoritative name server (s) , etc.
  • the one or more first DNS servers comprise at least one local DNS server.
  • the one or more second DNS servers comprise at least one local DNS server.
  • the one or more third DNS servers comprise an intelligent DNS server configured at least in part with the name resolutions to resolve at least one domain name in the domain names under the managed domain name to one or more host addresses.
  • the one or more host addresses comprise at least one location-dependent host address that is dependent on a location, as determined by the intelligent DNS server when responding to a DNS query relating to the at least one domain name.
  • the managed domain name is a domain name of one or more of content providers, websites, portals, database systems, computer servers, etc.
  • the one or more first DNS servers are located in one or more access networks of one or more service providers.
  • the one or more DNS query processing logs comprise log information relating to DNS queries received by the one or more first DNS servers and DNS responses sent by the one or more first DNS servers.
  • the probed name resolutions are generated by querying the one or more second DNS servers in real time in response to an invocation of DNS configuration operations for the one or more third DNS servers.
  • the name resolutions to be used to configure one or more third DNS servers are approved by a user.
  • the name resolutions to be used to configure one or more third DNS servers comprise one or more candidate name resolutions automatically generated based on the probed name resolutions, without data manipulation by a user.
  • the name resolutions to be used to configure one or more third DNS servers comprise one or more candidate name resolutions as changed by a user after the one or more candidate name resolutions were automatically generated based on the probed name resolutions.
  • the one or more host addresses represent one or more internet (IP) address of one or more network elements.
  • IP internet
  • different host addresses in the one or more host addresses are used to serve different content with the same domain name to user devices at different locations.
  • different host addresses in the one or more host addresses correspond to different cache server nodes to serve content with the same domain name to user devices at different locations.
  • the name resolutions to be used to configure one or more third DNS servers are represented by one or more of probed name resolutions, resource records that explicitly or implicitly map domain names to location-dependent host addresses, DNS view definitions, DNS zone definitions, etc.
  • the name resolutions to be used to configure one or more third DNS servers comprise one or more name resolutions that resolve a particular domain name in the domain names to a plurality of location-dependent host addresses; the plurality of location-dependent host addresses are organized with one or more of DNS views, DNS zones, hierarchies of locations, etc.
  • the one or more host addresses comprise a host address; a domain name is resolved to a host address dependent on a location as determined by an intelligent DNS server in the one or more third DNS servers when responding to a received DNS query caused by a user device; the location is determined by the intelligent DNS server based on one or more of a geographic location of the user device as estimated by geotagging or geolocation techniques, a specific service provider network, a specific portion in a network topology, a host address of the user device, a portion ora host address of the user device, a specific access networks in which the user device is located, a subnet related to a host address of the user device, etc.
  • the managed domain name is inputted by a user at a client device in communication with the streamlined DNS configuration platform (104) .
  • a system, an apparatus, or one or more other computing devices performs any or a part of the foregoing methods as described.
  • a non-transitory computer readable storage medium storing software instructions, which when executed by one or more processors cause performance of any of the foregoing methods.
  • a computing device comprising one or more processors and one or more storage media storing a set of instructions which, when executed by the one or more processors, cause performance of any of the foregoing methods.
  • the techniques described herein are implemented by one or more special-purpose computing devices.
  • the special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination.
  • ASICs application-specific integrated circuits
  • FPGAs field programmable gate arrays
  • Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques.
  • the special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
  • FIG. 6 is a block diagram that illustrates a computer system 600 upon which an example embodiment of the invention may be implemented.
  • Computer system 600 includes a bus 602 or other communication mechanism for communicating information, and a hardware processor 604 coupled with bus 602 for processing information.
  • Hardware processor 604 may be, for example, a general purpose microprocessor.
  • Computer system 600 also includes a main memory 606, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 602 for storing information and instructions to be executed by processor 604.
  • Main memory 606 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 604.
  • Such instructions when stored in non-transitory storage media accessible to processor 604, render computer system 600 into a special-purpose machine that is customized to perform the operations specified in the instructions.
  • Computer system 600 further includes a read only memory (ROM) 608 or other static storage device coupled to bus 602 for storing static information and instructions for processor 604.
  • ROM read only memory
  • a storage device 610 such as a magnetic disk or optical disk, is provided and coupled to bus 602 for storing information and instructions.
  • Computer system 600 may be coupled via bus 602 to a display 612, such as a liquid crystal display, for displaying information to a computer user.
  • a display 612 such as a liquid crystal display
  • An input device 614 is coupled to bus 602 for communicating information and command selections to processor 604.
  • cursor control 616 is Another type of user input device
  • cursor control 616 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 604 and for controlling cursor movement on display 612.
  • This input device typically has two degrees of fieedom in two axes, a first axis (e.g., x) and a second axis (e.g., y) , that allows the device to specify positions in a plane.
  • Computer system 600 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 600 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 600 in response to processor 604 executing one or more sequences of one or more instructions contained in main memory 606. Such instructions may be read into main memory 606 from another storage medium, such as storage device 610. Execution of the sequences of instructions contained in main memory 606 causes processor 604 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
  • Non-volatile media includes, for example, optical or magnetic disks, such as storage device 610.
  • Volatile media includes dynamic memory, such as main memory 606.
  • Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.
  • Storage media is distinct from but may be used in conjunction with transmission media.
  • Transmission media participates in transferring information between storage media.
  • transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 602.
  • transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
  • the instructions may initially be canied on a magnetic disk or solid state drive of a remote computer.
  • the remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
  • a modem local to computer system 600 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal.
  • An infra-red detector can receive the data carded in the infra-red signal and appropriate circuitry can place the data on bus 602.
  • Bus 602 carries the data to main memory 606, from which processor 604 retrieves and executes the instructions.
  • the instructions received by main memory 606 may optionally be stored on storage device 610 either before or after execution by processor 604.
  • Computer system 600 also includes a communication interface 618 coupled to bus 602.
  • Communication interface 618 provides a two-way data communication coupling to a network link 620 that is connected to a local network 622.
  • communication interface 618 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line.
  • ISDN integrated services digital network
  • communication interface 618 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN.
  • LAN local area network
  • Wireless links may also be implemented.
  • communication interface 618 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
  • Network link 620 typically provides data communication through one or more networks to other data devices.
  • network link 620 may provide a connection through local network 622 to a host computer 624 or to data equipment operated by an Internet Service Provider (ISP) 626.
  • ISP 626 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 628.
  • Internet 628 uses electrical, electromagnetic or optical signals that carry digital data streams.
  • the signals through the various networks and the signals on network link 620 and thiough communication interface 618, which carry the digital data to and from computer system 600, are example forms of transmission media.
  • Computer system 600 can send messages and receive data, including program code, through the network (s) , network link 620 and communication interface 618.
  • a server 630 might transmit a requested code for an application program through Internet 628, ISP 626, local network 622 and communication interface 618.
  • the received code may be executed by processor 604 as it is received, and/or stored in storage device 610, or other non-volatile storage for later execution.

Abstract

DNS query processing logs are collected from first DNS servers. Domain names under a managed domain name are identified from the DNS query processing logs. Second DNS servers are queried to generate probed name resolutions that resolve each domain name in the domain names to host addresses. Name resolutions to be used to configure one or more third DNS servers generated based at least in part on the probed name resolutions.

Description

STREAMLINING LOCATION-DEPENDENT DNS CONFIGURATION
TECHNOLOGY
The present invention relates generally to internet communications, and in particular to configuring name servers.
BACKGROUND
A content provider such as “sina. com. cn” may have many domain names such as “sports. sina. com. cn” , “news. sina. com. cn” , “cars. sina. com. cn” , etc. Different domain names of the content provider can be used to serve out different types of internet-based content. To reduce latency in content delivery, multiple cache server nodes with different host addresses may be used to cache and distribute internet-based content associated with a domain name to user devices located in different continents, countries, provinces, regions, computer networks, etc.
The amount of name resolution data to be configured into an intelligent domain name system (DNS) server for resolving multiple domain names of a content provider into multiple host addresses may be estimated to be on the order of N x M, where N represents the number of domain names of the content provider, and M represents the number of host addresses of multiple cache server nodes used with each of the domain names. DNS configuration operations to configure such an intelligent DNS server can be extremely laborious and error-prone, as N (e.g. , 10,000, etc. ) x M (e.g. , 100,etc. ) can be a very large number (e.g., 1 million, etc. ) .
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section. Similarly, issues identified with respect to one or more approaches should not assume to have been recognized in any prior art on the basis of this section, unless otherwise indicated.
BRIEF DESCRIPTION OF DRAWINGS
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
FIG. 1 depicts an example configuration for streamlined DNS configuration;
FIG. 2 illustrates an example domain name space;
FIG. 3 illustrates example name resolutions from domain names under a managed domain name to respective host addresses at respective locations;
FIG. 4A illustrates an example streamlined DNS configuration platform;
FIG. 4B illustrates an example block diagram with related data flows for streamlined configuration operations on an intelligent DNS server by a streamlined DNS configuration platform;
FIG. 5 illustrates an example process flow; and
FIG. 6 illustrates an example hardware platform on which a computer or a computing device as described herein may be implemented.
DESCRIPTION OF EXAMPLE EMBODIMENTS
Example embodiments, which relate to configuring name servers, are described herein. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are not described in exhaustive detail, in order to avoid unnecessarily occluding, obscuring, or obfuscating the present invention.
Example embodiments are described herein according to the following outline:
1. GENERAL OVERVIEW
2. STRUCTURAL OVERVIEW
3. DOMAIN NAMES AND LOCATION-DEPENDENT HOST ADDRESSES
4. STREAMLINED CONFIGURATION OPERATIONS
5. EXAMPLE PROCESS FLOW
6. IMPLEMENTATION MECHANISMS-HARDWARE OVERVIEW
7. EQUIVALENTS, EXTENSIONS, ALTERNATIVES AND MISCELLANEOUS
1. GENERAL OVERVIEW
This overview presents a basic description of some aspects of an example embodiment of the present invention. It should be noted that this overview is not an extensive or exhaustive summary of aspects of the example embodiment. Moreover, it should be noted that this overview is not intended to be understood as identifying any particularly significant aspects or elements of the example embodiment, nor as delineating any scope of the example embodiment in particular, nor the invention in general. This overview merely presents some concepts that relate to the example embodiment in a condensed and simplified format, and should be understood as merely a conceptual prelude to a more detailed description of example embodiments that follows below. 
An intelligent DNS service client such as a content provider, a website operator, etc., may delegate to a DNS server (e.g., a third-party DNS server, an intelligent DNS server, etc. ) as an authoritative name server for resolving domain names affiliated with or owned by the intelligent DNS service client.
The intelligent DNS service client, for example a content provider, may have a large number of domain names with corresponding networks or subnets located in various locations. A large number of users such as network administrators, etc., may be responsible for managing different domain names and network configurations of networks or subnets corresponding to these different domain names.
Under some approaches, to delegate the task of responding to DNS queries related to the domain names to the DNS server as an authoritative name servers, a large nmnber of users such as domain administrators or network administrators may need to go over their network configurations in order to create, review and confirm a large amount of DNS name resolution data.
It is very likely that the large number of users, who operate with divergent network configuration information and DNS configuration methods, may miss or incorrectly create DNS name resolution data for configuring the DNS server, or that the users may create outdated name resolution data that does not comport with the current network configurations. As a result, subsequent DNS responses generated by the DNS server with missing DNS name resolution data and/or incorrect or outdated name resolution data, may seriously affect DNS operations related to the domain names of the intelligent DNS service client, and even affect other operations, applications, activities, etc., that depend on the DNS operations.
In sharp contrast, techniques as described herein can be used to provide a streamlined DNS configuration platform that collects DNS query processing logs from DNS servers that are deployed in different access networks, service provider networks, etc. An intelligent DNS service client or its representative can input or specify a managed domain name. A list, hierarchy, set, table, etc., of domain names related to (e.g., under, etc. ) the managed domain name (e.g., “sina. com. cn” , etc. ) can be automatically determined by the streamlined DNS configuration platform based on the DNS query processing logs collected from the DNS servers.
Additionally, optionally, or alternatively, a location-dependent domain name resolver (e.g., a real time domain name probe, etc. ) can be used to send DNS queries for each of the domain names under the managed domain name to different DNS servers (e.g., local DNS servers, recursive servers, etc. ) located in different access networks, service provider networks, locations, etc. Based on DNS responses received from these DNS servers, the location-dependent domain name resolver generates probed name resolutions that represent how these DNS servers resolve the domain names to (e.g., location-dependent, etc. ) host addresses. The probed name resolutions may include name resolutions (or mappings) from each domain name in the domain names as identified from the DNS query processing logs to one or more host addresses as resolved to by the DNS servers in the different networks, locations, etc. Based on the probed name resolutions from domain names to host addresses, the streamlined DNS configuration platform can generate candidate name resolutions for configuring one or more intelligent DNS servers. The candidate name resolutions may include, but are not limited to only, any of: probed name resolutions, resource records that explicitly or implicitly map domain names to location-dependent host addresses, DNS view definitions, DNS zone definitions, etc. The candidate name resolution are to be reviewed, edited, approved, etc., by the intelligent DNS service client or its representative for the purpose of using approved name resolutions to configure the one or more intelligent DNS servers. If the candidate name resolutions automatically generated by the streamlined DNS configuration platform based on the probed name resolutions are satisfactory, the candidate name resolutions can be approved by the intelligent DNS service client or its representative with as few as a single user action such as one of a single key pressing, a single button pressing, a single icon selection, etc. If the candidate name resolutions as automatically generated by the streamlined DNS configuration platform are not satisfactory, the candidate name resolutions can be modified by the intelligent DNS service client or its representative (e.g., in an interactive manner, manually,  etc. ) , until the candidate name resolutions are satisfactory and approved.
Thus, techniques as described herein can be used to provide streamlined DNS configuration for an intelligent DNS server and greatly simplify the task of delegating DNS name resolution tasks related to domain names under a managed domain name to the intelligent DNS server as an authoritative name server. For example, there is no need for a large number of users such as domain administrators or network administrators to go over their respective network configurations to create, review and confirm (e.g., manually, etc. ) a large number of name resolution entries, resource records, view definitions, zone definitions, etc. An intelligent DNS server to be tasked to serve location-dependent host addresses can be configured with approved name resolutions that has a relatively low error rate. Since DNS server configuration management can be made by performing relatively simple, fast, and streamlined configuration operations, time and effort required to configure an intelligent DNS server is significantly reduced under the techniques as described herein as compared with other approaches.
Since candidate name resolutions as described herein are generated based on (e.g., up-to-date, real time, etc. ) DNS responses from DNS servers located in different networks, different locations, etc., the candidate name resolutions as described herein match network configurations actually existing in the field and have a relatively high degree of accuracy. Further, since the candidate name resolutions can be generated by real time DNS queries (e.g., from time to time, periodically, continuously, on demand, etc. ) , the candidate name resolutions has a relatively high degree of accuracy and timeliness (or currency) . In contrast, under other approaches, since DNS configuration information is created by different users, different groups, different organizations, etc., witlin a possibly large organization, the DNS name resolution data under those approaches may not have a high degree of accuracy and timeliness.
By querying DNS servers actually deployed in different access networks, different service provider networks, different locations, etc., techniques as described herein can be used to prevent or reduce missing, incorrect, or outdated name resolutions for config-uring an intelligent DNS server. As the intelligent DNS server may be configured with user-approved name resolutions with a high degree of accuracy and timeliness, Subsequent DNS responses generated by the intelligent DNS servers can be relatively accurate and up to date with the actual network configurations deployed in the field. Other operations (e.g., online transactions, etc. ) , applications (e.g., media playing applications, etc. ) , activities (e.g., internet accessing activities, etc. ) , etc., that (e.g., critically, etc. ) depend on correct DNS operations, can operate relatively smoothly with DNS services that are relatively error free.
In some example embodiments, mechanisms as described herein form a part of an information processing system, including but not limited to any of: a computer server, a network switch, a network element, a router, a gateway, a computer cluster, an application server system, a database system, a handheld device, game machine, television, laptop computer, netbook computer, tablet computer, cellular radiotelephone, electronic book reader, point of sale terminal, desktop computer, computer workstation, computer kiosk, plug-in devices, media accessing  devices, or various other kinds of terminals and media processing units.
Various modifications to the preferred embodiments and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the disclosure is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features described herein.
2. STRUCTURAL OVERVIEW
 FIG. 1 depicts an example configuration 100 for streamlined DNS configuration, which comprises an intelligent DNS server 102, a streamlined DNS configuration platform 104, local DNS servers 106, an intelligent DNS service client 108, a delegating DNS server 110, a client device 110, a user device 116, etc. Some or all of the components, devices, systems, modules, etc., in the example configuration (100) of FIG. 1 may be operatively linked through one or more computer networks such as one or more of wide area networks (WANs) , local area networks (LANs) , customer premises networks (CPNs) , wireless networks, wireline networks, optical networks, non-optical networks, telecom networks, non-telecom networks, etc.
The intelligent DNS service client (108) may represent one or more of (e.g., internet-based, etc. ) content providers, websites, portals, database systems, computer servers, etc. For the purpose of illustration only, the intelligent DNS service client (108) may be a content provider that uses a variety of domain names (e.g., 210 of FIG. 2, etc. ) under a managed domain name (e.g., 208 of FIG. 2, etc. ) to provide content that is to be rendered/presented on user devices (or user computing devices) such as the user device (116) , etc., operated by content users.
In some embodiments, each of the domain names (210) under the managed domain name (208) affiliated with the intelligent DNS service client (or used by the content provider, etc. ) may be resolved in DNS name resolution processes to one or more host addresses.
Host addresses for a domain name under the managed domain name may be location-dependent. For example, the same domain name (e.g., under the managed domain name 208, etc. ) accessed by user devices (e.g., 116, etc. ) at different locations may be resolved to different host addresses dependent on locations of the user devices and/or other factors, criteria, etc. As used herein, a location-dependent host address refers to a host address that is determined not just based on a domain name, but also on a location (as an input parameter) as determined by an intelligent DNS server.
Examples of locations as described heroin may include, but are not limited to only, one or more of: geographic locations of the user devices as estimated by geotagging or geolocation techniques; service provider networks such as China Telecom, China Unicom, etc., network topology; individual host addresses of the user devices; portions of individual host addresses of the user devices; access networks in which the user devices are located; subnets related to individual host addresses of the user devices; etc.
In some embodiments, the intelligent DNS server (102) can be configured to receive, ascertain, estimate, etc., a location of a user device (e.g., 116 of FIG. 1, etc. ) thr-ough DNS protocol operations (e.g., edns-client-subnet related parameters, etc. ) . A domain name accessed by  first user devices at a first location of a user device may be resolved to a first host address; the same domain name accessed by second user devices at a second location may be resolved to a second host address; and so on.
Resolving the same domain name into multiple location-dependent host addresses can be advantageous in many situations. In an example, a content provider may wish to serve different content to users at different locations (e.g., different geographic locations, different networks, different parts of a network topology, etc. ) . In another example, a website operator may wish to serve from different caching server nodes to users at different locations, for example based on respective proximities of the different caching server nodes to user devices operated by the users, to access networks in which the user devices are located, to service provider networks in which the user devices are located, etc.
In some embodiments, the delegating DNS server (110) comprises software, hardware, a combination of software and hardware, etc., configured to receive DNS queries related to the domain names (210) under the managed domain name (208) , send DNS responses comprising delegation records to redirect senders of the DNS queries to the intelligent DNS server (102) , etc.
For the purpose of illustration only, the delegating DNS server (110) has been depicted as a part of the intelligent DNS service client (108) in FIG. 1. It should be noted that a delegating DNS server as described herein may be any DNS server that redirects senders of received DNS queries related to the domain names (210) under the managed domain name (208) to the intelligent DNS server (102) . For example, in some embodiments, the delegating DNS server (110) may be a third party DNS server that is not a part of the intelligent DNS service client (108) .
In some embodiments, the local DNS servers (106) comprises a local DNS server 106-1, a local DNS server 106-2, a local DNS server 106-N, etc. In some embodiments, at least two or more of these local DNS servers may be at two or more different access networks (e.g., a fixed accessed network, a mobile access network, a customer premises network or CPN, etc. ) such as one of 112-1, 112-2, 112-N, etc.
A local DNS server (e.g., 106-1, 106-2, 106-N, etc. ) of the local DNS servers (106) comprises software, hardware, a combination of software and hardware, etc., configured to receive DNS queries from DNS clients such as “nsloopup” , “dig” , a location-dependent domain name resolver (e.g., 410 of FIG. 4A, etc. ) , etc.; returns corresponding DNS responses to the DNS clients; etc.
In some embodiments, a local DNS server as described herein may be implemented as a recursive name server configured to query other name servers (e.g., DNS servers, root name server, zone name servers, etc. ) hierarchically to obtain a host address (e.g., an IP address, a non-domain-name network address, etc. ) for a queried domain name such as the domain name “sina. com. cn” , “www. sina. com. cn” , “news. sina. com. cn” , “sports. sina. com. cn” , etc.
In some embodiments, a local DNS server as described herein may comprise cached resource records related to some or all of the domain names (210) under the managed domain names. These cached resource records may, but are not limited to only, resource records from  DNS responses of other authoritative name servers before some or all of the domain names (210) under the managed domain name (208) are delegated to the intelligent DNS server (102) . These cached resource records may have time-to-live (TTL) values to specify when any of the cached resource records is to expire. Ifa cached resource record is valid, the local DNS server may use the cached resource record directly for responding to a DNS query relating to a domain name in the cached resource record without sending DNS queries to other DNS servers.
In some embodiments, the intelligent DNS server (102) may be an authoritative DNS server configured, assigned or delegated for providing authoritative DNS name resolutions on the domain names (210) associated with (e.g., under, etc. ) the managed domain name (208) of a DNS name space (e.g., 200 of FIG. 2, etc. ) . In some embodiments, the intelligent DNS server comprises software, hardware, a combination of software and hardware, etc., configured to receive DNS queries; act as the authoritative name server if the received DNS queries are determined to be related to an individual domain name in the domain names (210) under the managed domain name (208) ; resolve the individual domain name to one or more (e.g., location-dependent, etc. ) host addresses; return the host addresses in DNS responses to senders of the DNS queries, etc.
For the purpose of illustration only, the intelligent DNS server (102) has been depicted as external to the intelligent DNS service client (108) in FIG. 1. For example, the intelligent DNS server (102) may be a third party DNS server in relation to the intelligent DNS service client (108) . However, it should be noted that such an intelligent DNS server may be any DNS server that serves as an authoritative name servers for responding to DNS queries related to the domain names (210) under the managed domain name (208) and that is capable of resolving a domain name to location-dependent host addresses. For example, in some embodiments, the intelligent DNS server (102) may be an internal DNS server that is a part of the intelligent DNS service client (108) . Additionally, optionally, or optionally, more than one intelligent DNS servers (e.g., primary, secondary, etc. ) may be configured, assigned or delegated for providing authoritative DNS name resolutions on the domain names (210) associated with (e.g., under, etc. ) the managed domain name (208) of a DNS name space (e.g., 200 of FIG. 2, etc. ) .
In some embodiments, the streamlined DNS configuration platform (104) comprises software, hardware, a combination of software and hardware, etc., configured to interact with the client device (110) , for example, to obtain the managed domain name (e.g., “sina. com. cn” , etc. ) , to perform streamlined configuration operations on the intelligent DNS server (102) ; to collect DNS query processing logs from a variety of DNS servers; to query the local DNS servers (106) in different access networks (e.g., 112-1, 112-2, 112-N, etc. ) what host addresses a domain name under the managed domain name is resolved to; etc.
In some embodiments, the client device (110) comprises software, hardware, a combination of software and hardware, etc., configured to interact with a user of the client device (110) with one or more user interfaces presented at the client device (110) , receive user input from the user, communicate with the streamlined DNS configuration platform (104) , etc. Some or all of the one or more user interfaces may be driven or provided by the streamlined DNS configuration  platform (104) , or a DNS configuration front end (e.g., 406 of FIG. 4A, etc. ) therein.
For the purpose of illustration only, the client device (110) has been depicted as a part of the intelligent DNS service client (108) in FIG. 1. It should be noted that such a client device may be any computing device used by a user to communicate with the streamlined DNS configuration platform (104) for the purpose of performing streamlined DNS configuration of the intelligent DNS server (102) . In an example, in some embodiments, the client device (110) may be a part of the intelligent DNS server (102) . In another example, in some embodiments, the client device (110) may be a mobile computing device operated by a user.
In some embodiments, the user device (102) comprises software, hardware, a combination of software and hardware, etc., configured to interact with a user of the user device (116) via one or more user interfaces; based on user input from the user, sends DNS queries to a local DNS server relating to one or more of the domain names (210) under the managed domain name (208) ; causes the local DNS server to send DNS queries to the intelligent DNS server (102) relating to the one or more of the domain names (210) under the managed domain name (208) ; receive DNS responses that originates from the intelligent DNS server (102) relating to the one or more of the domain names (210) under the managed domain name (208) ; etc. For the purpose of illustration only, one user device has been depicted in FIG. 1. It should be understood that in various embodiments the intelligent DNS server (102) of FIG. 1 may be used to respond to DNS queries caused by many user devices concurrently, serially, part concurrentty part serially, etc.
For the purpose of illustration only, an internet accessing application such as a Microsoft Internet Browser (IE) , a Fire Fox browser, a media playing application, etc., is running on the user device (116) . A user of the user device (116) may direct the internet accessing application to access content of a number of websites. A resource locator used by the internet accessing application such as a Universal Resource Locator (URL) , etc., may comprise one of the domain names (210) that needs to be resolved to IP addresses eventually through the intelligent DNS server (102) of FIG. 1 after the intelligent DNS server (102) is delegated to as an authoritative name server for domain names that include the one of the domain names (210) . An example domain name may be “news. sina. com. cn” , which may represent a specific domain name under which the intelligent DNS service client (108) such as a content provider, etc., provides a wide variety of internet-based, possibly location-dependent, rich contents from one or more caching server nodes with one or more (e.g., location-dependent, etc. ) host addresses to user devices (e.g., 116, etc. ) .
3. DOMAIN NAMES AND LOCATION-DEPENDENT HOST ADDRESSES
FIG. 2 illustrates a domain name space 200. The domain name space (200) comprises a first-level zone 202 (e.g., a root zone, a “. ” zone, etc. ) , a second-level zone 204 (e.g., the “. cn” zone, etc. ) , a third-level zone 206 (e.g., the “com. cn”zone, etc. ) , a managed domain name 208, domain names 210 under the managed domain name (208) , etc. While FIG. 2 illustrates the managed domain name (208) as below the third-level zone (206) , generally speaking, the managed domain name (208) may be below a different zone other than the third-level zone (206)  as illustrated.
FIG. 3 illustrates example name resolutions fom domain names (e.g., 210 of FIG. 2, etc. ) under a managed domain nae (e.g., 208 of FIG. 2, etc. ) to respective (e.g., location-dependent, etc. ) host addresses. In some embodiments, these name resolutions represent candidate name resolutions to be reviewed, edited, approved, configured, etc., into a intelligent DNS server (e.g., 102 of FIG. 1, etc. ) by a streamlined DNS configuration platform (e.g., 104 of FIG. 1, etc. ) using techniques as described herein.
As illustrated in FIG. 3, the domain names (210) comprse a first domain name 210-1, a second domain name 210-2, etc. Each domain name i the domai names (210) may be mapped to one or more host addresses in DNS name resolution processes. For example, in FIG. 3, the first domain nae (210-1) is mapped to first host addresses (302-1) , which comprise host address 1 (302-1-1) , host address 2 (302-1-2) , etc.; the second domain name (210-2) is mapped to second host addresses (302-2) , which comprse host address 3 (302-2-1) , host address 4 (302-2-2) , etc. 
In some embodiments, a host address may be location-dependent. For exaple, as illustrated in FIG. 3, host address 1 (302-1-1) , host address 2 (302-1-2) , host address 3 (302-2-1) , host address 4 (302-2-2) , etc., respectively correspond to location 1 (304-1-1) , location 2 (302-1-2) , location 3 (304-2-1) , location 4 (304-2-2) , etc.
In some embodiments, DNS queries (or requests) caused by user devices located in different locations for the same individual domai name (e.g., the first domain name 210-1, etc. ) in the domain names (210) can be responded with DNS responses (or answers) comprsing rsource records idicating different host addesses (e.g., host address 1, host address 2, et. ) .
For example, if the intelligent DNS serer (102) determines (e.g., based on edns-client-subnet related data field values, etc. ) that a received DNS query for the first domain name (210) is caused by a first user device (e.g., 116 of FIG. 1, etc. ) at location 1 (304-1-1) , then the itelligen DNS server (102) can use the name resolutions of FIG. 3 to resolve the first domain name (210) to host address 1 (302-1-1) , which corresponds to location 1 (304-1-1) according to the name resolutions configured in the intelligent DNS server (102) .
On the other hand, if the intelligent DNS server (102) determines (e.g., based on edns-client-subnet related data field values, etc. ) that a received DNS query for the first domain name (210) is caused by a second user device (e.g., other than 116 of FIG. 1, etc. ) at location 2 (304-1-2) , then the intelligent DNS server (102) can use the name resolutions of FIG. 3 to resolve the first domain name (210) to host address 2 (302-1-2) , which corresponds to location 2 (304-1-2) according to the name resolutions configured in the intelligent DNS server (102) . In some embodiments, host address 1 may be a host address of a first caching server node for the first domain name (210-1) , whereas host address 2 may be a host address of a second caching server node for the first domain name (210-1) ,
In some embodiments, the first cachig serer node may be an optimal content delivery network (CDN) node among a plurality of CDN nodes that is optimized relative to the first user device, whereas the second caching server node may be an optimal CDN node among the  plurality of CDN nodes that is optimized relative to the second user device.
In some embodiments, the first caching server node may be configured to serve first content to the first user device, whereas the second caching server node may be configured to serve second content (which may or may not be the same as the first content) to the second user device.
In some embodiments, different host addresses are those of different network elements such as caching server nodes. In some embodiments, two or more different host addresses are those of a single network element with multiple network addresses.
In the present example, it has been described that a location of a user device is used by an intelligent DNS server to determine a host address of a domain name. It should be noted that that is for illustration purposes only.
For example, it should be noted that a location as described herein is not limited to be a physical location (as determined or estimated by an intelligent DNS server) such as a continent, a country, a state or province, a city, a postal code, a neighborhood, an amusement park, a geographic location, a global positioning system (GPS) coordinate value, etc. In some embodiments, a location as described herein may refer to a logical location such as a subnet of a host address of a user device, a portion (e.g., a network prefix, a certain number of bits as filtered by a network mask, etc. ) of a host address of a user device, a GPRS related information, an identity of a service provider network, a particular type of network (e.g., a first host address for a mobile network, a second host address for a landline-based network, etc. ) , etc.
Additionally, optionally, or alternatively, other locational information, including locational information related to other entities other than a user device, may be used by an intelligent DNS server to determine a location that can be used as an input parameter to resolve a domain name to a host address. For example, an intelligent DNS server (e.g., 102 of FIG. 1, etc. ) may be configured to assign different weights to different service provider networks for the purpose of determining a location that is used as an input parameter to resolve a domain name to different host addresses in the different service provider networks.
Additionally, optionally, or alternatively, a location as described herein is not limited to be given or extracted from a DNS query (e.g., edns-client-subnet parameter values, etc. ) . In some embodiments, an intelligent DNS server (e.g., 102 of FIG. 1, etc. ) may be configured with a location determining algorithm that determines a location for a DNS query of a domain name to be used as an input parameter to determine or select one of one or more location-dependent host addresses to which the domain name should be resolved. Such determination of a location to be used for selecting a resolved-to host address can be based on one or more input parameters, which may include but are not limited to only one or more of DNS query parameter values, host address information of a user device, a host address information of a local DNS server used by the user device, etc.
Name resolutions as described herein, such as those of FIG. 3, can be represented in one or more of a variety of ways.
In an example, an intelligent DNS server (e.g., 102 of FIG. 1, etc. ) may be configured by a streamlined DNS configuration platform (e.g., 104 of FIG. 1, etc. ) with name resolutions in the form of resource records (e.g., in zone file, in configuration file, etc. ) that explicitly map individual domain names to respective host addresses such as host address 1 (302-1-1) , host address 2 (302-1-2) , host address 3 (302-2-1) , host address 4 (302-2-2) , etc. , dependent on locations such as location 1 (304-1-1) , location 2 (304-1-2) , location 3 (304-2-1) , location 4 (304-2-2) , etc. , as input parameters.
In another example, an intelligent DNS server (e.g., 102 of FIG. 1, etc. ) may be configured by a streamlined DNS configuration platform (e.g., 104 of FIG. 1, etc. ) with name resolutions in the form of DNS view definitions, DNS zone definitions, etc., (e.g., in zone file, in configuration file, etc. ) that explicitly or implicitly maps domain names to host addresses.
In some embodiments, host addresses resolved from a domain name may be organized with a hierarchy of locations. The hierarchy of locations used to organize the host addresses may comprise one or more non-leaf nodes (e.g., at one, two or more levels, etc. ) representing locations and one or more leaf nodes representing host addresses. The hierarchy may be implemented with one or more of resource records dependent on locations as input parameters, DNS view definitions, DNS zone definitions, name resolution functions or algorithms configured to return resource records based on a domain name and location as input parameters, etc. In some embodiments, host addresses related to a section of the hierarchy of locations may be defined or implemented as a DNS view or zone in name resolutions as described herein.
4. STREAMLINED DNS CONFIGURATION PLATFORM
FIG. 4A illustrates an example streamlined DNS configuration platform (e.g., 104, etc. ) , which comprises a DNS log collector 402, a domain information repository 404, a DNS configuration front end 406, a one-key DNS configuration module 408, a location-dependent domain name resolver 410, a domain information configurator 412, etc. Some or all of the components, devices, systems, modules, etc. , in the streamlined DN S configuration platform (104) may be implemented with one or more computing devices that are operatively linked through one or more of computer networks, interconnects, buses, data links, etc.
In some embodiments, the DNS log collector (402) comprises software, hardware, a combination of software and hardware, etc., configured to collect DNS query processing logs (e.g., 434 of FIG. 4B, etc. ) from DNS servers, for example, in a number of service provider networks. These DNS servers may be used by the service provider networks to provide DNS name resolution services to service subscribers, GPRS users, etc.
In some embodiments, the DNS servers from which the DNS query processing logs (434) are local DNS servers (e.g., 106 of FIG. 1, etc. ) . In some embodiments, at least some of the DNS servers from which the DNS query processing logs (434) are non-local DNS servers.
In some embodiments, to monitor operations, service capabilities, etc., of DNS servers in its networks, a service provider deploys DNS logging functionality with the DNS servers to generate logs for DNS query processing operations. These logs may be used by the service  provider to optimize its operations in DNS services, to improve subscriber experience, etc. Insome embodiments, some or all of these logs, which are already being generated by the DNS servers in the service provider’s networks, can be collected by the DNS log collector (402) as a part of the DNS query processing logs (434) .
In some embodiments, a service provider network from which the DNS log collector is to collect a part of the DNS query processing logs (434) does not implement logging functionality for DNS query processing. The DNS log collector (402) may be configured to obtain or intercept some or all external traffic of the service provider network (e.g., assuming that a proper agreement with the service provider network is in effect, assuming that it is legal to obtain such external traffic, etc. ) , filter away non-DNS related traffic, generate a part of the DNS query processing logs (434) based on the remaining filtered-in DNS related traffic, etc.
Service providers may provide a wide variety of services with service provider networks. The DNS query processing logs (434) may contain a large amount of DNS query information and DNS response information, and possibly constitute big data. Domain names (e.g., 210 of FIG. 2, etc. ) under a managed domain name (e.g., 208 of FIG. 2, etc. ) can be obtained or determined based on the DNS query processing logs (434) . The domain names (210) determined from the DNS query processing logs (434) can be organized in a variety of ways such as list, hierarchy, set, table, etc., and stored in the domain information repository (404) .
In some embodiments, the domain information repository (404) comprises software, hardware, a combination of hardware and software, etc., configured to store some or all of the DNS query processing logs (434) , probed name resolutions, candidate name resolutions (e.g., 454 of FIG. 4B, etc. ) , approved name resolutions, etc. The domain information repository (404) can be configured to support data access operations, data modification operations, data creation operations, etc., related to data in the domain information repository (404) . In some embodiments, some or all of the data in the domain information repository (404) may be dynamically updated (e.g., after the intelligent DNS server has already been delegated as an authoritative name servers for domain names under the managed domain name 208, etc. ) as changes to some or all of the DNS query processing logs (434) , probed name resolutions, candidate name resolutions (e.g., 454 of FIG. 4B, etc. ) , approved name resolutions, etc., occur.
In some embodiments, the DNS configuration front end (406) comprises software, hardware, a combination of software and hardware, etc., configured to interact with a user through one or more user interfaces presented at a client device (e.g., 110 of FIG. 1, etc. ) , receive the managed domain name (e.g., 208 of FIG. 2, etc. ) as specified by the user, allows the user to invoke streamlined DNS configuration operations with respect to the managed domain name (208) , etc.
The user can interact with one or more user interfaces presented at the client device (110) by the DNS configuration front end (406) to access and use the streamlined DNS configuration platform (104) to configure one or more intelligent DNS servers (e.g., 102 of FIG. 1, etc. ) . In some embodiments, after invoking streamlined DNS configuration operations with respect to the managed domain name (208) by way of the DNS configuration front end (406) , the  user can use as few as a single key input to cause the one or more intelligent DNS servers to be configured with accurate and timely approved name resolutions. Under techniques as described herein, the user does not need to spend a significant amount of time to enter (e.g., manually) each name resolution for each domain name for a host address at each location.
In some embodiments, the one-key DNS configuration module (408) comprises software, hardware, a combination of software and hardware, etc., configured to receive a managed domain name (e.g., 208 of FIG. 2, etc. ) from the DNS configuration front end (406) ; determines domain names (e.g., 210 of FIG. 2, etc. ) under the managed domain name (210) based on data in the domain information repository (404) such as the DNS query processing logs (434) , etc.; use the domain names (210) as determined from the DNS query processing logs (434) as primary information to perform streamlined DNS configuration operations; etc.
In some embodiments, the location-dependent domain name resolver (410) comprises software, hardware, a combination of software and hardware, etc., configured to perform real time probing of name resolutions (or probed name resolutions) from domain names (e.g., 210 of FIG. 2, etc. ) to host addresses after the one-key DNS configuration module (408) is invoked. The location-dependent domain name resolver (410) may be implemented as a backend of the streamlined DNS configuration platform (104) .
]In some embodiments, the location-dependent domain name resolver (410) is configured to send DNS queries for each of the domain names (210) to local DNS servers (e.g., 106, etc. ) in different access networks (e.g., 112-1, 112-2, 112-N, etc. ) , and receive corresponding DNS responses that resolve that domain name to one or more (e.g., location-dependent, etc. ) host addresses in different access networks.
The streamlined DNS configuration platform (104) can be configured to generate candidate name resolutions (e.g., 454 of FIG. 4B, etc. ) based at least in part on the probed name resolutions derived from the DNS responses of the DNS servers probed by the location-dependent domain name resolver (410) , and store the candidate name resolutions (454) into the domain information repository (404) . In some embodiments, some or all the probed name resolutions can be imported, organized, converted, etc., into the candidate name resolutions (454) . The candidate name resolutions (454) may include, but are not limited to only, any of: one or more host addresses of each of the domain names (210) under the managed domain name (208) , DNS view information (e.g., DNS Bind View definitions, etc. ) ,
In some embodiments, the DNS configuration front end (406) is configured to present to the user the candidate name resolutions (454) , which the streamlined DNS configuration platform (104) has matched the domain names (210) to respective host addresses (e.g., 302-1-1, 302-1-2, 302-2-1, 302-2-2, etc., of FIG. 3, etc. ) at different locations (e.g., 304-1-1, 304-1-2, 304-2-1, 304-2-2, etc., of FIG. 3, etc. ) based at least in part on the probed name resolutions. In some embodiments, the candidate name resolution (454) may be presented by the DNS configuration front end (406) at one or more user interfaces on the client device (I10) . If the candidate name resolutions are satisfactory, the user can provide confirmation or approval  possibly with as few as a single user action such as a single key pressing, a single button pressing, etc. On the other hand, if the candidate name resolutions are not satisfactory, the user can perform addition, modification, deletion, etc., of the candidate name resolutions (454) until the user provides confirmation or approval that the candidate name resolutions (454) are satisfactory. Since the user is refining on the candidate name resolutions (454) that are generated based on real time probing of name resolutions from the local DNS servers (106) , the user may not need to perform much data manipulation on the candidate name resolutions (454) in order to ensure the correctness and readiness of the candidate name resolutions (454) for configuring the intelligent DNS servers. In some embodiments, because the review and approval process of candidate name resolutions (454) is streamlined, the user who performs these tasks is not required to be an extraordinarily resourceful domain or network administrator in order for the intelligent DNS servers to be correctly configured with accurate and timely approved name resolutions.
In some embodiments, the domain information configurator (412) comprises software, hardware, a combination of software and hardware, etc., configured to interface with the one or more intelligent DNS servers (e.g., 102 of FIG. 1, etc. ) , causes DNS configuration operations to be performed on each of the one or more intelligent DNS servers (e.g., 102 of FIG. 1, etc. ) using the approved name resolutions, etc. In some embodiments, the domain information configuration (412) may communicate with one or more DNS configuration units (e.g., configuration management agent processes, etc. ) of the one or more intelligent DNS servers (e.g., 102 of FIG. 1, etc. ) , cause the one or more DNS configuration units to perform the DNS configuration operations on each of the one or more intelligent DNS servers (e.g., 102 of FIG. 1, etc. ) using the approved name resolutions.
4. STREAMLINED CONFIGURATION OPERATIONS
FIG. 4B illustrates an example block diagram with related data flows for streamlined configuration operations on an intelligent DNS server (e.g., 102 of FIG. 1, etc. ) by a streamlined DNS configuration platform (e.g., 104 of FIG. 1, etc. ) . As illustrated, in some embodiments, a DNS log collector (e.g., 402 of FIG. 4A, etc. ) in the streamlined DNS configuration platform (104) collects DNS query processing logs 434 from one or more internet service providers (not shown) in data flow 432.
In some embodiments, the one or more internet service providers may comprise landline-based access networks, mobile access networks, etc., in which local DNs servers (e.g., 106 of FIG. 1, etc. ) operate to receive DNS queries for domain names from a number of user devices in the one or more internet service providers. In some embodiments, at least some of the DNS query processing logs (434) are collected from the local DNS servers (106) .
The DNS query processing logs (434) may include log information related to processing DNS requests by the local DNS servers (106) . One or more first local DNS servers among the local DNS servers (106) may be configured (e.g., as recursive DNS servers, etc. ) to process DNS requests from first user devices located in a first portion (e.g., Beijing access networks, Beijing mobile networks, etc., of China Unicom, etc. ) of service provider networks  operated by the one or more service providers; one or more second local DNS servers among the local DNS servers (106) may be configured (e.g., as recursive DNS servers, etc. ) to process DNS requests from second user devices located in a second portion (e.g., Shanghai access networks, Shanghai mobile networks, etc., of China Unicom, etc. ) of the service provider computer networks; etc.
In block 436, the DNS log collector (402) analyzes the DNS query processing logs (434) , identifies domain names in the DNS query processing logs (434) , generates a hierarchy of domain names based at least in part on the DNS query processing logs (434) , etc. In some embodiments, the hierarchy of domain names generated from the DNS query processing logs enables the streamlined DNS configuration platform (104) to determine some or all domain names (e.g., representing respective subdomains, “news. sina. com. cn” , “sports. sina. com. cn” , 210 of FIG. 2,etc. ) associated with (e.g., domain names under, etc. ) a managed domain name (e.g., representing a top level domain assigned to a website operator, “sina. com. cn” , 208 of FIG. 2, etc. ) . 
The DNS log collector stores the domain names, the hierarchy of domain names, etc., as identified and generated in block 436 into a domain information repository (e.g., 404 of FIG. 4A,etc. ) in data flow 438. In some embodiments, data stored in the domain information repository (404) may include additional information other than the domain names and the hierarchy of domain names. Some or all of the data in the domain information repository (404) can be used to support perform streamlined DNS configuration operations on an intelligent DNS server (e.g., 102 of FIG. 1, etc. ) .
In some embodiments, a user (e.g., a system administrator, an authorized user, etc. ) of the streamlined DNS configuration platform (104) accesses a DNS configuration front end (e.g., 406 of FIG. 4A, etc. ) . The user may be, but is not limited to, an authorized user of the intelligent DNS service client (108) , a representative from the intelligent DNS service client (108) , an authorized user of the streamlined DNS configuration platform (104) , etc. In some embodiments, the user may operate a client device (e.g., 110 of FIG. 1, etc. ) to communicate with the streamlined DNS configuration platform (104) . In some embodiments, at a user interface on the client device (110) , the user provides user input that specifies a selection of invoking a one-key DNS configuration module (e.g., 408 of FIG. 4A, etc. ) . For the purpose of illustration only, the user enters a managed domain name (e.g., 208 of FIG. 2, etc. ) such as “sina. com. cn” , etc., at the user interface. The managed domain name (208) is communicated by the client device (110) to the DNS configuration front end (406) in data flow 440. In some embodiments, the managed domain name (208) is provided as an operational parameter for the one-key DNS configuration module.
In response to receiving the user input that specifies a selection of invoking the one-key DNS configuration module, the one-key DNS configuration management operations is invoked. The DNS configuration front end (406) provides the managed domain name (208) to the one-key DNS configuration module (408) in data flow 448.
The one-key DNS configuration module (408) in turn invokes a location-dependent domain name resolver (e.g., 410 of FIG. 4A, etc. ) to resolve domain names under the managed  domain name (208) as entered by the user to (e.g., location-dependent, etc. ) host addresses.
The location-dependent domain name resolver (410) proceeds to perform DNS resolution operations 450 that resolve the domain names under the managed domain name. In some embodiments, the DNS resolution operations (450) include retrieving data from the domain information repository (404) to identify the domain names (210) under the managed domain name (208) in data flow 452. For the purpose of illustration only, the managed domain name (208) is “sina. com. cn” . The domain names under the managed domain name (208) , “sina. com. cn” are identified in block 436 based at least in part on the DNS query processing logs (434) .
In some embodiments, the DNS resolution operations (450) , as performed by the location-dependent domain name resolver (410) , further include resolving each of the domain names under the managed domain name into one or more host addresses (e.g., IP addresses, etc. ) as probed name resolutions. In some embodiments, a domain name in the domain names (210) under the managed domain name (208) is resolved into a plurality of location-dependent host addresses according to the probed name resolutions.
For example, the location-dependent domain name resolver (410) may be configured to send a plurality of DNS queries to a plurality of DNS servers (e.g., local DNS servers, recursive name servers, etc. ) for the same domain name for the purpose of determining to which host addresses the plurality of DNS servers in different access networks maps the same domain name.
The plurality of DNS servers queried by the location-dependent domain name resolver (410) can be located in different access networks, different service provider networks, in different network portions, domains, subdomains, etc., of a service provider network, etc.
Examples of service provider networks may include, but are not limited to only: any of: China Unicom, China Telecom, China Mobile, AT&T, Verizon, T-Mobile, Sprint, NTT, etc. Examples of network portions, domains, subdomains, etc., of a service provider network may include, but are not limited to only, any of: one or more China Unicom networks in Beijing, one or more China Unicom networks in Shanghai, one or more China Unicom networks in Hebei, one or more China Unicom networks in Hunan, etc.
The plurality of DNS servers queried by the location-dependent domain name resolver (410) can be located in different continents, countries, provinces, regions, computer networks, etc.
In some embodiments, according to the probed name resolutions, host addresses mapped by two or more DNS servers in the plurality of DNS servers are different. In some embodiments, according to the probed name resolutions, host addresses mapped by two or more DNS servers in the plurality of DNS servers are the same.
In some embodiments, the streamlined DNS configuration platform (104) (e.g., automatically, etc. ) , or the location-dependent domain name resolver (410) therein, generates candidate name resolutions (454) based on the probed name resolutions, and stores the candidate name resolutions (454) into the domain information repository (404) in data flow 456.
In some embodiments, after the candidate name resolutions (454) are stored into the domain information repository (404) , the streamlined DNS configuration platform (104) retrieves  and presents to the user the candidate name resolutions at a user interface on the client device (110) . The candidate name resolutions presented to the user may include, but are not limited to only, any of: one or more (e.g., location-dependent, etc. ) host addresses of each of the domain names (210) under the managed domain name (208) , DNS view information (e.g., DNS Bind View definitions, etc. ) , DNS zone information, host addresses organized with a hierarchy of locations, etc. The candidate name resolutions (454) may be passed to, or retrieved by, the DNS configuration front end (406) in data flow 458 from the domain information repository (404) . The candidate name resolutions (454) is further passed by the DNS configuration front end (406) to the client device (110) in data flow 460.
The user may view the candidate name resolutions (454) and decides whether to change (e.g., modify, add, delete, etc. ) the candidate name resolutions (454) . Depending on the user’s decision, the candidate name resolutions (454) as (e.g., automatically, etc. ) generated in the DNS name resolution operations (450) may or may not be changed. Any change to the candidate name resolutions (454) may be made by the user through a user interface at the client device (110) that communicates user input to the DNS configuration front end (406) .
In some embodiments, the user can proceed to approve the candidate name resolutions (454) (e.g., with any changes made by the user, with no change made by the user, etc. ) such as mappings of individual domain names to (e.g., location-dependent, etc. ) host addresses, DNS view definitions, DNS zone definitions, host addresses as organized with a hierarchy of locations, etc., as displayed on the client device (110) . In some embodiments, the user can approve such candidate name resolutions (454) with a single user interface action such as a single key pressing (e.g., hitting the “Enter” key, etc. ) , a single mouse button clicking, etc.
In response to receiving user input representing the user’s approval of the candidate name resolutions (454) , the streamlined DNS configuration platform (104) , or a domain information configurator (e.g., 412 of FIG. 4A) therein, configures the intelligent DNS server (102) with some or all of the now-approved candidate name resolutions (454) (or simply approved name resolutions) .
In some embodiments, an intelligent DNS service client such as a content provider, a website operator, an internet-based vendor, etc., delegates to the intelligent DNS server (102) to resolve some or all domain names under the managed domain name (208) of the intelligent DNS service client. For the purpose of illustration only, the intelligent DNS service client is a content provider (e.g., 108 of FIG. 1, etc. ) with the managed domain name (208) as a top level domain name.
In some embodiments, a DNS server affiliated with the content provider, which may be a content provider DNS server (e.g., 114 of FIG. 1, etc. ) , is configured with one or more resource records (e.g., in a zone file, etc. ) that redirect all DNS queries of some or all of the domain names (210) under the managed domain name (208) to the intelligent DNS server (102) as an authoritative DNS server (or authoritative name server) . For example, when the content provider DNS server (114) receives a DNS query for a domain name under the managed domain  name (208) , the content provider DNS server (114) can be configured to send a DNS reply with a “NS” (or name server) record defining (e.g., providing address information of, etc. ) the intelligent DNS server (202) as the authoritative DNS server for the domain name.
In various embodiments, the DNS log collector (402) collects the DNS query processing logs (434) before, after, or at the same time when, the content provider delegates to the intelligent DNS server to resolve some or all domain names under the managed domain name (208) .
In some embodiments, the analysis of the DNS query processing logs (434) and/or the identification of the domain names associated with the managed domain name (208) can be performed in response to the content provider (108) delegating to the intelligent DNS server (102) to resolve some or all domain names under the managed domain name (208) .
5.EXAMPLE PROCESS FLOWS
FIG. 5 illustrates an example process flow according to an example embodiment of the present invention. In some example embodiments, one or more computing devices or components may perform this process flow. In block 502, an intelligent DNS configuration platform (e.g., 104 of FIG. 1 or FIG. 4A, etc. ) collects one or more DNS query processing logs from one or more first DNS servers.
In block 504, the intelligent DNS configuration platform (104) identifies a plurality of domain names under a managed domain name from the one or more DNS query processing logs.
In block 506, the intelligent DNS configuration platform (104) queries one or more second DNS servers to generate probed name resolutions that resolve each domain name in the plurality of domain names to one or more host addresses.
In block 508, the intelligent DNS configuration platform (104) generates, based at least in part on the probed name resolutions, name resolutions to be used to configure one or more third DNS servers.
In an embodiment, the foregoing are performed at one of a first time before the one or more third DNS servers are delegated to respond to DNS queries for resolving the domain names under the managed domain name as authoritative name server (s) , a second time after the one or more third DNS servers are delegated to DNS queries for resolving the domain names under the managed domain name as authoritative name server (s) , etc.
In an embodiment, the one or more first DNS servers comprise at least one local DNS server.
In an embodiment, the one or more second DNS servers comprise at least one local DNS server.
In an embodiment, the one or more third DNS servers comprise an intelligent DNS server configured at least in part with the name resolutions to resolve at least one domain name in the domain names under the managed domain name to one or more host addresses.
In an embodiment, the one or more host addresses comprise at least one location-dependent host address that is dependent on a location, as determined by the intelligent  DNS server when responding to a DNS query relating to the at least one domain name.
In an embodiment, the managed domain name is a domain name of one or more of content providers, websites, portals, database systems, computer servers, etc.
In an embodiment, the one or more first DNS servers are located in one or more access networks of one or more service providers.
In an embodiment, the one or more DNS query processing logs comprise log information relating to DNS queries received by the one or more first DNS servers and DNS responses sent by the one or more first DNS servers.
In an embodiment, the probed name resolutions are generated by querying the one or more second DNS servers in real time in response to an invocation of DNS configuration operations for the one or more third DNS servers.
In an embodiment, the name resolutions to be used to configure one or more third DNS servers are approved by a user.
In an embodiment, the name resolutions to be used to configure one or more third DNS servers comprise one or more candidate name resolutions automatically generated based on the probed name resolutions, without data manipulation by a user.
In an embodiment, the name resolutions to be used to configure one or more third DNS servers comprise one or more candidate name resolutions as changed by a user after the one or more candidate name resolutions were automatically generated based on the probed name resolutions.
In an embodiment, the one or more host addresses represent one or more internet (IP) address of one or more network elements.
In an embodiment, different host addresses in the one or more host addresses are used to serve different content with the same domain name to user devices at different locations.
In an embodiment, different host addresses in the one or more host addresses correspond to different cache server nodes to serve content with the same domain name to user devices at different locations.
In an embodiment, the name resolutions to be used to configure one or more third DNS servers are represented by one or more of probed name resolutions, resource records that explicitly or implicitly map domain names to location-dependent host addresses, DNS view definitions, DNS zone definitions, etc.
In an embodiment, the name resolutions to be used to configure one or more third DNS servers comprise one or more name resolutions that resolve a particular domain name in the domain names to a plurality of location-dependent host addresses; the plurality of location-dependent host addresses are organized with one or more of DNS views, DNS zones, hierarchies of locations, etc.
In an embodiment, the one or more host addresses comprise a host address; a domain name is resolved to a host address dependent on a location as determined by an intelligent DNS server in the one or more third DNS servers when responding to a received DNS query caused by  a user device; the location is determined by the intelligent DNS server based on one or more of a geographic location of the user device as estimated by geotagging or geolocation techniques, a specific service provider network, a specific portion in a network topology, a host address of the user device, a portion ora host address of the user device, a specific access networks in which the user device is located, a subnet related to a host address of the user device, etc.
In an embodiment, the managed domain name is inputted by a user at a client device in communication with the streamlined DNS configuration platform (104) .
In various example embodiments, a system, an apparatus, or one or more other computing devices performs any or a part of the foregoing methods as described.
In an embodiment, a non-transitory computer readable storage medium, storing software instructions, which when executed by one or more processors cause performance of any of the foregoing methods.
In an embodiment, a computing device comprising one or more processors and one or more storage media storing a set of instructions which, when executed by the one or more processors, cause performance of any of the foregoing methods. Note that, although separate embodiments are discussed herein, any combination of embodiments and/or partial embodiments discussed herein may be combined to form further embodiments.
6. IMPLEMENTATION MECHANISMS-HARDWARE OVERVIEW
According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
For example, FIG. 6 is a block diagram that illustrates a computer system 600 upon which an example embodiment of the invention may be implemented. Computer system 600 includes a bus 602 or other communication mechanism for communicating information, and a hardware processor 604 coupled with bus 602 for processing information. Hardware processor 604 may be, for example, a general purpose microprocessor.
Computer system 600 also includes a main memory 606, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 602 for storing information and instructions to be executed by processor 604. Main memory 606 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 604. Such instructions, when stored in non-transitory storage media  accessible to processor 604, render computer system 600 into a special-purpose machine that is customized to perform the operations specified in the instructions.
Computer system 600 further includes a read only memory (ROM) 608 or other static storage device coupled to bus 602 for storing static information and instructions for processor 604. A storage device 610, such as a magnetic disk or optical disk, is provided and coupled to bus 602 for storing information and instructions.
Computer system 600 may be coupled via bus 602 to a display 612, such as a liquid crystal display, for displaying information to a computer user. An input device 614, including alphanumeric and other keys, is coupled to bus 602 for communicating information and command selections to processor 604. Another type of user input device is cursor control 616, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 604 and for controlling cursor movement on display 612. This input device typically has two degrees of fieedom in two axes, a first axis (e.g., x) and a second axis (e.g., y) , that allows the device to specify positions in a plane.
Computer system 600 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 600 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 600 in response to processor 604 executing one or more sequences of one or more instructions contained in main memory 606. Such instructions may be read into main memory 606 from another storage medium, such as storage device 610. Execution of the sequences of instructions contained in main memory 606 causes processor 604 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
The term “storage media” as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operation in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 610. Volatile media includes dynamic memory, such as main memory 606. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.
Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 602. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
Various forms of media may be involved in carrying one or more sequences of one or  more instructions to processor 604 for execution. For example, the instructions may initially be canied on a magnetic disk or solid state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 600 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carded in the infra-red signal and appropriate circuitry can place the data on bus 602. Bus 602 carries the data to main memory 606, from which processor 604 retrieves and executes the instructions. The instructions received by main memory 606 may optionally be stored on storage device 610 either before or after execution by processor 604.
Computer system 600 also includes a communication interface 618 coupled to bus 602. Communication interface 618 provides a two-way data communication coupling to a network link 620 that is connected to a local network 622. For example, communication interface 618 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 618 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 618 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 620 typically provides data communication through one or more networks to other data devices. For example, network link 620 may provide a connection through local network 622 to a host computer 624 or to data equipment operated by an Internet Service Provider (ISP) 626. ISP 626 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 628. Local network 622 and Internet 628 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 620 and thiough communication interface 618, which carry the digital data to and from computer system 600, are example forms of transmission media.
Computer system 600 can send messages and receive data, including program code, through the network (s) , network link 620 and communication interface 618. In the Internet example, a server 630 might transmit a requested code for an application program through Internet 628, ISP 626, local network 622 and communication interface 618.
The received code may be executed by processor 604 as it is received, and/or stored in storage device 610, or other non-volatile storage for later execution.
7. EQUIVALENTS, EXTENSIONS, ALTERNATIVES AND MISCELLANEOUS
 In the foregoing specification, example embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, the sole and exclusive indicator of what is the invention, and is intended by the applicants to be the invention, is the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction. Any definitions  expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Hence, no limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Claims (23)

  1. A method for configuring domain name system (DNS) servers, comprising:
    collecting one or more DNS query processing logs from one or more first DNS servers;
    identifying a plurality of domain names under a managed domain name from the one or more DNS query processing logs;
    querying one or more second DNS servers to generate probed name resolutions that resolve each domain name in the plmality of domain names to one or more host addresses; and
    generating, based at least in part on the probed name resolutions, name resolutions to be used to configure one or more third DNS servers;
    wherein the method is performed by one or more computing devices.
  2. The method of Claim 1, wherein the method is performed at one of a first time before the one or more third DNS servers are delegated to respond to DNS queries for resolving the domain names under the managed domain name as authoritative name server (s) , or a second time after the one or more third DNS servers are delegated to DNS queries for resolving the domain names under the managed domain name as authoritative name server (s) .
  3. The method of Claim 1, wherein the one or more first DNS servers comprise at least one local DNS server.
  4. The method of Claim 1, wherein the one or more second DNS servers comprise at least one local DNS server.
  5. The method of Claim 1, wherein the one or more third DNS servers comprise an intelligent DNS server configured at least in part with the name resolutions to resolve at least one domain name in the domain names under the managed domain name to one or more host addresses.
  6. The method of Claim 5, wherein the one or more host addresses comprise at least one location-dependent host address that is dependent on a location, as determined by the intelligent DNS server when responding to a DNS query relating to the at least one domain name.
  7. The method of Claim 1, wherein the managed domain name is a domain name of one or more of content providers, websites, portals, database systems, or computer servers.
  8. The method of Claim 1, wherein the one or more first DNS servers are located in one or more access networks of one or more service providers.
  9. The method of Claim 1, wherein the one or more DNS query processing logs comprise log information relating to DNS queries received by the one or more first DNS servers and DNS responses sent by the one or more first DNS servers.
  10. The method of Claim 1, wherein the probed name resolutions are generated by querying the one or more second DNS servers in real time in response to an invocation of DNS configuration operations for the one or more third DNS servers.
  11. The method of Claim 1, wherein the name resolutions to be used to configure one or more third DNS servers are approved by a user.
  12. The method of Claim 1, wherein the name resolutions to be used to configure one or more third DNS servers comprise one or more candidate name resolutions automatically generated based on the probed name resolutions, without data manipulation by a user.
  13. The method of Claim 1, wherein the name resolutions to be used to configure one or more third DNS servers comprise one or more candidate name resolutions as changed by a user after the one or more candidate name resolutions were automatically generated based on the probed name resolutions.
  14. The method of Claim 1, wherein the one or more host addresses represent one or more internet (IP) address of one or more network elements.
  15. The method of Claim 1, wherein different host addresses in the one or more host addresses are used to serve different content with the same domain name to user devices at different locations.
  16. The method of Claim 1, wherein different host addresses in the one or more host addresses conespond to different cache server nodes to serve content with the same domain name to user devices at different locations.
  17. The method of Claim 1, wherein the name resolutions to be used to configure one or more third DNS servers are represented by one or more of probed name resolutions, resource records that explicitly or implicitly map domain names to location-dependent host addresses, DNS view definitions, or DNS zone definitions.
  18. The method of Claim 1, wherein the name resolutions to be used to configure one or more third DNS servers comprise one or more name resolutions that resolve a particular domain name in the domain names to a plurality of location-dependent host addresses, and wherein the plmality of location-dependent host addresses are organized with one or more of DNS views, DNS zones, or hierarchies of locations.
  19. The method of Claim 1, wherein the one or more host addresses comprise a host address, wherein a domain name is resolved to a host address dependent on a location as determined by an intelligent DNS server in the one or more third DNS servers when responding to a received DNS query caused by a user device, and wherein the location is determined by the intelligent DNS server based on one or more of a geographic location of the user device as estimated by geotagging or geolocation techniques, aspecific service provider network, aspecific portion in a network topology, ahost address of the user device, aportion of a host address of the user device, aspecific access networks in which the user device is located, or a subnet related to a host address of the user device.
  20. The method of Claim 1, wherein the managed domain name is inputted by a user at a client  device in communication with a streamlined DNS configuration platform that performs the method.
  21. A system performing any of the methods as recited in Claims 1-20.
  22. A non-transitory computer readable storage medium, storing software instractions, which when executed by one or more processors cause performance of the method recited in any of Claims 1-20.
  23. A computing device comprising one or more processors and one or more storage media, storing a set of instructions, which when executed by one or more processors cause performance of the method recited in any of Claims 1-20.
PCT/CN2014/090809 2014-11-11 2014-11-11 Streamlining location-dependent dns configuration WO2016074150A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/090809 WO2016074150A1 (en) 2014-11-11 2014-11-11 Streamlining location-dependent dns configuration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/090809 WO2016074150A1 (en) 2014-11-11 2014-11-11 Streamlining location-dependent dns configuration

Publications (1)

Publication Number Publication Date
WO2016074150A1 true WO2016074150A1 (en) 2016-05-19

Family

ID=55953556

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/090809 WO2016074150A1 (en) 2014-11-11 2014-11-11 Streamlining location-dependent dns configuration

Country Status (1)

Country Link
WO (1) WO2016074150A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107147751A (en) * 2017-05-11 2017-09-08 上海红阵信息科技有限公司 Domain name analytic method and device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090157889A1 (en) * 2007-12-13 2009-06-18 Opendns, Inc. Per-request control of dns behavior
CN102055818A (en) * 2010-12-30 2011-05-11 北京世纪互联工程技术服务有限公司 Distributed intelligent DNS (domain name server) library system
CN103167044A (en) * 2011-12-08 2013-06-19 中国移动通信集团浙江有限公司 Intelligent analysis method of domain name system (DNS) and poking measurement device and system
US20140059208A1 (en) * 2012-08-26 2014-02-27 At&T Intellectual Property I, L.P. Methods, Systems, and Products for Monitoring Domain Name Servers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090157889A1 (en) * 2007-12-13 2009-06-18 Opendns, Inc. Per-request control of dns behavior
CN102055818A (en) * 2010-12-30 2011-05-11 北京世纪互联工程技术服务有限公司 Distributed intelligent DNS (domain name server) library system
CN103167044A (en) * 2011-12-08 2013-06-19 中国移动通信集团浙江有限公司 Intelligent analysis method of domain name system (DNS) and poking measurement device and system
US20140059208A1 (en) * 2012-08-26 2014-02-27 At&T Intellectual Property I, L.P. Methods, Systems, and Products for Monitoring Domain Name Servers

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107147751A (en) * 2017-05-11 2017-09-08 上海红阵信息科技有限公司 Domain name analytic method and device

Similar Documents

Publication Publication Date Title
CN106068639B (en) The Transparent Proxy certification handled by DNS
CN111373704B (en) Method, system and storage medium for supporting multimode identification network addressing progressive-entry IP
CN106797410A (en) Domain name analytic method and device
US7188094B2 (en) Indexing virtual attributes in a directory server system
US7827280B2 (en) System and method for domain name filtering through the domain name system
US11816161B2 (en) Asset search and discovery system using graph data structures
US8073972B2 (en) System and method for location discovery based on DNS
US7251826B1 (en) Domain manager for plural domains and method of use
US11025584B2 (en) Client subnet efficiency by equivalence class aggregation
CN112600868B (en) Domain name resolution method, domain name resolution device and electronic equipment
US8874708B2 (en) Location discovery based on DNS
CN103957282B (en) Terminal user's domain name mapping acceleration system and its method in a kind of domain
US20090097458A1 (en) Method and System for Agent Redirecting the Terminal Request
CN109995885B (en) Domain name space structure presentation method, device, equipment and medium
US8316045B1 (en) Database linking system
CN109710861B (en) System and method for generating URL
WO2016074150A1 (en) Streamlining location-dependent dns configuration
US9576062B1 (en) Resource object resolution management
CN111447297B (en) IPv4 and IPv6 DNS unified access management method and system
KR20010035965A (en) Methods for deciding Internet address groups distinguished by assigned organizations or locations and for resolving the geographical information for each address group, which are intended to set up Internet address supplementary system and its applications
CN106817437A (en) The querying method and device of address record
CN109495525B (en) Network component, method of resolving content identification, and computer-readable storage medium
CN105245626A (en) Method for realizing website addressing by using shortcut domain name in private network
CN113472914B (en) DNS directional prefetching caching method and system
WO2016074148A1 (en) Method and system for domain name load balancing

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14905848

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14905848

Country of ref document: EP

Kind code of ref document: A1