[SR-Users] Active/active keepalived - Kamailio includes non-local virtual IP in "myself" which breaks DMQ call routing

Rhys Hanrahan rhys at nexusone.com.au
Wed Dec 15 05:59:06 CET 2021


Hi Guys,

That's awesome - thanks to you both for the suggestions. I had overlooked anycast because my Ips are only active on one box at a time, but it makes sense that I'm basically dealing with the same challenges as an anycast setup, thanks Igor.

And thanks Arnd! This is what I was thinking of as a quick fix, but I couldn't find anything useful to change via RPC commands. A shared variable makes perfect sense!

I will work through these ideas and post back with whatever I manage to come up with.

Thanks! 
Rhys.

On 15/12/21, 12:19 am, "sr-users on behalf of Arnd Schmitter" <sr-users-bounces at lists.kamailio.org on behalf of aschmitter at megasat.de> wrote:

    Hello Rhys,


    For a quick solution, to can use notify scripts in keepalived which will alter a shared variable via RPC call. Then you can test the content of this variable to see if this instance is master or not.


    Regards,
    Arnd


    Am Di, Dez 14, 2021 um 14:03:27 schrieb Igor Olhovskiy:
    > Rhys,
    > 
    > Seems you're looking into something called "anycast". If it's the case, have
    > you checked https://github.com/kamailio/kamailio/blob/master/misc/examples/mixed/kamailio-minimal-anycast.cfg
    > ?
    > 
    > But overall you are correct, myself is not enough clever to get if interface
    > is active or not.
    > 
    > Regards,
    > Igor
    > 
    > On 14.12.2021 05:50, Rhys Hanrahan wrote:
    > > 
    > > Hi Everyone,
    > > 
    > > I have Kamailio acting as a registrar, using DMQ to replicate usrloc
    > > between nodes. I’m relaying INVITEs to the home registrar, but skipping
    > > this if (uri == myself) is true.
    > > 
    > > In my lab I just setup my SBCs in an active/active mode, similar to the
    > > link below. So I have 2x VIPs and both SBCs listen on both, but the
    > > first VIP is only master on SBC01 and the second VIP is only master on
    > > SBC02.
    > > 
    > > https://docs.nginx.com/nginx/admin-guide/high-availability/ha-keepalived-nodes/ <https://docs.nginx.com/nginx/admin-guide/high-availability/ha-keepalived-nodes/>
    > > 
    > > 
    > > My issue is that now “myself” will always return true even if the
    > > virtual IP is actually not active on this node at the moment, so the
    > > invite is never relayed properly if it’s on another node. I guess
    > > “myself” is just blindly looking at the list of Ips that are configured
    > > with either listen= or alias= and doesn’t care if the IP actually exists
    > > on the server at the time, or not?
    > > 
    > > I am thinking I may have to ditch relying on “myself” entirely and come
    > > up with some other way of checking for local requests, but I am
    > > wondering if there’s a good way of approaching this? I was thinking of
    > > perhaps triggering an add/remove of listen directives (or something)
    > > when a failover of a VIP happens, though this seems kind of heavy
    > > handed. Hoping there is a better way.
    > > 
    > > Has anyone else tried doing active/active Kamailio instances like this?
    > > 
    > > Thanks!
    > > 
    > > 
    > > *Rhys Hanrahan* | Chief Information Officer
    > > *e:* rhys at nexusone.com.au <mailto:rhys at nexusone.com.au>
    > > 
    > > www.nexusone.com.au <http://www.nexusone.com.au/>signature_132622389
    > > <http://www.fusiontech.com.au/>
    > > *
    > > **NEXUS ONE****|** FUSION TECHNOLOGY SOLUTIONS**
    > > **p:* 1800 NEXUS1 (1800 639 871) or 1800 565 845 *|* *a:* Suite 12.03
    > > Level 12, 227 Elizabeth Street, Sydney NSW 2000
    > > www.nexusone.com.au <http://www.nexusone.com.au/> *|*
    > > www.fusiontech.com.au <http://www.fusiontech.com.au/>
    > > 
    > > /The information in this email and any accompanying attachments may
    > > contain; a. Confidential information of Fusion Technology Solutions Pty
    > > Ltd, Nexus One Pty Ltd or third parties; b. Legally privileged
    > > information of Fusion Technology Solutions Pty Ltd, Nexus One Pty Ltd or
    > > third parties; and or c. Copyright material Fusion Technology Solutions
    > > Pty Ltd, Nexus One Pty Ltd or third parties. If you have received this
    > > email in error, please notify the sender immediately and delete this
    > > message. Fusion Technology Solutions Pty Ltd, Nexus One Pty Ltd does not
    > > accept any responsibility for loss or damage arising from the use or
    > > distribution of this email./
    > > 
    > > /Please consider the environment before printing this email./
    > > 
    > > 
    > > __________________________________________________________
    > > Kamailio - Users Mailing List - Non Commercial Discussions
    > >    * sr-users at lists.kamailio.org
    > > Important: keep the mailing list in the recipients, do not reply only to the sender!
    > > Edit mailing list options or unsubscribe:
    > >    * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

    > __________________________________________________________
    > Kamailio - Users Mailing List - Non Commercial Discussions
    >   * sr-users at lists.kamailio.org
    > Important: keep the mailing list in the recipients, do not reply only to the sender!
    > Edit mailing list options or unsubscribe:
    >   * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users


    __________________________________________________________
    Kamailio - Users Mailing List - Non Commercial Discussions
      * sr-users at lists.kamailio.org
    Important: keep the mailing list in the recipients, do not reply only to the sender!
    Edit mailing list options or unsubscribe:
      * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users



More information about the sr-users mailing list