You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Documentation/services/pcn-loadbalancer-rp/loadbalancer-rp.md
+10-5
Original file line number
Diff line number
Diff line change
@@ -2,15 +2,17 @@
2
2
3
3
4
4
This service implements a ``Reverse Proxy Load Balancer``.
5
-
According to the algorithm, incoming IP packets are delivered to the real servers by replacing their IP destination address with the one of the real server, chosen by the load balancing logic. Hence, IP address rewriting is performed in both directions, for traffic coming from the Internet and the reverse.
6
-
Packet are hashed to determine which is the correct backend; the hashing function guarantees that all packets belonging to the same TCP/UDP session will always be terminated to the same backend server.
5
+
According to the algorithm, incoming IP packets are delivered to the real servers by replacing their IP destination address with the one of the real server, chosen by the load balancing logic. Hence, IP address rewriting is performed in both directions, for traffic coming from the Internet and the reverse. Packet are hashed to determine which is the correct backend; the hashing function guarantees that all packets belonging to the same TCP/UDP session will always be terminated to the same backend server.
7
6
8
-
Unknown packets (e.g., ARP; IPv6) are simply forwarded as they are.
7
+
This service supports two different port types (FRONTEND and BACKEND) and two different port modes (SINGLE and MULTI). Depending on the port mode, the cube can have one or more FRONTEND ports: in SINGLE port mode (which is the default one), only a single FRONTEND port is supported, whereas multiple FRONTEND ports are supported in MULTI port mode. The MULTI port mode is specifically designed in order to allow the service to work properly as part of our Kubernetes networking solution (please see [polykube](https://github.com/polycube-network/polykube) to get more information about it). Regardless the port mode, only a BACKEND port is supported.
9
8
9
+
If a packet coming from a FRONTEND port is directed to a service, DNAT is performed on it; the corresponding reverse natting operation is performed for packets coming from backends and on the way back to clients. ARP packets are forwarded as they are (in MULTI port mode, if the packet is an ARP request from the BACKEND port, it is forwarded to the right FRONTEND port). Unknown packets (e.g., IPv6) are simply forwarded as they are (in MULTI port mode, if the packet comes from the BACKEND port, it is flooded to all the FRONTEND ports).
10
10
11
11
## Features
12
12
13
13
14
+
- Support for different port modes (SINGLE and MULTI)
15
+
- Support for multiple frontend ports (in MULTI port mode)
14
16
- Support for multiple virtual services (with multiple ``vip:protocol:port`` tuples)
15
17
- Support for ICMP Echo Request, hence enabling to ``ping`` virtual servers
16
18
- Session affinity: a TCP session is always terminated to the same backend server even in case the number of backend servers changes at run-time (e.g., a new backend is added)
@@ -21,8 +23,11 @@ Unknown packets (e.g., ARP; IPv6) are simply forwarded as they are.
21
23
22
24
## Limitations
23
25
26
+
- In SINGLE port mode, only two ports are supported (a FRONTEND and a BACKEND port)
27
+
- In MULTI port mode, multiple FRONTEND port are supported but only a single BACKEND port can exists
28
+
- In MULTI port mode, an IPv4 address must be configured on FRONTEND port creation in order to allow packets to flow back to the frontend clients
29
+
- In MULTI port mode, the supported topology is the one leveraged in the [polykube](https://github.com/polycube-network/polykube) Kubernetes networking solution
24
30
25
-
- Supports only two interfaces
26
31
27
32
## How to use
28
33
@@ -38,7 +43,7 @@ Each backend supports a ``weight`` that determines how incoming sessions are dis
38
43
39
44
A set of ``virtual services``, which are specified by a Virtual IP address, protocol and a port (``vip:protocol:port``), are mapped to a given set of ``backend services``, actually running on multiple real servers.
40
45
41
-
Hence, this service exports two network interfaces:
46
+
Hence, in SINGLE port mode, this service exports two network interfaces:
42
47
- Frontend port: connects the LB to the clients that connect to the virtual service, likely running on the public Internet
43
48
- Backend port: connects the LB to to backend servers
0 commit comments