The GTP load balancer handles only the control plane and does not process the user plane. Supporting GTP-C v1 and v2, it can make a route selection for a new session, override specific information elements such as APN or IMSI and route the session follow-on messages to the selected PGW-C or SMF. The load balancer re-writes its own IP address in the GTP packet of the egress path and acts as a NATing function for the GRX control plane IP address. This is ideal to distribute data sessions to individual localized PGW-Us or UPFs and have small containerized instances of UPFs in a workload.
Load balancers are most commonly coming as a part of the kubernetes cluster in a form of ingress controller or as part of the cloud infrastructure in various forms. While these perform perfectly for UDP/TCP/HTTP type of traffic, we sometimes need more telecom protocols aware load balancers to properly distribute the telecom control plane within a workload. Slicce load balancers come to fulfill this need when the generic load balancer of the infrastructure is not able to load balance a specific telecom protocol.
In particular and focus on GTP-C traffic, the GTP Load balancer facilitate:
When using load balancing based on APN, the system intelligently distributes GTP sessions among a set of services based on the APN included in the create session request. GTP sessions remains active in the load balancer so further request belonging to the same session reaches the correct handling PGW service inside the workload. GTP Load Balancer is often used to implement an efficient scaling within a workload of PGWs or similar cllud-hosted packet services.
The GTP Load Balancer can distribute traffic towards Stateful set with multiple service instances of a same kind. In which case it can automatically detects a failing service and assure service continuity via remaining service instances. The service set can be elastic or auto-scaled since the load balancer will allow traffic distribution to new instances of the service immediately. It is also possible for an external orchestrator to orchestrate the load balancer via REST API in case the topology of the workload is getting updated.
Software packaging | Docker image, RPM or DEB package. |
GTPv1 | 3GPP TS 29.060 |
GTPv2 | 3GPP TS 29.274 |
Orchestration API | RESTful over HTTP2 |