DK3143753T3

Method and system for load balancing anycast data traffic

Abstract

This record has no abstract on file.

DK3143753T3, drawing sheet 1
Sheet 1 of 7

Term

8.6 yearsto projected expiry

Projected expiry 11 May 2035, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

15 claims: 15 independent, 0 dependent

  1. 1
    PATENT REQUIREMENTS PATENTKRAV 1. System for load balancing of anycast traffic in a communication network comprising:1. System til belastningsbalancering af anycast-trafik i et kommunikationsnetværk omfattende: a first set of load balancing devices (LB devices), each LB device of the first set of LB devices being configured to: et første sæt af belastningsbalanceringsanordninger (LB-anordninger), hvor hver LBanordning af det første sæt af LB-anordninger er konfigureret til: at opretholde en første datastruktur, som indbefatter indlæsninger, der er tilknyttet applikationsinstanser i en gruppe af applikationsinstanser, som er betjent af LBanordningen af det første sæt af LB-anordninger, hvor hyppigheden, med hvilken hver betjent applikationsinstans er indbefattet i den første datastruktur, er indikerende for en vægtværdi, der er tilknyttet en kapacitet af den tilsvarende betjente applikationsinstans;maintaining a first data structure that includes inputs 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 is indicating a weight value associated with a capacity of the corresponding serviced application body;upon receiving a data packet addressed to an anycast address, by an LB device of the first set of LB devices, generating a first hash value based on one or more first start fields of the received data packet, identifying a virtual Internet protocol address (IP);address) of one of the served application instances based on the first generated hash value using the first data structure;and forwarding the data packet to the identified application instance;ved modtagelse af en datapakke, der er adresseret en anycast-adresse, ved en LBanordning af det første sæt af LB-anordninger, at generere en første hashværdi baseret på ét eller flere første startfelter af den modtagne datapakke, at identificere en virtuel internetprotokoladresse (IP-adresse) af én af de betjente applikationsinstanser baseret på den første genererede hashværdi ved anvendelse af den første datastruktur;og at videresende datapakken til den identificerede applikationsinstans;a second set of load balancing devices (LB devices), each LB device of the second set of LB devices being configured to: et andet sæt af belastningsbalanceringsanordninger (LB-anordninger), hvor hver LBanordning af det andet sæt af LB-anordninger er konfigureret til: at opretholde en anden datastruktur, som indbefatter indlæsninger, der er tilknyttet de respektive LB-anordninger af det første sæt, hvor hyppigheden, med hvilken hver LBanordning i det første sæt af LB-anordninger er indbefattet i den anden datastruktur, er indikerende for en vægtværdi, der er tilknyttet den tilsvarende LB-anordning af det første sæt;maintaining a second data structure that includes entries associated with the respective LB devices of the first set, the frequency with which each LB device in the first set of LB devices is included in the second data structure indicating a weight value;associated with the corresponding LB device of the first set;at generere en anden hashværdi ved modtagelse af datapakken baseret på ét eller flere anden startfelter af den modtagne datapakke;generating a different hash value upon receipt of the data packet based on one or more other start fields of the received data packet;at identificere en LB-anordning af det første sæt af LB-anordninger ved anvendelse af den anden datastruktur baseret på den genererede anden hashværdi;og at videresende datapakken til den identificerede LB-anordning af det første sæt;og en flerhed af anycast-knudepunkter, som er tilknyttet anycast-adressen, og som er konfigureret til: identifying an LB device of the first set of LB devices using the second data structure based on the generated second hash value;and forwarding the data packet to the identified LB device of the first set;and a plurality of anycast nodes associated with the anycast address and configured to: at slå pakkens kildeadresse op i et kildeadressekort, som deles af flerheden af anycast-knudepunkter, ved modtagelse af datapakken for at bestemme en placering, som er tilknyttet kildeadressen, hvor pladsen er indikerende for en LB-anordning af det andet sæt af LB-anordninger, og at videresende den modtagne datapakke til LB-anordningen. looking up the source address of the packet in a source address card shared by the plurality of anycast nodes upon receipt of the data packet to determine a location associated with the source address where the space is indicative of an LB device of the second set of LB devices , and forwarding the received data packet to the LB device.
  2. 2
    The system of claim 1, wherein the LB device of the second set of LB devices is further configured to report traffic load forwarded to each LB device of the first set of LB devices to a global LB element. 2. System ifølge krav 1, hvor LB-anordningen af det andet sæt af LB-anordninger yderligere er konfigureret til at rapportere trafikbelastning, som er videresendt til hver LBanordning af det første sæt af LB-anordninger, til et globalt LB-element. DK / EP 3143753 T3 DK/EP 3143753 T3
  3. 3
    The system of claim 2, wherein the global LB element is configured to generate weights associated with LB devices of the first set of LB devices at least in part based on received reports of forwarded traffic loads from LB devices of the second set of LB devices. LB devices for LB devices of the first set of LB devices. 3. Systemet ifølge krav 2, hvor det globale LB-element er konfigureret til at generere vægte, som er tilknyttet LB-anordninger af det første sæt af LB-anordninger i det mindste delvist baseret på modtagne rapporter af videresendte trafikbelastninger fra LBanordninger af det andet sæt af LB-anordninger til LB-anordninger af det første sæt af LBanordninger.
  4. 4
    A system according to 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. 4. System ifølge et hvilket som helst af kravene 1 til 3, hvor vægtværdien, som er tilknyttet den tilsvarende LB-anordning af det første sæt, er indikerende for en kapacitet af gruppen af processeringsanordninger betjent af den tilsvarende LB-anordning af det første sæt, hvor applikationsinstanserne fortrinsvis er tilknyttet mindst én af en applikationsserver, en indholdsserver, og en virtuel maskine.
  5. 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:5. System ifølge et hvilket som helst af kravene 1 til 4, hvor hver LB-anordning af det andet sæt af LB-anordninger er yderligere konfigureret til: at modtage en vægtværdi for én eller flere LB-anordninger i det første sæt af LBanordninger;og at generere den anden datastruktur baseret på de modtagne vægtværdier for den ene eller de flere LB-anordninger i det første sæt af LB-anordninger. receiving 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.
  6. 6
    The system of claim 5, wherein each LB device of the second set of LB devices upon generating the second data structure is further configured to:6. System ifølge krav 5, hvor hver LB-anordning af det andet sæt af LB-anordninger ved generering af den anden datastruktur er yderligere konfigureret til: at vælge et antal tomme datastrukturplaceringer for hver LB-anordning af det første sæt af LB-anordninger, hvor antallet af valgte datastrukturplaceringer bestemmes baseret på vægtværdien, som svarer til LB-anordningen af det første sæt af LB-anordninger;og at indsætte en IP-adresse af LB-anordningen af det første sæt af LB-anordninger i hver af de valgte tomme datastrukturplaceringer, hvor, fortrinsvis, hver LB-anordning af det andet sæt af LB-anordninger er yderligere konfigureret til at vælge antallet af tomme datastrukturplaceringer for hver LB-anordning af det første sæt af LB-anordninger baseret på en offsetværdi tilknyttet LB-anordningen af det første sæt af LB-anordninger. selecting a number of empty data structure locations for each LB device of the first set of LB devices, the number of selected data structure locations being determined based on the weight value corresponding to the LB device of the first set of LB devices;and inserting an IP address of the LB device of the first set of LB devices into each of the selected blank data structure locations, wherein, preferably, each LB device of the second set of LB devices is further configured to select the number of empty data structure locations for each LB device of the first set of LB devices based on an offset value associated with the LB device of the first set of LB devices.
  7. 7
    A system according to any one of claims 1 to 6, wherein each LB device of the first set of LB devices is further configured to:7. System ifølge et hvilket som helst af kravene 1 til 6, hvor hver LB-anordning af det første sæt af LB-anordninger er yderligere konfigureret til: at modtage en vægtværdi for hver applikationsinstans i gruppen af applikationsinstanser, der er betjent af LB-anordningen af det første sæt af LB-anordninger;og at generere den første datastruktur baseret på de modtagne vægtværdier for applikationsinstanser i gruppen, som er betjent af LB-anordninger af det første sæt af LBanordninger, hvor hver LB-anordning af det første sæt af LB-anordninger, fortrinsvis ved genereringen af den første datastruktur, er yderligere konfigureret til: receiving 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 ​​for application instances in the group served by LB devices of the first set of LB devices, each LB device of the first set of LB devices, preferably at the generation of the first data structure, is further configured to: at vælge et antal tomme datastrukturplaceringer for hver applikationsinstans af gruppen betjent af LB-anordningen af det første sæt af LB-anordninger, hvor antallet af valgte datastrukturplaceringer er bestemt baseret på vægtværdien svarende til applikationsinstansen;og selecting a number of empty data structure locations 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 locations being determined based on the weight value corresponding to the application instance;and DK/EP 3143753 T3 at indsætte en virtuel IP-adresse af applikationsinstansen i hver af de valgte tomme datastrukturplaceringer. Inserting a virtual IP address of the application instance into each of the selected blank data structure locations.
  8. 8
    The system of claim 7, wherein each LB device of the first set of LB devices is further configured to select the number of blank data structure locations for each application instance of the group served by the LB device of the first set of LB devices based on an offset value associated with the application instance. . 8. System ifølge krav 7, hvor hver LB-anordning af det første sæt af LB-anordninger er yderligere konfigureret til at vælge antallet af tomme datastrukturplaceringer for hver applikationsinstans af gruppen betjent af LB-anordningen af det første sæt af LBanordninger baseret på en offsetværdi tilknyttet applikationsinstansen.
  9. 9
    Procedure for data traffic load balancing where:9. Fremgangsmåde til datatrafikbelastningsbalancering hvor: each load balancing device (LB device), of a first set of LB devices performs the following steps: hver belastningsbalanceringsanordning (LB-anordning), af et første sæt af LBanordninger udfører de følgende trin: at opretholde en første datastruktur indbefattende indlæsninger, der er tilknyttet applikationsinstanser i en gruppe af applikationsinstanser betjent af LB-anordningen af det første sæt af LB-anordninger, hvor hyppigheden, med hvilken hver betjent applikationsinstans er indbefattet i den første datastruktur, er indikerende for en vægtværdi, der er tilknyttet en kapacitet af den tilsvarende betjente applikationsinstans;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 indicating a weight value associated with a capacity of the corresponding served application body;upon receiving, by an LB device of the first set of LB devices, of a data packet addressed an anycast address, generating a first hash value based on one or more first start fields of the received data packet;ved modtagelse, ved en LB-anordning af det første sæt af LB-anordninger, af en datapakke adresseret en anycast-adresse, at generere en første hashværdi baseret på ét eller flere første startfelter af den modtagne datapakke;at identificere en virtuel internetprotokoladresse (IP-adresse)- af én af de betjent applikationsinstanser baseret på den genererede første hashværdi ved at anvende af den første datastruktur;og at videresende datapakken til den identificerede applikationsinstans;identifying a virtual Internet Protocol address (IP address) - by one of the served application instances based on the generated first hash value using the first data structure;and forwarding the data packet to the identified application instance;hvor hver LB-anordning af et andet sæt af LB-anordninger udfører de følgende trin: wherein each LB device of a different set of LB devices performs the following steps: at opretholde en anden datastruktur indbefattende indlæsninger tilknyttet respektive LB-anordninger i det første sæt, hvor hyppigheden, med hvilken hver LB-anordning i det første sæt af LB-anordninger er indbefattet i den anden datastruktur, er indikerende for en vægtværdi, der er tilknyttet den tilsvarende LB-anordning af det første sæt;maintaining a second data structure including entries associated with respective LB devices in the first set, wherein the frequency with which each LB device in the first set of LB devices is included in the second data structure is indicative of a weight value associated with it;the corresponding LB device of the first set;at generere en anden hashværdi ved modtagelse af datapakken baseret på ét eller flere anden startfelter af den modtagne datapakke, hvor datapakken modtages ved LBsystemet, som er adresseret anycast-adressen;generating a second hash value upon receipt of the data packet based on one or more other start fields of the received data packet, the data packet being received by the LB system addressed to the anycast address;at identificere en LB-anordning af det første sæt af LB-anordninger, baseret på den genererede anden hashværdi ved at anvende den anden datastruktur;identifying an LB device of the first set of LB devices, based on the generated second hash value using the second data structure;at videresende datapakken til den identificerede LB-anordning af det første sæt af LB-anordninger;hvor en flerhed af anycast-knudepunkter tilknyttet anycast-adressen udfører følgende trin: forwarding the data packet to the identified LB device of the first set of LB devices;where a plurality of anycast nodes associated with the anycast address perform the following steps: at slå pakkens kildeadresse op i et kildeadressekort, som deles af flerheden af anycast-knudepunkter, for at bestemme en placering tilknyttet kildeadressen, hvor placeringen er indikerende for en LB-anordning af det andet sæt af LB-anordninger, og at videresende den modtagne datapakke til LB-anordningen. to look up the source address of the packet in a source address card shared by the plurality of anycast nodes to determine a location associated with the source address where the location is indicative of an LB device of the second set of LB devices, and to forward the received data packet to the LB device. DK / EP 3143753 T3 DK/EP 3143753 T3
  10. 10
    The method of claim 9, further comprising reporting traffic load forwarded to each LB device by the first set of LB devices to a global LB element by the LB device of the second set of LB devices;which, preferably, further comprises generating weights associated with the LB devices of the second set of LB devices, using the global LB element, at least in part based on received reports of forwarded traffic loads from LB devices of the second set of LB devices for LB devices of the first set of LB devices. 10. Fremgangsmåde ifølge krav 9, der yderligere omfatter at rapportere trafikbelastning, som er videresendt til hver LB-anordning af det første sæt af LB-anordninger, til et globalt LB-element ved hjælp af LB-anordningen af det andet sæt af LB-anordninger;som, fortrinsvis, yderligere omfatter, at generere vægte, der er tilknyttet LB-anordningerne af det andet sæt af LB-anordninger, ved hjælp af det globale LB-element, i det mindste delvist baseret på modtagne rapporter af videresendte trafikbelastninger fra LB-anordninger af det andet sæt af LB-anordninger til LB-anordninger af det første sæt af LB-anordninger.
  11. 11
    A method according to 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. 11. Fremgangsmåde ifølge et hvilket som helst af kravene 9 til 10, hvor vægtværdien, som er tilknyttet den tilsvarende LB-anordning af det første sæt af LB-anordninger, er indikerende for en kapacitet af gruppen af applikationsinstanser betjent af den tilsvarende LB-anordning af det første sæt af LB-anordninger, og hvor applikationsinstanserne fortrinsvis er tilknyttet mindst én af en applikationsserver, en indholdsserver, og en virtuel maskine.
  12. 12
    A method according to any one of claims 9 to 11, further comprising:12. Fremgangsmåde ifølge et hvilket som helst af kravene 9 til 11, som yderligere omfatter: at modtage en vægtværdi for én eller flere LB-anordninger i det første sæt af LBanordninger, ved hjælp af LB-anordningen af det andet sæt af LB-anordninger;og at generere den anden datastruktur baseret på de modtagne vægtværdier for én eller flere LB-anordninger i det første sæt af LB-anordninger. receiving a weight value for one or more LB devices in the first set of LB devices, by means of the LB device of the second set of LB devices;and generating the second data structure based on the received weight values ​​for one or more LB devices in the first set of LB devices.
  13. 13
    The method of claim 12, wherein the step of generating the second table includes:13. Fremgangsmåde ifølge krav 12, hvor trinnet at generere den anden tabel indbefatter: at vælge et antal af tomme datastrukturplaceringer for hver LB-anordning af det første sæt af LB-anordninger, hvor antallet af valgte datastrukturplaceringer er bestemt baseret på vægtværdien tilsvarende til LB-anordningen af det første sæt af LB-anordninger;og at indsætte en IP-adresse af LB-anordningen af det første sæt i hver af de valgte tomme datastrukturplaceringer, hvor, fortrinsvis, at vælge antallet af tomme datastrukturplaceringer, for hver LBanordning af det første sæt af LB-anordninger, indbefatter at vælge antallet af tomme datastrukturplaceringer baseret på en offsetværdi tilknyttet LB-anordningen af det første sæt af LB-anordninger. selecting a number of blank data structure locations for each LB device of the first set of LB devices, the number of selected data structure locations being determined based on the weight value corresponding to the LB device of the first set of LB devices;and inserting an IP address of the LB device of the first set into each of the selected blank data structure locations, wherein, preferably, selecting the number of blank data structure locations, for each LB device of the first set of LB devices, includes selecting the number of empty data structure locations based on an offset value associated with the LB device of the first set of LB devices.
  14. 14
    A method according to any one of claims 9 to 13, further comprising:14. Fremgangsmåde ifølge et hvilket som helst af kravene 9 til 13, som yderligere omfatter: at modtage en vægtværdi for hver applikationsinstans i gruppen af applikationsinstanser betjent af LB-anordningen af det første sæt af LB-anordninger ved LB-anordningen af det første sæt, og at generere den første datastruktur baseret på de modtagne vægtværdier. receiving 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 at the LB device of the first set, and generating the first data structure based on the received weight values.
  15. 15
    The method of claim 14, wherein the step of generating the first data structure includes:15. Fremgangsmåden ifølge krav 14, hvor trinnet at generere den første datastruktur indbefatter: DK/EP 3143753 T3 at vælge et antal af tomme datastrukturplaceringer, for hver applikationsinstans af gruppen betjent af LB-anordningen af det første sæt af LB-anordninger, hvor antallet af valgte datastrukturplaceringer bestemmes baseret på vægtværdien svarende til applikationsinstansen;og Selecting a number of empty data structure locations, 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 locations being determined based on the weight value corresponding to the application instance;and 5 inserting a virtual IP address of the application instance in each of the selected empty data structure locations, wherein, preferably, selecting the number of empty data structure locations for each application instance includes selecting the number of empty data structure locations based on an offset value associated with the application instance. 5 at indsætte en virtuel IP-adresse af applikationsinstansen i hver af de valgte tomme datastrukturplaceringer, hvor, fortrinsvis, at vælge antallet af tomme datastrukturplaceringer for hver applikationsinstans indbefatter at vælge antallet af tomme datastrukturplaceringer baseret på en offsetværdi, som er tilknyttet applikationsinstansen. DK / EP 3143753 T3 DK/EP 3143753 T3