Scalable domain name system with persistence and load balancing
First Claim
1. A process for load balancing and persistence tracking between client Domain Name Servers (DNS) and content servers across a network in a computer environment, comprising the steps of:
- providing a plurality of DNS servers;
receiving a client'"'"'s Internet Protocol (IP) address request;
checking if the resident DNS server is authoritative for said request;
forwarding said request to the proper DNS server if said resident DNS server is not authoritative for said request;
wherein each DNS server is associated with a subset of the DNS groups in said network;
providing a persistence table;
wherein said persistence table is comprised of persistence entries;
wherein each of said persistence entries contains an IP address;
checking if a persistent response is required;
sending the appropriate IP address from said persistence table as a response to the sender of said request if a persistent response is required;
providing a latency table;
wherein said latency table contains the load, latency, and availability of content servers;
finding the proper IP address of a content server to return based on the information in said latency table if no persistent response is required; and
sending said proper IP address as a response to the sender of said request.
7 Assignments
0 Petitions
Accused Products
Abstract
A scalable domain name system with persistence and load balancing receives requests from client DNS servers or other DNS servers. Each DNS server is associated with a subset of the DNS groups in the network and the invention checks to see if the client DNS server is part of the DNS group that the DNS server is authoritative. If the DNS server is not authoritative for the client DNS server'"'"'s group, then the request is forwarded to the proper DNS server. Otherwise, the invention checks a persistence table to see if a persistent response is required for the request. If a persistent response is required, the appropriate IP address entry in the table is returned to the requestor. If a persistent response is not required, the invention determines the load, availability, and latency of the content servers from information stored in a latency table to determine the proper content server'"'"'s address to return to the requestor. The DNS server sends any responses to forwarded requests to the client DNS server. When more than one DNS server is authoritative for an overlapping DNS group, the invention ensures that the persistence and latency tables are synchronized with any other DNS servers. The invention also allows the persistence and latency tables to be located on a set of table servers within the network. Another aspect of the invention allows the DNS server that a request is forwarded to, to respond directly to the client and the client is redirected to the DNS server.
-
Citations
27 Claims
-
1. A process for load balancing and persistence tracking between client Domain Name Servers (DNS) and content servers across a network in a computer environment, comprising the steps of:
-
providing a plurality of DNS servers;
receiving a client'"'"'s Internet Protocol (IP) address request;
checking if the resident DNS server is authoritative for said request;
forwarding said request to the proper DNS server if said resident DNS server is not authoritative for said request;
wherein each DNS server is associated with a subset of the DNS groups in said network;
providing a persistence table;
wherein said persistence table is comprised of persistence entries;
wherein each of said persistence entries contains an IP address;
checking if a persistent response is required;
sending the appropriate IP address from said persistence table as a response to the sender of said request if a persistent response is required;
providing a latency table;
wherein said latency table contains the load, latency, and availability of content servers;
finding the proper IP address of a content server to return based on the information in said latency table if no persistent response is required; and
sending said proper IP address as a response to the sender of said request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
receiving a response to said forwarded request from the authoritative DNS server; and
sending said response to the requesting client.
-
-
3. The process of claim 1, further comprising the step of:
determining the proper content server to resolve said requested address to.
-
4. The process of claim 1, further comprising the step of:
measuring the latency between DNS groups and content servers.
-
5. The process of claim 1, further comprising the step of:
synchronizing the information in said persistence table and said latency table with other DNS server(s) associated with the same or part of the same subset of DNS groups as said resident DNS server.
-
6. The process of claim 1, wherein said persistence table and said latency table are resident on a plurality of table servers in said network.
-
7. The process of claim 1, wherein the DNS server that is forwarded a request responds directly to the requesting client.
-
8. The process of claim 7, wherein said requesting client is redirected to said forwarded DNS server.
-
9. The process of claim 1, wherein when there are multiple DNS servers that are associated with a common DNS group subset, the DNS server that receives the original request performs load balancing among the associated DNS servers.
-
10. An apparatus for load balancing and persistence tracking between client Domain Name Servers (DNS) and content servers across a network in a computer environment, comprising:
-
a plurality of DNS servers;
a module for receiving a client'"'"'s Internet Protocol (IP) address request;
a module for checking if the resident DNS server is authoritative for said request;
a module for forwarding said request to the proper DNS server if said resident DNS server is not authoritative for said request;
wherein each DNS server is associated with a subset of the DNS groups in said network;
a persistence table;
wherein said persistence table is comprised of persistence entries;
wherein each of said persistence entries contains an IP address;
a module for checking if a persistent response is required;
a module for sending the appropriate IP address from said persistence table as a response to the sender of said request if a persistent response is required;
a latency table;
wherein said latency table contains the load, latency, and availability of content servers;
a module for finding the proper IP address of a content server to return based on the information in said latency table if no persistent response is required; and
a module for sending said proper IP address as a response to the sender of said request. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
a module for receiving a response to said forwarded request from the authoritative DNS server; and
a module for sending said response to the requesting client.
-
-
12. The apparatus of claim 10, further comprising:
a module for determining the proper content server to resolve said requested address to.
-
13. The apparatus of claim 10, further comprising:
a module for measuring the latency between DNS groups and content servers.
-
14. The apparatus of claim 10, further comprising:
a module for synchronizing the information in said persistence table and said latency table with other DNS server(s) associated with the same or part of the same subset of DNS groups as said resident DNS server.
-
15. The apparatus of claim 10, wherein said persistence table and said latency table are resident on a plurality of table servers in said network.
-
16. The apparatus of claim 10, wherein the DNS server that is forwarded a request responds directly to the requesting client.
-
17. The apparatus of claim 16, wherein said requesting client is redirected to said forwarded DNS server.
-
18. The apparatus of claim 10, wherein when there are multiple DNS servers that are associated with a common DNS group subset, the DNS server that receives the original request performs load balancing among the associated DNS servers.
-
19. A program storage medium readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps for load balancing and persistence tracking between client Domain Name Servers (DNS) and content servers across a network in a computer environment, comprising the steps of:
-
providing a plurality of DNS servers;
receiving a client'"'"'s Internet Protocol (IP) address request;
checking if the resident DNS server is authoritative for said request;
forwarding said request to the proper DNS server if said resident DNS server is not authoritative for said request;
wherein each DNS server is associated with a subset of the DNS groups in said network;
providing a persistence table;
wherein said persistence table is comprised of persistence entries;
wherein each of said persistence entries contains an IP address;
checking if a persistent response is required;
sending the appropriate IP address from said persistence table as a response to the sender of said request if a persistent response is required;
providing a latency table;
wherein said latency table contains the load, latency, and availability of content servers;
finding the proper IP address of a content server to return based on the information in said latency table if no persistent response is required; and
sending said proper IP address as a response to the sender of said request. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
receiving a response to said forwarded request from the authoritative DNS server; and
sending said response to the requesting client.
-
-
21. The method of claim 19, further comprising the step of:
determining the proper content server to resolve said requested address to.
-
22. The method of claim 19, further comprising the step of:
measuring the latency between DNS groups and content servers.
-
23. The method of claim 19, further comprising the step of:
synchronizing the information in said persistence table and said latency table with other DNS server(s) associated with the same or part of the same subset of DNS groups as said resident DNS server.
-
24. The method of claim 19, wherein said persistence table and said latency table are resident on a plurality of table servers in said network.
-
25. The method of claim 19, wherein the DNS server that is forwarded a request responds directly to the requesting client.
-
26. The method of claim 25, wherein said requesting client is redirected to said forwarded DNS server.
-
27. The method of claim 19, wherein when there are multiple DNS servers that are associated with a common DNS group subset, the DNS server that receives the original request performs load balancing among the associated DNS servers.
Specification