WO2021219217A1 - Updating routing information - Google Patents

Updating routing information Download PDF

Info

Publication number
WO2021219217A1
WO2021219217A1 PCT/EP2020/061938 EP2020061938W WO2021219217A1 WO 2021219217 A1 WO2021219217 A1 WO 2021219217A1 EP 2020061938 W EP2020061938 W EP 2020061938W WO 2021219217 A1 WO2021219217 A1 WO 2021219217A1
Authority
WO
WIPO (PCT)
Prior art keywords
nodes
group
traffic
load balancing
change
Prior art date
Application number
PCT/EP2020/061938
Other languages
French (fr)
Inventor
Abdusalam ABUBAKAR
Brian Gunning
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
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 Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Priority to PCT/EP2020/061938 priority Critical patent/WO2021219217A1/en
Publication of WO2021219217A1 publication Critical patent/WO2021219217A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath

Definitions

  • Examples of the present disclosure relate to updating routing information, for example for a group of nodes in a network.
  • a service may be provided by a group of nodes and network traffic for the group of nodes may be shared between the nodes using a load balancing algorithm by a management node.
  • the management node may route and maintain Layer 4 Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) packets that arrive at the management node with a certain destination IP address to the nodes using the load balancing algorithm.
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • the management node may be responsible for routing traffic relating to one or more further groups of nodes, where the traffic for each group is shared between the nodes in the group using a respective load balancing algorithm for the group.
  • a backend service provided by a group of nodes may be deployed on a separate virtual machine with a pre-assigned static IP address.
  • the routing performed by the management node to route traffic between the nodes in the group may be configured at the time of installation of the group of nodes.
  • One aspect of the present disclosure provides a method in a first network node.
  • the method comprises receiving information identifying a change to a first group of nodes, wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group.
  • the method also comprises updating routing information for traffic for the first group of nodes based on the information identifying the change.
  • An additional aspect of the present disclosure provides a computer program comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out the method described above.
  • a further aspect of the present disclosure provides apparatus in a first network node.
  • the apparatus comprises a processor and a memory.
  • the memory contains instructions executable by the processor such that the apparatus is operable to receive information identifying a change to a first group of nodes, wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group, and update routing information for traffic for the first group of nodes based on the information identifying the change.
  • An additional aspect of the present disclosure provides apparatus in a first network node.
  • the apparatus is configured to receive information identifying a change to a first group of nodes, wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group, and update routing information for traffic for the first group of nodes based on the information identifying the change.
  • Figure 1 is a flow chart of an example of a method in a first network node
  • Figure 2 shows an example of a network including a first network node and a first group of nodes
  • Figure 3 shows an example of at least part of metadata that may describe a group of nodes
  • Figure 4 is a schematic of an example of apparatus in a first network node.
  • Hardware implementation may include or encompass, without limitation, digital signal processor (DSP) hardware, a reduced instruction set processor, hardware (e.g., digital or analogue) circuitry including but not limited to application specific integrated circuit(s) (ASIC) and/or field programmable gate array(s) (FPGA(s)), and (where appropriate) state machines capable of performing such functions.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • Existing solutions for routing by a management node may expect static IP addresses for all deployed back-end services. All configuration may be applied at either installation or upgrade time. For example, the configuration may be manually produced and applied, such as by a network operator. There is presently no mechanism to deal with dynamically assigned IP addresses or changing IP addresses of the backend services. Furthermore, there is presently no mechanism to apply and maintain a particular routing algorithm (e.g. round robin, source hashing, least connection) to a particular Layer 4 TCP or UDP service.
  • a particular routing algorithm e.g. round robin, source hashing, least connection
  • Existing solutions require users to configure a load balancing algorithm per backend service (e.g. group of nodes), thus requiring a new routable static IP address per service. In the event that a new backend service is added or an existing service is upgraded, or a service is removed, access to the management node to reconfigure the routing rules may not be possible.
  • Examples of this disclosure may provide the ability to expose one or more different backend services (e.g. each provided by a different group of nodes) over a single virtual IP (VIP) address and to dynamically apply and maintain Layer 4 routing to UDP and TCP traffic, applying a desired load balancing algorithm (e.g. source hashing, round robin, least connection) and applying a desired routing mode (e.g. network address translation, tunneling, direct routing).
  • VIP virtual IP
  • FIG. 1 is a flow chart of an example of a method 100 in a first network node.
  • the network node may be for example a management node that handles (routes or manages) traffic for one or more groups of nodes.
  • Traffic for a group of nodes may be, for example, traffic whose ultimate destination is intended to be a node in a group of nodes.
  • the specific address such as the IP address of the destination node may not be specified by the traffic in some examples.
  • the destination address such as IP address of the traffic may be the address of the first network node, or may alternatively be a virtual address such as a virtual IP address (VIP) associated with the group of nodes.
  • VIP virtual IP address
  • the method 100 comprises, in step 102, receiving information identifying a change to a first group of nodes (or one or more nodes in the first group), wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group.
  • the change to the first group of nodes may be, for example, a change in IP address of one or more of the nodes, a change in address (e.g. virtual IP address) of the group of nodes, or a change in port numbers used for the group of nodes or one or more of the individual nodes.
  • the change may also be for example the addition of a node to the first group of nodes or a deletion of a node from the first group of nodes.
  • the change may also be for example a change to the first load balancing algorithm, such as for example a change in the type of load balancing algorithm (e.g. round robin, source hashing and/or least connections) or a change in a particular parameter of the first load balancing algorithm.
  • the change may also be for example creation of the first group of nodes (e.g. to make a service provided by the first group of nodes available) or deletion of the first group of nodes.
  • the information identifying a change to the first group of nodes may identify multiple changes to the first group of nodes (or the nodes in the first group).
  • the first load balancing algorithm may be any appropriate load balancing algorithm, such as for example round robin, source hashing and/or least connections.
  • Step 104 of the method 100 comprises, for example, updating routing information for traffic for the first group of nodes based on the information identifying the change. Therefore, traffic for the first group of nodes (e.g. traffic arriving at the first network node) may be routed to the first group of nodes appropriately, using the first load balancing algorithm.
  • the first network node 204 subsequently routes traffic 210 for the first group of nodes. For example, the first network node 204 may receive a packet for the first group of nodes 206, select a node 208 of the first group of nodes 206 based on the first load balancing algorithm, and forward the packet to the selected node 208 in the first group of nodes 206.
  • the information identifying the change received in step 102 may be a notification of a create, update or delete (CRUD) event.
  • the CRUD event may indicate for example that there has been a change to configuration information for a group of nodes or a node in a group.
  • the first network node may retrieve the appropriate information, such as configuration files or configuration data or metadata, and update the routing information accordingly.
  • the first network node may subscribe to CRUD events from a different node in the network or from a particular software module in the first network node.
  • Figure 3 shows an example of at least part of metadata 300 that may describe a group of nodes.
  • the metadata 300 includes a virtual service IP address (virtualServicelP) 302 that may be the virtual IP address to which traffic for the group of nodes associated with the metadata 300 is sent.
  • the metadata 300 also includes port information 304 that describes a range of ports to which traffic for the group of nodes is sent (vipPortRange), and information 306 that describes a range of ports to which traffic for the particular nodes should be forwarded (svcPortRange).
  • the port ranges are the same, though in other examples they may be different (e.g.
  • the metadata 300 also indicates the routing algorithm 308 (algo) to be used as a load balancing algorithm for sharing traffic between nodes in the group. In this example the routing algorithm is sh (source hashing).
  • the metadata 300 also indicates a packet forwarding mode 310 that may be used by the first network node to forward packets to the group of nodes (e.g. a selected node in the group). In the example shown in Figure 3, the packet forwarding node 310 is specified as NAT (Network Address Translation), though the packet forwarding mode 310 may in other examples be another packet forwarding mode, such as for example direct routing, tunneling or any other packet forwarding mode.
  • NAT Network Address Translation
  • the metadata may additionally or alternatively include other information that describes how traffic for the group of nodes should be forwarded or routed to one of the group of nodes by the first network node. Any change to this information (e.g. to the virtual IP address, ports, routing algorithm and/or any other data indicated by the metadata 300), or indeed creation and deletion of a group of nodes (which may for example be indicated by creation or deletion of corresponding metadata) may be detected by the first network node (e.g. through notification of a CRUD event) and routing information updated accordingly.
  • Examples of this disclosure may have one or more of the following advantages.
  • Specific routing algorithms e.g. load balancing algorithms
  • All backend services can be exposed via a single IP address (e.g. virtual IP address) if desired.
  • Addresses e.g. IP addresses
  • Examples of this disclosure may be used in both public and private cloud implementation scenarios.
  • multiple instances of the first network node may be applied on a per namespace basis. Multiple instances can be deployed in the same namespace. For example, a network may be divided into multiple namespaces.
  • the first network node (which may be for example a management node) can listen to all messages/events for the whole network or on a per namespace basis. Therefore, multiple independent nodes such as the first network node may be deployed in a network and each may manage traffic relating to a different namespace.
  • multiple instances of a node such as the further network node may be deployed and may manage traffic relating to the same namespace. This may be for reasons such as for example handling different traffic patterns if I think they might conflict or impact each other.
  • many services may share the same management node (e.g. the first network node) but a particular service may be deployed in the same namespace and it may be desirable to segregate its traffic from other services in the namespace.
  • Figure 2 shows an example of a network 200 including the first network node 204.
  • the network 200 also includes a first group of nodes 206 that includes nodes 208. Two nodes 208 are shown, though in other examples the first group of nodes 206 may include any number of one or more nodes.
  • the first network node 204 receives traffic 210 for the first group of nodes 206, and uses routing information 212 to forward the traffic to the first group of nodes 206.
  • the first network node 204 may select a particular node 208 of the first group of nodes 206 and forward the traffic to the selected node.
  • the routing information 212 may thus for example specify addresses (e.g.
  • the first network node 204 may perform the method 100 of Figure 1. That is, for example, the first network node 102 may receive the information identifying the change to the first group of nodes 206, and may update the routing information 212 accordingly.
  • the further group(s) of nodes may provide one or more services that may be the same as or different to the first group 206.
  • Figure 2 shows an example of one further group 214 including a number of nodes 216.
  • the first network node 204 may in some examples receive traffic for the further group of nodes 214, and use routing information 212 to forward the traffic to the further group of nodes 214.
  • the first network node 204 may select a particular node 216 of the further group of nodes 214 and forward the traffic to the selected node.
  • the routing information 212 may thus for example specify addresses (e.g.
  • the method 100 may include additional steps performed by the first network node 204.
  • the first network node 204 may in some examples receive second information identifying a change to a second group of nodes (e.g.
  • the method 100 may also comprise receiving a packet for the second group of nodes, selecting a node of the second group of nodes based on the second load balancing algorithm, and forwarding the packet to the selected node in the second group of nodes.
  • traffic for the first group of nodes 206 may have a destination address that is a virtual IP address (VIP) of the first group of nodes
  • traffic for the further group of nodes 214 may have a destination address that is a virtual IP address (VIP) of the further group of nodes.
  • VIP addresses may be the same or different.
  • the destination address of the traffic for both nodes may be e.g. an address (IP or VIP address) of the first network node 204.
  • the information identifying the change to the first group of nodes comprises information identifying addition of a further node to the first group of nodes. Therefore, for example, updating the routing information may comprise including the further node in the routing information such that the first load balancing algorithm uses the updated routing information.
  • the updated routing information may include information (e.g. IP address, ports) to allow traffic to be forwarded to the further node if it is selected by the first load balancing algorithm.
  • including the further node in the routing information may comprise defining, in the routing information, routing between the first network node and the further node.
  • the information identifying the addition of the further node to the first group of nodes is received from the further node.
  • the information identifying the change to the first group of nodes may in some examples comprise information identifying removal of one of the nodes in the first group of nodes.
  • updating the routing information may for example comprise removing the further node from the routing information such that the first load balancing algorithm uses the updated routing information. That is, for example, traffic subsequently arriving at the first network node 204 may be routed to one of the remaining nodes and not to the removed node.
  • the information identifying the removal of the one of the nodes from the first group of nodes is received from the one of the nodes.
  • receiving information identifying the change to a first group of nodes in step 102 comprises determining a change to configuration data for the first group of nodes, or receiving a notification of a change to the configuration data for the first group of nodes.
  • the configuration data may comprise for example any data or metadata that describes information on how a group of nodes (or each individual node) operates, and how it may be accessed, such as for example IP address, port numbers and/or the particular load balancing algorithm to be applied to the group of nodes.
  • Updating the routing information for traffic for the first group of nodes may in some examples comprise updating the first load balancing algorithm, for example to replace it with a different load balancing algorithm.
  • the load balancing algorithm for the first group of nodes 206 may be an algorithm such as round robin, whereas the routing information may be updated such that the updated load balancing algorithm for the first group of nodes 206 may be a different algorithm such as source hashing.
  • the first load balancing algorithm may in some examples share network traffic for the first group of nodes between the nodes in the first group based on one or more Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) ports of the traffic.
  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • the ports may in some examples identify the appropriate group of nodes to which to forward traffic.
  • FIG. 4 is a schematic of an example of apparatus 400 in a first network node.
  • the apparatus 400 comprises processing circuitry 402 (e.g. one or more processors) and a memory 404 in communication with the processing circuitry 402.
  • the memory 404 contains instructions executable by the processing circuitry 402.
  • the apparatus 400 also comprises an interface 406 in communication with the processing circuitry 402. Although the interface 406, processing circuitry 402 and memory 404 are shown connected in series, these may alternatively be interconnected in any other way, for example via a bus.
  • the memory 404 contains instructions executable by the processing circuitry 402 such that the apparatus 400 is operable to receive information identifying a change to a first group of nodes, wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group, and update routing information for traffic for the first group of nodes based on the information identifying the change.
  • the apparatus 400 is operable to carry out the method 100 described above with reference to Figure 1.

Abstract

Methods and apparatus are provided. In an example aspect, a method in a first network node is provided. The method comprises receiving information identifying a change to a first group of nodes, wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group, and updating routing information for traffic for the first group of nodes based on the information identifying the change.

Description

UPDATING ROUTING INFORMATION
Technical Field
Examples of the present disclosure relate to updating routing information, for example for a group of nodes in a network.
Background
In some network topologies, a service may be provided by a group of nodes and network traffic for the group of nodes may be shared between the nodes using a load balancing algorithm by a management node. The management node may route and maintain Layer 4 Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) packets that arrive at the management node with a certain destination IP address to the nodes using the load balancing algorithm. The management node may be responsible for routing traffic relating to one or more further groups of nodes, where the traffic for each group is shared between the nodes in the group using a respective load balancing algorithm for the group.
In some examples, a backend service provided by a group of nodes may be deployed on a separate virtual machine with a pre-assigned static IP address. The routing performed by the management node to route traffic between the nodes in the group may be configured at the time of installation of the group of nodes.
Summary
One aspect of the present disclosure provides a method in a first network node. The method comprises receiving information identifying a change to a first group of nodes, wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group. The method also comprises updating routing information for traffic for the first group of nodes based on the information identifying the change.
An additional aspect of the present disclosure provides a computer program comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out the method described above.
A further aspect of the present disclosure provides apparatus in a first network node. The apparatus comprises a processor and a memory. The memory contains instructions executable by the processor such that the apparatus is operable to receive information identifying a change to a first group of nodes, wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group, and update routing information for traffic for the first group of nodes based on the information identifying the change.
An additional aspect of the present disclosure provides apparatus in a first network node. The apparatus is configured to receive information identifying a change to a first group of nodes, wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group, and update routing information for traffic for the first group of nodes based on the information identifying the change.
Brief Description of the Drawings
For a better understanding of examples of the present disclosure, and to show more clearly how the examples may be carried into effect, reference will now be made, by way of example only, to the following drawings in which:
Figure 1 is a flow chart of an example of a method in a first network node;
Figure 2 shows an example of a network including a first network node and a first group of nodes; Figure 3 shows an example of at least part of metadata that may describe a group of nodes; and
Figure 4 is a schematic of an example of apparatus in a first network node.
Detailed Description
The following sets forth specific details, such as particular embodiments or examples for purposes of explanation and not limitation. It will be appreciated by one skilled in the art that other examples may be employed apart from these specific details. In some instances, detailed descriptions of well-known methods, nodes, interfaces, circuits, and devices are omitted so as not obscure the description with unnecessary detail. Those skilled in the art will appreciate that the functions described may be implemented in one or more nodes using hardware circuitry (e.g., analog and/or discrete logic gates interconnected to perform a specialized function, ASICs, PLAs, etc.) and/or using software programs and data in conjunction with one or more digital microprocessors or general purpose computers. Nodes that communicate using the air interface also have suitable radio communications circuitry. Moreover, where appropriate the technology can additionally be considered to be embodied entirely within any form of computer-readable memory, such as solid-state memory, magnetic disk, or optical disk containing an appropriate set of computer instructions that would cause a processor to carry out the techniques described herein.
Hardware implementation may include or encompass, without limitation, digital signal processor (DSP) hardware, a reduced instruction set processor, hardware (e.g., digital or analogue) circuitry including but not limited to application specific integrated circuit(s) (ASIC) and/or field programmable gate array(s) (FPGA(s)), and (where appropriate) state machines capable of performing such functions.
Existing solutions for routing by a management node may expect static IP addresses for all deployed back-end services. All configuration may be applied at either installation or upgrade time. For example, the configuration may be manually produced and applied, such as by a network operator. There is presently no mechanism to deal with dynamically assigned IP addresses or changing IP addresses of the backend services. Furthermore, there is presently no mechanism to apply and maintain a particular routing algorithm (e.g. round robin, source hashing, least connection) to a particular Layer 4 TCP or UDP service. Existing solutions require users to configure a load balancing algorithm per backend service (e.g. group of nodes), thus requiring a new routable static IP address per service. In the event that a new backend service is added or an existing service is upgraded, or a service is removed, access to the management node to reconfigure the routing rules may not be possible.
Examples of this disclosure may provide the ability to expose one or more different backend services (e.g. each provided by a different group of nodes) over a single virtual IP (VIP) address and to dynamically apply and maintain Layer 4 routing to UDP and TCP traffic, applying a desired load balancing algorithm (e.g. source hashing, round robin, least connection) and applying a desired routing mode (e.g. network address translation, tunneling, direct routing).
Figure 1 is a flow chart of an example of a method 100 in a first network node. The network node may be for example a management node that handles (routes or manages) traffic for one or more groups of nodes. Traffic for a group of nodes may be, for example, traffic whose ultimate destination is intended to be a node in a group of nodes. However, the specific address such as the IP address of the destination node may not be specified by the traffic in some examples. Instead, the destination address such as IP address of the traffic may be the address of the first network node, or may alternatively be a virtual address such as a virtual IP address (VIP) associated with the group of nodes.
The method 100 comprises, in step 102, receiving information identifying a change to a first group of nodes (or one or more nodes in the first group), wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group. The change to the first group of nodes may be, for example, a change in IP address of one or more of the nodes, a change in address (e.g. virtual IP address) of the group of nodes, or a change in port numbers used for the group of nodes or one or more of the individual nodes. The change may also be for example the addition of a node to the first group of nodes or a deletion of a node from the first group of nodes. The change may also be for example a change to the first load balancing algorithm, such as for example a change in the type of load balancing algorithm (e.g. round robin, source hashing and/or least connections) or a change in a particular parameter of the first load balancing algorithm. The change may also be for example creation of the first group of nodes (e.g. to make a service provided by the first group of nodes available) or deletion of the first group of nodes. In some examples, the information identifying a change to the first group of nodes may identify multiple changes to the first group of nodes (or the nodes in the first group). The first load balancing algorithm may be any appropriate load balancing algorithm, such as for example round robin, source hashing and/or least connections.
Step 104 of the method 100 comprises, for example, updating routing information for traffic for the first group of nodes based on the information identifying the change. Therefore, traffic for the first group of nodes (e.g. traffic arriving at the first network node) may be routed to the first group of nodes appropriately, using the first load balancing algorithm. In some examples, the first network node 204 subsequently routes traffic 210 for the first group of nodes. For example, the first network node 204 may receive a packet for the first group of nodes 206, select a node 208 of the first group of nodes 206 based on the first load balancing algorithm, and forward the packet to the selected node 208 in the first group of nodes 206.
In some examples the information identifying the change received in step 102 may be a notification of a create, update or delete (CRUD) event. The CRUD event may indicate for example that there has been a change to configuration information for a group of nodes or a node in a group. In some examples the first network node may retrieve the appropriate information, such as configuration files or configuration data or metadata, and update the routing information accordingly. In some examples, the first network node may subscribe to CRUD events from a different node in the network or from a particular software module in the first network node.
Figure 3 shows an example of at least part of metadata 300 that may describe a group of nodes. In the example shown, the metadata 300 includes a virtual service IP address (virtualServicelP) 302 that may be the virtual IP address to which traffic for the group of nodes associated with the metadata 300 is sent. The metadata 300 also includes port information 304 that describes a range of ports to which traffic for the group of nodes is sent (vipPortRange), and information 306 that describes a range of ports to which traffic for the particular nodes should be forwarded (svcPortRange). In this example, the port ranges are the same, though in other examples they may be different (e.g. traffic for the group of nodes arriving at the first network node may arrive on port X, and be forwarded to a particular node in the group on port Y, where Y may or may not be the same as X). The metadata 300 also indicates the routing algorithm 308 (algo) to be used as a load balancing algorithm for sharing traffic between nodes in the group. In this example the routing algorithm is sh (source hashing). The metadata 300 also indicates a packet forwarding mode 310 that may be used by the first network node to forward packets to the group of nodes (e.g. a selected node in the group). In the example shown in Figure 3, the packet forwarding node 310 is specified as NAT (Network Address Translation), though the packet forwarding mode 310 may in other examples be another packet forwarding mode, such as for example direct routing, tunneling or any other packet forwarding mode.
The metadata may additionally or alternatively include other information that describes how traffic for the group of nodes should be forwarded or routed to one of the group of nodes by the first network node. Any change to this information (e.g. to the virtual IP address, ports, routing algorithm and/or any other data indicated by the metadata 300), or indeed creation and deletion of a group of nodes (which may for example be indicated by creation or deletion of corresponding metadata) may be detected by the first network node (e.g. through notification of a CRUD event) and routing information updated accordingly.
Examples of this disclosure may have one or more of the following advantages. Specific routing algorithms (e.g. load balancing algorithms) may be applied to route traffic between nodes in a group using ephemeral dynamic IP addresses that are not known in advance. All backend services can be exposed via a single IP address (e.g. virtual IP address) if desired. Addresses (e.g. IP addresses) of individual nodes in a group may not exposed. Examples of this disclosure may be used in both public and private cloud implementation scenarios. In some examples, multiple instances of the first network node may be applied on a per namespace basis. Multiple instances can be deployed in the same namespace. For example, a network may be divided into multiple namespaces. The first network node (which may be for example a management node) can listen to all messages/events for the whole network or on a per namespace basis. Therefore, multiple independent nodes such as the first network node may be deployed in a network and each may manage traffic relating to a different namespace.
As a further development of this, multiple instances of a node such as the further network node may be deployed and may manage traffic relating to the same namespace. This may be for reasons such as for example handling different traffic patterns if I think they might conflict or impact each other. In a particular example, many services may share the same management node (e.g. the first network node) but a particular service may be deployed in the same namespace and it may be desirable to segregate its traffic from other services in the namespace.
Figure 2 shows an example of a network 200 including the first network node 204. The network 200 also includes a first group of nodes 206 that includes nodes 208. Two nodes 208 are shown, though in other examples the first group of nodes 206 may include any number of one or more nodes. In some examples, the first network node 204 receives traffic 210 for the first group of nodes 206, and uses routing information 212 to forward the traffic to the first group of nodes 206. In particular, for example, the first network node 204 may select a particular node 208 of the first group of nodes 206 and forward the traffic to the selected node. The routing information 212 may thus for example specify addresses (e.g. IP addresses) and/or ports for the nodes 208 and may also specify the first load balancing algorithm that can be used to select one of the nodes 208. In some examples, the first network node 204 may perform the method 100 of Figure 1. That is, for example, the first network node 102 may receive the information identifying the change to the first group of nodes 206, and may update the routing information 212 accordingly.
In some examples, there may also be one or more further groups of nodes, each group comprising one or more nodes. The further group(s) of nodes may provide one or more services that may be the same as or different to the first group 206. Figure 2 shows an example of one further group 214 including a number of nodes 216. The first network node 204 may in some examples receive traffic for the further group of nodes 214, and use routing information 212 to forward the traffic to the further group of nodes 214. In particular, for example, the first network node 204 may select a particular node 216 of the further group of nodes 214 and forward the traffic to the selected node. The routing information 212 may thus for example specify addresses (e.g. IP addresses) and/or ports for the nodes 216 and may also specify a further load balancing algorithm that can be used to select one of the nodes 208. The further load balancing algorithm may be the same as or different to the first load balancing algorithm for the first group of nodes 206. In some examples, the method 100 may include additional steps performed by the first network node 204. For example, the first network node 204 may in some examples receive second information identifying a change to a second group of nodes (e.g. the further group 214), wherein the second group of nodes is associated with a second load balancing algorithm for sharing network traffic for the second group of nodes between the nodes in the second group, and updating routing information for traffic for the second group of nodes based on the second information identifying the change. The method 100 may also comprise receiving a packet for the second group of nodes, selecting a node of the second group of nodes based on the second load balancing algorithm, and forwarding the packet to the selected node in the second group of nodes. In some examples, traffic for the first group of nodes 206 may have a destination address that is a virtual IP address (VIP) of the first group of nodes, and traffic for the further group of nodes 214 may have a destination address that is a virtual IP address (VIP) of the further group of nodes. These VIP addresses may be the same or different. In other examples, the destination address of the traffic for both nodes may be e.g. an address (IP or VIP address) of the first network node 204.
In some examples, the information identifying the change to the first group of nodes comprises information identifying addition of a further node to the first group of nodes. Therefore, for example, updating the routing information may comprise including the further node in the routing information such that the first load balancing algorithm uses the updated routing information. For example, the updated routing information may include information (e.g. IP address, ports) to allow traffic to be forwarded to the further node if it is selected by the first load balancing algorithm. Thus for example including the further node in the routing information may comprise defining, in the routing information, routing between the first network node and the further node. In some examples, the information identifying the addition of the further node to the first group of nodes is received from the further node.
The information identifying the change to the first group of nodes may in some examples comprise information identifying removal of one of the nodes in the first group of nodes. In such cases, updating the routing information may for example comprise removing the further node from the routing information such that the first load balancing algorithm uses the updated routing information. That is, for example, traffic subsequently arriving at the first network node 204 may be routed to one of the remaining nodes and not to the removed node. In some examples, the information identifying the removal of the one of the nodes from the first group of nodes is received from the one of the nodes.
In some examples, receiving information identifying the change to a first group of nodes in step 102 comprises determining a change to configuration data for the first group of nodes, or receiving a notification of a change to the configuration data for the first group of nodes. The configuration data may comprise for example any data or metadata that describes information on how a group of nodes (or each individual node) operates, and how it may be accessed, such as for example IP address, port numbers and/or the particular load balancing algorithm to be applied to the group of nodes.
Updating the routing information for traffic for the first group of nodes may in some examples comprise updating the first load balancing algorithm, for example to replace it with a different load balancing algorithm. For example, the load balancing algorithm for the first group of nodes 206 may be an algorithm such as round robin, whereas the routing information may be updated such that the updated load balancing algorithm for the first group of nodes 206 may be a different algorithm such as source hashing.
The first load balancing algorithm may in some examples share network traffic for the first group of nodes between the nodes in the first group based on one or more Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) ports of the traffic. The ports may in some examples identify the appropriate group of nodes to which to forward traffic.
Figure 4 is a schematic of an example of apparatus 400 in a first network node. The apparatus 400 comprises processing circuitry 402 (e.g. one or more processors) and a memory 404 in communication with the processing circuitry 402. The memory 404 contains instructions executable by the processing circuitry 402. The apparatus 400 also comprises an interface 406 in communication with the processing circuitry 402. Although the interface 406, processing circuitry 402 and memory 404 are shown connected in series, these may alternatively be interconnected in any other way, for example via a bus.
In one embodiment, the memory 404 contains instructions executable by the processing circuitry 402 such that the apparatus 400 is operable to receive information identifying a change to a first group of nodes, wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group, and update routing information for traffic for the first group of nodes based on the information identifying the change. In some examples, the apparatus 400 is operable to carry out the method 100 described above with reference to Figure 1.
It should be noted that the above-mentioned examples illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative examples without departing from the scope of the appended statements. The word “comprising” does not exclude the presence of elements or steps other than those listed in a claim, “a” or “an” does not exclude a plurality, and a single processor or other unit may fulfil the functions of several units recited in the statements below. Where the terms, “first”, “second” etc. are used they are to be understood merely as labels for the convenient identification of a particular feature. In particular, they are not to be interpreted as describing the first or the second feature of a plurality of such features (i.e. the first or second of such features to occur in time or space) unless explicitly stated otherwise. Steps in the methods disclosed herein may be carried out in any order unless expressly otherwise stated. Any reference signs in the statements shall not be construed so as to limit their scope.

Claims

Claims
1. A method in a first network node, the method comprising:
- receiving information identifying a change to a first group of nodes, wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group; and
- updating routing information for traffic for the first group of nodes based on the information identifying the change.
2. The method of claim 1 , wherein the information identifying the change to the first group of nodes comprises information identifying addition of a further node to the first group of nodes, and updating the routing information comprises including the further node in the routing information such that the first load balancing algorithm uses the updated routing information..
3. The method of claim 2, wherein the information identifying the addition of the further node to the first group of nodes is received from the further node.
4. The method of claim 2 or 3, wherein including the further node in the routing information comprises defining, in the routing information, routing between the first network node and the further node.
5. The method of any of the preceding claims, wherein the information identifying the change to the first group of nodes comprises information identifying removal of one of the nodes in the first group of nodes, and updating the routing information comprises removing the further node from the routing information such that the first load balancing algorithm uses the updated routing information.
6. The method of claim 5, wherein the information identifying the removal of the one of the nodes from the first group of nodes is received from the one of the nodes.
7. The method of any of the preceding claims, wherein receiving information identifying the change to a first group of nodes comprises determining a change to configuration data for the first group of nodes, or receiving a notification of a change to the configuration data for the first group of nodes.
8. The method of any of the preceding claims, comprising receiving a packet for the first group of nodes, selecting a node of the first group of nodes based on the first load balancing algorithm, and forwarding the packet to the selected node in the first group of nodes.
9. The method of any of the preceding claims, wherein updating the routing information for traffic for the first group of nodes comprises updating the first load balancing algorithm.
10. The method of any of the preceding claims, wherein the first load balancing algorithm shares network traffic for the first group of nodes between the nodes in the first group based on one or more Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) ports of the traffic.
11. The method of any of the preceding claims, further comprising:
- receiving second information identifying a change to a second group of nodes, wherein the second group of nodes is associated with a second load balancing algorithm for sharing network traffic for the second group of nodes between the nodes in the second group; and
- updating routing information for traffic for the second group of nodes based on the second information identifying the change.
12. The method of claim 11 , comprising receiving a packet for the second group of nodes, selecting a node of the second group of nodes based on the second load balancing algorithm, and forwarding the packet to the selected node in the second group of nodes.
13. The method of claim 11 or 12, wherein the traffic for the second group of nodes comprises traffic sent to a virtual Internet Protocol (IP) address for the second group of nodes.
14. The method of any of the preceding claims, wherein traffic for the first group of nodes comprises traffic sent to a virtual Internet Protocol (IP) address for the first group of nodes.
15. The method of any of the preceding claims, wherein the first load balancing algorithm comprises a round robin, source hashing and/or least connections load balancing algorithm.
16. A computer program comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out a method according to any of claims 1 to 15.
17. A subcarrier containing a computer program according to claim 16, wherein the subcarrier comprises one of an electronic signal, optical signal, radio signal or computer readable storage medium.
18. A computer program product comprising non transitory computer readable media having stored thereon a computer program according to claim 16.
19. Apparatus in a first network node, the apparatus comprising a processor and a memory, the memory containing instructions executable by the processor such that the apparatus is operable to:
- receive information identifying a change to a first group of nodes, wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group; and
- update routing information for traffic for the first group of nodes based on the information identifying the change.
20. The apparatus of claim 19, wherein the information identifying the change to the first group of nodes comprises information identifying addition of a further node to the first group of nodes, and the memory contains instructions executable by the processor such that the apparatus is operable to update the routing information by including the further node in the routing information such that the first load balancing algorithm uses the updated routing information.
21. The apparatus of claim 20, wherein the information identifying the addition of the further node to the first group of nodes is received from the further node.
22. The apparatus of claim 20 or 21 , wherein the memory contains instructions executable by the processor such that the apparatus is operable to include the further node in the routing information by defining, in the routing information, routing between the first network node and the further node.
23. The apparatus of any of the claims 19 to 22, wherein the information identifying the change to the first group of nodes comprises information identifying removal of one of the nodes in the first group of nodes, and the memory contains instructions executable by the processor such that the apparatus is operable to update the routing information by removing the further node from the routing information such that the first load balancing algorithm uses the updated routing information.
24. The apparatus of claim 23, wherein the information identifying the removal of the one of the nodes from the first group of nodes is received from the one of the nodes.
25. The apparatus of any of claims 19 to 14, wherein the memory contains instructions executable by the processor such that the apparatus is operable to receive information identifying the change to a first group of nodes by determining a change to configuration data for the first group of nodes, or receiving a notification of a change to the configuration data for the first group of nodes.
26. The apparatus of any of claims 19 to 25, wherein the memory contains instructions executable by the processor such that the apparatus is operable to receive a packet for the first group of nodes, select a node of the first group of nodes based on the first load balancing algorithm, and forward the packet to the selected node in the first group of nodes.
27. The apparatus of claims 19 to 26, wherein the memory contains instructions executable by the processor such that the apparatus is operable to update the routing information for traffic for the first group of nodes by updating the first load balancing algorithm.
28. The apparatus of any of claims 19 to 27, wherein the first load balancing algorithm shares network traffic for the first group of nodes between the nodes in the first group based on one or more Transmission Control Protocol (TCP) or User Datagram Protocol (UDP) ports of the traffic.
29. The apparatus of any of claims 19 to 28, wherein the memory contains instructions executable by the processor such that the apparatus is operable to:
- receive second information identifying a change to a second group of nodes, wherein the second group of nodes is associated with a second load balancing algorithm for sharing network traffic for the second group of nodes between the nodes in the second group; and
- update routing information for traffic for the second group of nodes based on the second information identifying the change.
30. The apparatus of claim 29, wherein the memory contains instructions executable by the processor such that the apparatus is operable to receive a packet for the second group of nodes, select a node of the second group of nodes based on the second load balancing algorithm, and forward the packet to the selected node in the second group of nodes.
31. The apparatus of claim 29 or 30, wherein the traffic for the second group of nodes comprises traffic sent to a virtual Internet Protocol (IP) address for the second group of nodes.
32. The apparatus of any of claims 19 to 31 , wherein traffic for the first group of nodes comprises traffic sent to a virtual Internet Protocol (IP) address for the first group of nodes.
33. The apparatus of any of claims 19 to 32, wherein the first load balancing algorithm comprises a round robin, source hashing and/or least connections load balancing algorithm.
34. Apparatus in a first network node, the apparatus configured to:
- receive information identifying a change to a first group of nodes, wherein the first group of nodes is associated with a first load balancing algorithm for sharing network traffic for the first group of nodes between the nodes in the first group; and
- update routing information for traffic for the first group of nodes based on the information identifying the change.
PCT/EP2020/061938 2020-04-29 2020-04-29 Updating routing information WO2021219217A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2020/061938 WO2021219217A1 (en) 2020-04-29 2020-04-29 Updating routing information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2020/061938 WO2021219217A1 (en) 2020-04-29 2020-04-29 Updating routing information

Publications (1)

Publication Number Publication Date
WO2021219217A1 true WO2021219217A1 (en) 2021-11-04

Family

ID=70554021

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/061938 WO2021219217A1 (en) 2020-04-29 2020-04-29 Updating routing information

Country Status (1)

Country Link
WO (1) WO2021219217A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2466828A1 (en) * 2010-12-16 2012-06-20 Openet Telecom Ltd. Methods, systems and devices for dynamic context-based routing
EP3264691A1 (en) * 2016-06-30 2018-01-03 Juniper Networks, Inc. Auto discovery and auto scaling of services in software-defined network environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2466828A1 (en) * 2010-12-16 2012-06-20 Openet Telecom Ltd. Methods, systems and devices for dynamic context-based routing
EP3264691A1 (en) * 2016-06-30 2018-01-03 Juniper Networks, Inc. Auto discovery and auto scaling of services in software-defined network environment

Similar Documents

Publication Publication Date Title
US10645056B2 (en) Source-dependent address resolution
US11563602B2 (en) Method and apparatus for providing a point-to-point connection over a network
CN110392999B (en) Virtual filtering platform in distributed computing system
US11108732B2 (en) Resizing virtual private networks in provider network environments
US11088944B2 (en) Serverless packet processing service with isolated virtual network integration
US10110431B2 (en) Logical router processing by network controller
CN109937401B (en) Live migration of load-balancing virtual machines via traffic bypass
EP2838244B1 (en) Providing services for logical networks
US9313129B2 (en) Logical router processing by network controller
CN107113322B (en) Hardware and software method for creating and managing migratable logical service chains
EP2514152B1 (en) Distributed routing architecture
US10257086B2 (en) Source imposition of network routes in computing networks
US11533294B2 (en) Management of blacklists and duplicate addresses in software defined networks
US10681126B2 (en) Mechanism for overlay virtual networking
CN109768909B (en) Message forwarding method and device
US11296981B2 (en) Serverless packet processing service with configurable exception paths
WO2021219217A1 (en) Updating routing information
CN115118655B (en) Cross-network message forwarding method and device, electronic equipment and readable storage medium
CN115865802B (en) Flow mirroring method and device of virtual instance, virtual machine platform and storage medium
US11095495B2 (en) Multi-result lookups
US10848418B1 (en) Packet processing service extensions at remote premises

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: 20724023

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: 20724023

Country of ref document: EP

Kind code of ref document: A1