EP3143753B1

Method and system for load balancing anycast data traffic

Abstract

This record has no abstract on file.

EP3143753B1, drawing sheet 1
Sheet 1 of 7

Term

8.6 yearsleft in the term

Expires 11 May 2035.

  1. Priority and filed
  2. Granted
  3. Today
  4. Expires

15 claims: 8 independent, 7 dependent

  1. 1
    A system for load balancing anycast traffic in a communications network, comprising:a first set of load balancing (LB) devices, each LB device of the first set of LB devices being configured to: maintain a first data structure including entries associated with application instances in a group of application instances served by the LB device of the first set of LB devices, the frequency with which each served application instance is included in the first data structure being indicative of a weight value associated with a capacity of the corresponding served application instance;upon receiving, at an LB device of the first set of LB devices, a data packet addressed to an anycast address, , generate a first hash value based on one or more first header fields of the received data packet;using the first data structure, identify a virtual Internet protocol (IP) address of one of the served application instances based on the generated first hash value;and forward the data packet to the identified application instance;a second set of load balancing (LB) devices, each LB device of the second set of LB devices being configured to: maintain a second data structure including entries associated with respective LB devices in the first set, the frequency with which each LB device in the first set of LB devices is included in the second data structure being indicative of a weight value associated with the corresponding LB device of the first set;upon receiving said data packet, generate a second hash value based on one or more second header fields of the received data packet;identify a LB device of first set of LB devices using the second data structure, based on the generated second hash value;and forward the data packet to the identified LB device of the first set;and a plurality of anycast nodes associated with the anycast address configured to: upon receiving said data packet, look up the packet's source address in a source address map shared by the plurality of anycast nodes to determine a location associated with the source address, the location being indicative of an LB device of the second set of LB devices, and forward the received data packet to the LB device.
  2. 4
    The system of any one of claims 1 to 3, wherein the weight value associated with the corresponding LB device of the first set is indicative of a capacity of the group of processing devices served by the corresponding LB device of the first set, wherein the application instances are preferably associated with at least one of an application server, a content server, and a virtual machine.
  3. 5
    The system of any one of claims 1 to 4, wherein each LB device of the second set of LB devices is further configured to:receive a weight value for one or more LB devices in the first set of LB devices;and generate the second data structure based on the received weight values for the one or more LB devices in the first set of LB devices.
  4. 7
    The system of any one of claims 1 to 6, wherein each LB device of the first set of LB devices is further configured to:receive a weight value for each application instance in the group of application instances served by the LB device of the first set of LB devices;and generate the first data structure based on the received weight values for application instances in the group served by the LB device of the first set of LB devices, wherein preferably in generating the first data structure, each LB device of the first set of LB devices is further configured to: select a number of empty data structure positions for each application instance of the group served by the LB device of the first set of LB devices, the number of selected data structure positions being determined based on the weight value corresponding to the application instance;and insert a virtual IP address of the application instance in each of the selected empty data structure positions.
  5. 9
    A method for data traffic load balancing wherein:each load balancing, LB, device of a first set of LB devices performs the following steps: maintaining a first data structure including entries associated with application instances in a group of application instances served by the LB device of the first set of LB devices, the frequency with which each served application instance is included in the first data structure being indicative of a weight value associated with a capacity of the corresponding served application instance;upon receiving, at an LB device of the first set of LB devices, a data packet addressed to an anycast address, generating a first hash value based on one or more first header fields of the received data packet;using the first data structure, identify a virtual Internet protocol (IP) address of one of the served application instances based on the generated first hash value;and forwarding the data packet to the identified application instance;wherein each LB device of a second set of LB devices performs the following steps: maintaining a second data structure including entries associated with respective LB devices in the first set, the frequency with which each LB device in the first set of LB devices is included in the second data structure being indicative of a weight value associated with the corresponding LB device of the first set;upon receiving said data packet generating a second hash value based on one or more second header fields of the received data packet, the data packet being received at the LB system addressed to the anycast address;identify a LB device of first set of LB devices using the second data structure, based on the generated second hash value;forwarding the data packet to the identified LB device of the first set of LB devices;wherein a plurality of anycast nodes associated with the anycast address perform the following steps: look up the packet's source address in a source address map shared by the plurality of anycast nodes to determine a location associated with the source address, the location being indicative of an LB device of the second set of LB devices, and forward the received data packet to the LB device.
  6. 11
    The method of any one of claims 9 to 10, wherein the weight value associated with the corresponding LB device of the first set of LB devices is indicative of a capacity of the group of application instances served by the corresponding LB device of the first set of LB devices, and wherein the application instances are preferably associated with at least one of an application server, a content server, and a virtual machine.
  7. 12
    The method of any one of claims 9 to 11 further comprising:receiving, by the LB device of the second set of LB devices, a weight value for one or more LB devices in the first set of LB devices;and generating the second data structure based on the received weight values for the one or more LB devices in the first set of LB devices.
  8. 14
    The method of any one of claims 9 to 13 further comprising:receiving, by the LB device of the first set, a weight value for each application instance in the group of application instances served by the LB device of the first set of LB devices;and generating the first data structure based on the received weight values.