Bug ID 913125: Ratio session based Load balancing does not work

Last Modified: May 01, 2024

Affected Product(s):
BIG-IP TMOS(all modules)

Known Affected Versions:
11.6.5, 11.6.5.1, 11.6.5.2, 11.6.5.3, 12.0.0, 12.0.0 HF1, 12.1.0 HF1, 12.0.0 HF2, 12.1.0 HF2, 12.0.0 HF3, 12.0.0 HF4, 12.1.1 HF1, 12.1.1 HF2, 12.1.2 HF1, 12.1.2 HF2, 12.1.0, 12.1.1, 12.1.2, 12.1.3, 12.1.3.1, 12.1.3.2, 12.1.3.3, 12.1.3.4, 12.1.3.5, 12.1.3.6, 12.1.3.7, 12.1.4, 12.1.4.1, 12.1.5, 12.1.5.1, 12.1.5.2, 12.1.5.3, 12.1.6, 13.0.0, 13.0.0 HF1, 13.0.0 HF2, 13.0.0 HF3, 13.0.1, 13.1.0, 13.1.0.1, 13.1.0.2, 13.1.0.3, 13.1.0.4, 13.1.0.5, 13.1.0.6, 13.1.0.7, 13.1.0.8, 13.1.1, 13.1.1.2, 13.1.1.3, 13.1.1.4, 13.1.1.5, 13.1.3, 13.1.3.1, 13.1.3.2, 13.1.3.3, 13.1.3.4, 13.1.3.5, 13.1.3.6, 13.1.4, 13.1.4.1, 13.1.5, 13.1.5.1

Opened: Jun 01, 2020

Severity: 4-Minor

Symptoms

Ratio session based Load balancing does not work over MRF framework with Diameter, SIP protocols; all traffic is directed to a single pool member.

Impact

All of the SIP traffic is directed to a single server, or the actual Ratio is not maintained correctly depending on the actual calls/configuration

Conditions

-- MRF virtual server configured with either a Diameter or SIP protocol profile. -- The pool's load balancing method is set to Ratio-Session.

Workaround

FIRST WORKAROUND: Create duplicate pool members using the same server. For example if you have two servers, server A and B, and you want a ratio of 2:3, configure multiple pool members to achieve the desired ratio: A:5060 A:5061 B:5060 B:5061 B:5062 Impact of workaround: You must also disable port translation for the virtual server, and you must configure round robin load balancing. Also, the ratio is not preserved if one of the pool members goes down. SECOND WORKAROUND: If you are unable to use multiple ports on the same server, you could also use multiple IP addresses. The following pool configuration also achieves a 2:3 ratio between server A and server B: ? A1:5060 A2:5060 B1:5060 B2:5060 B3:5060 Impact of workaround: you must also configure round robin load balancing. Also, the ratio is not preserved if one of the pool members goes down. THIRD WORKAROUND: Implement a ratio algorithm in an iRule. After checking to see if the message is of type INVITE, select a pool member based on a computed algorithm in the iRule. For example you can declare an array of pool member ip:port, then loop through them. A pool member can be selected via: pool <pool name> member <ip> <port> Impact of workaround: The iRule should also check the pool member status to ensure it is up. LB::status can be used to check status of pool member

Fix Information

None

Behavior Change

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips