[OpenSIPS-Devel] Full Sharing N Contact Pings problem

Liviu Chircu liviu at opensips.org
Mon Jan 14 08:15:41 EST 2019


Hi John,

Thanks for the report -- I'll make sure to double-check this during this
week's development sprint, and will update you asap.

Cheers,

Liviu Chircu
OpenSIPS Developer
http://www.opensips-solutions.com

On 11.01.2019 20:08, John Quick wrote:
> I am almost certain I have found a bug in the mechanism that should
> distribute the pinging of NAT'd devices around cluster members.
> I tested this extensively several months ago and it worked fine. That was
> using v2.4.0
> Now, when using 2.4.4 I noticed it was pinging from every node in the
> cluster to the same NAT'd device.
>
> I am using Docker so it was very easy for me to revert to earlier versions
> of OpenSIPS with complete certainty that nothing else is different, although
> I only have Docker images for v2.4.0, 2.4.3 and 2.4.4. The results of my
> testing, with just one NAT'd device registered, are:
>
> v2.4.0   Pings only coming from one node
> v2.4.3   Pings from every node
> v2.4.4   Pings from every node
>
> So either there was a bug introduced between 2.4.0 and 2.4.3 OR something
> was changed in the clustering configuration requirements. I could not see
> anything relevant in the documentation so I assume this is a bug.
>
> John Quick
> Smartvox Limited
>
>
> The topology/architecture I am using is an edge proxy in front of a 3-node
> cluster to handle registrations, NAT pings and call routing, using path
> headers. For reference, here are some code snippets from the opensips.cfg
> file on one of the nodes:
>
> listen=udp:0.0.0.0:5060
> listen=bin:0.0.0.0:5678
> advertised_address=10.2.69.152
>
> modparam("usrloc", "working_mode_preset", "full-sharing-cluster")
> modparam("usrloc", "location_cluster", 1)
> modparam("usrloc", "use_domain", 0)
> modparam("usrloc", "nat_bflag", "NATTED_CLIENT")
> modparam("usrloc", "timer_interval", 61)
> modparam("usrloc", "max_contact_delete", 40)
>
> modparam("nathelper", "received_avp", "$avp(rcvip)")
> modparam("nathelper", "natping_interval", 38)
> modparam("nathelper", "ping_nated_only", 0)
> modparam("nathelper", "sipping_bflag", "NAT_SIP_PINGS")
> modparam("nathelper", "sipping_from", "sip:pinger at 10.2.69.152")
>
> modparam("clusterer", "db_url",
> "mysql://myuser:mypasswd@localhost/opensips")
> modparam("clusterer", "current_id", 1)
> modparam("clusterer", "node_timeout", 180)
>
>
>          if (isflagset(NATTED_SRC) || isflagset(NATTED_UA)) {
>              # For calls to this user, INVITEs will have branch flag
> NATTED_CLIENT set after lookup("location")
>              setbflag(NATTED_CLIENT);
>              # Enables OPTIONS natpings
>              setbflag(NAT_SIP_PINGS);
>          };
>
>          consume_credentials();
>
>          if (!save("location","p1")) {
>              xlog("L_NOTICE", "***--REGISTER: location save failed for
> $ct.fields(uri)\n");
>              sl_reply_error();
>          }
>
> # opensipsctl ul show
> Domain:: location hash_size=512
>          AOR:: 221223
>                  Contact:: sip:221223 at 192.168.0.60:6050;line=9lixrwuy Q=1
>                          ContactID:: 4002222325104642950
>                          Expires:: 1452
>                          Callid:: 3c2692a7dce1-xakltdxtx1vq
>                          Cseq:: 22
>                          User-agent:: snom360/7.3.30
>                          Path::
> <sip:mysbc at 10.2.69.151;lr;received=sip:82.0.128.109:16238>
>                          State:: CS_NEW
>                          Flags:: 0
>                          Cflags:: NAT_SIP_PINGS NATTED_CLIENT
>                          Socket:: udp:0.0.0.0:5060
>                          Methods:: 7999
>
> insert into
> opensips.clusterer(`cluster_id`,`node_id`,`url`,`no_ping_retries`,`priority`
> ,`flags`,`description`) values
> (1,1,'bin:10.2.69.152:5678',3,50,'seed','reg1');
> insert into
> opensips.clusterer(`cluster_id`,`node_id`,`url`,`no_ping_retries`,`priority`
> ,`description`) values (1,2,'bin:10.2.69.153:5678',3,50,'reg2');
> insert into
> opensips.clusterer(`cluster_id`,`node_id`,`url`,`no_ping_retries`,`priority`
> ,`description`) values (1,3,'bin:10.2.69.154:5678',3,50,'reg3');
>
>
>
> _______________________________________________
> Devel mailing list
> Devel at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/devel



More information about the Devel mailing list