Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-7678

backport commit "Allow persistence_granularity to be 0.0.0.0" for keepalived version 1.3.5, RHEL 7

    • None
    • Critical
    • rhel-sst-high-availability
    • ssg_filesystems_storage_and_HA
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • If docs needed, set a value
    • 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)

      1. 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 {

      1. 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

              rhn-engineering-rohara Ryan O'Hara
              rhn-support-surkumar Suresh Kumar
              Ryan O'Hara Ryan O'Hara
              Cluster QE Cluster QE
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: