-
Bug
-
Resolution: Won't Do
-
Critical
-
rhel-7.9.z
-
None
-
Critical
-
rhel-sst-high-availability
-
ssg_filesystems_storage_and_HA
-
None
-
False
-
-
None
-
None
-
None
-
None
-
If docs needed, set a value
-
-
x86_64
-
None
Description of problem:
SIP request message with same call-id, but different source IP is routed to different server as if it was newly initiated call-id and connection breaks.
Setup:
=======
SIP clients ------------> keepalived Server ------> Real Server
192.168.100.116 192.168.100.118
192.168.100.121
Version-Release number of selected component (if applicable):
keepalived 1.3.5
How reproducible:
Always by customer
Actual results:
Current Flow:
SIPP(192.168.100.171) — INVITE ---> LB(192.168.100.116) ---> RealServer(192.168.100.118)
SIPP(192.168.100.171) <----- 200 ----- RealServer(192.168.100.118)
SIPP(192.168.100.170) ----- ACK -----> LB(192.168.100.116) ---> RealServer(192.168.100.121)
SIPP(192.168.100.170) ----- BYE -----> LB(192.168.100.116) ---> RealServer(192.168.100.121)
- ipvsadm -Ln --connection --persistent-conn
IPVS connection entries
pro expire state source virtual destination pe name pe_data
UDP 14:07 UDP 192.168.100.170:0 192.168.100.116:5060 192.168.100.121:5060 sip 1-16760@192.168.100.171
UDP 14:07 UDP 192.168.100.171:0 192.168.100.116:5060 192.168.100.118:5060 sip 1-16760@192.168.100.171
The call-id is same, but packet from 192.168.100.171 is routed to 192.168.100.118
Expected results:
==================
SIPP(192.168.100.171) — INVITE ---> LB(192.168.100.116) ---> RealServer(192.168.100.118)
SIPP(192.168.100.171) <----- 200 ----- RealServer(192.168.100.118)
SIPP(192.168.100.170) ----- ACK -----> LB(192.168.100.116) ---> RealServer(192.168.100.118) ***
SIPP(192.168.100.170) ----- BYE -----> LB(192.168.100.116) ---> RealServer(192.168.100.118) ***
Additional info:
==================
keepalived configuration used:
virtual_server 192.168.100.116 5060 {
- virtual_server fd00::7ea1:10:1:1:145 5060 {
delay_loop 5
lb_algo rr
lb_kind DR
ops
persistence_timeout 60
persistence_granularity 0.0.0.0 <----------------- This is not working
persistence_engine sip
protocol UDP
- external trackers