<div dir="ltr"><div>Hello!</div><div>Thank you! The mechanism with a single tag for the dispatcher works as it should.<br></div><div><br></div><div>But I still have a number of questions on related topics:<br></div>1) 
Should I declare this common dispatcher tag in the parameters of the clusterer module?<div>Then, after the start, the tag on the active node will be set by an external script.</div><div><br><div> modparam("clusterer", "sharing_tag", "dispatcher/1=backup")<div> modparam("dispatcher", "cluster_sharing_tag", "dispatcher")<br></div><div><br></div><div>2) I also want to replicate transactions and dialogs, so should I declare own tags for each cluster node?</div><div>Or like with a dispatcher do I need one common?</div><div><br>modparam("clusterer", "sharing_tag", "anycast1/1=active")<br>modparam("clusterer", "sharing_tag", "anycast2/1=backup")<br>modparam("clusterer", "sharing_tag", "anycast3/1=backup")<br>modparam("clusterer", "sharing_tag", "anycast4/1=backup")<br>modparam("dialog", "dialog_replication_cluster", 1)<br>modparam("tm", "tm_replication_cluster", 1)<br>modparam("dispatcher", "cluster_sharing_tag", "dispatcher")<br></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вт, 6 июн. 2023 г. в 18:08, Bogdan-Andrei Iancu <<a href="mailto:bogdan@opensips.org">bogdan@opensips.org</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    <font face="monospace">Hi Denys,<br>
      <br>
      Even better if you have only one active opensips instance - in
      this case you can use only one sharing-tag across all
      nodes/servers in the dispatcher cluster, tag to point to the
      active instance. So, whenever you point the traffic to a certain
      opensips instance, be sure to make the tag active on that instance
      too.<br>
         
<a href="https://opensips.org/html/docs/modules/3.2.x/clusterer.html#mi_clusterer_shtag_set_active" target="_blank">https://opensips.org/html/docs/modules/3.2.x/clusterer.html#mi_clusterer_shtag_set_active</a><br>
      <br>
      Best regards,<br>
    </font>
    <pre cols="72">Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  <a href="https://www.opensips-solutions.com" target="_blank">https://www.opensips-solutions.com</a>
  <a href="https://www.siphub.com" target="_blank">https://www.siphub.com</a></pre>
    <div>On 6/6/23 4:11 PM, Denys Pozniak wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">Hello!
        <div><br>
        </div>
        <div>>So, in the dispatcher cluster you have some active
          nodes, but also some stand-by, right ?<br>
          All cluster nodes have the same dynamic routing protocol
          metric, so only one random node can receive traffic from the
          network point of view.<br>
        </div>
        <div>Well, accordingly, only the "active" node can accept
          replays to SIP OPTIONS from the dispatcher. And all other
          nodes see the dispatcher peers as not alive.<br>
          It's more a question of how to make other nodes believe the
          status from the "active" node and not influence it.<br>
          <br>
        </div>
        <div>>And I see you did not set the this cluster_sharing_tag
          modparam<br>
          I have this option set, you probably didn't notice in the
          initial thread.<br>
          modparam("dispatcher", "cluster_sharing_tag", "anycast1")<br>
        </div>
        <div><br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">вт, 6 июн. 2023 г. в 11:37,
          Bogdan-Andrei Iancu <<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>>:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div> <font face="monospace">Hi Denys,<br>
              <br>
              So, in the dispatcher cluster you have some active nodes,
              but also some stand-by, right ?<br>
              <br>
              And I see you did not set the this cluster_sharing_tag
              modparam [1] - check it out, it may help you in deciding
              which nodes may broadcast the state inside the cluster
              (for dispatcher)<br>
              <br>
              [1]
              <a href="https://opensips.org/html/docs/modules/3.3.x/dispatcher.html#param_cluster_sharing_tag" target="_blank">https://opensips.org/html/docs/modules/3.3.x/dispatcher.html#param_cluster_sharing_tag</a><br>
              <br>
              Regards,<br>
            </font>
            <pre cols="72">Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  <a href="https://www.opensips-solutions.com" target="_blank">https://www.opensips-solutions.com</a>
  <a href="https://www.siphub.com" target="_blank">https://www.siphub.com</a></pre>
            <div>On 6/2/23 5:39 PM, Denys Pozniak wrote:<br>
            </div>
            <blockquote type="cite">
              <div dir="ltr">Hello!
                <div><br>
                </div>
                <div>I need advice on how best to implement the anycast
                  + clusterer + dispatcher scheme.<br>
                  In short, we want to build an additional upper layer
                  in front of our sip legacy servers, on which traffic
                  balancing will take place.</div>
                <div>Most likely it will look like several nodes of the
                  same clusterer with a single public anycast address,
                  from which traffic will also go to the public
                  interfaces of the legacy sip servers (via the
                  dispatcher list).<br>
                  During testing, it turned out that if we include the
                  dispatcher module in the clusterer, then the inactive
                  nodes of the cluster begin to affect the general state
                  of the legacy sip servers on active node, since
                  replays to SIP OPTIONS reach only one active node,
                  though all nodes ping.</div>
                <div><br>
                </div>
                <div>Thus, the sip server status is constantly flapping
                  on active node.<br>
                  Is it possible to somehow make all other nodes believe
                  the active node at a given time and inherit its
                  dispatcher state?<br>
                </div>
                <div><br>
                </div>
                <div><b>node1:</b></div>
                <div>modparam("clusterer", "sharing_tag",
                  "anycast1/1=active")<br>
                </div>
                modparam("clusterer", "sharing_tag",
                "anycast2/1=backup")<br>
                modparam("clusterer", "sharing_tag",
                "anycast3/1=backup")<br>
                modparam("clusterer", "sharing_tag",
                "anycast4/1=backup")<br>
                <br>
                <div>modparam("dispatcher", "cluster_sharing_tag",
                  "anycast1")<br>
                  <br>
                  modparam("dispatcher", "db_url",
                  "text:///etc/opensips/dbtext")<br>
                  modparam("dispatcher", "attrs_avp",
                  "$avp(dsp_attrs_avp)")</div>
                <div>modparam("dispatcher", "script_attrs_avp",
                  "$avp(dsp_script_attrs_avp)")<br>
                  modparam("dispatcher", "hash_pvar",
                  "$avp(dsp_hash_pvar)")<br>
                  modparam("dispatcher", "ds_ping_method", "OPTIONS")<br>
                  modparam("dispatcher", "ds_ping_from", <a>"sip:ping@dispatcher"</a>)<br>
                  modparam("dispatcher", "ds_ping_interval", 10)<br>
                  modparam("dispatcher", "ds_probing_threshold", 2)<br>
                  modparam("dispatcher", "ds_probing_mode", 1)<br>
                  modparam("dispatcher", "options_reply_codes",
                  "501,403,404,400,200")<br>
                  modparam("dispatcher", "dst_avp", "$avp(dsp_dst_avp)")<br>
                  modparam("dispatcher", "grp_avp", "$avp(dsp_grp_avp)")<br>
                  modparam("dispatcher", "cnt_avp", "$avp(dsp_cnt_avp)")<br>
                  modparam("dispatcher", "persistent_state", 1)<br>
                  modparam("dispatcher", "cluster_id", 1)<br>
                  modparam("dispatcher", "cluster_probing_mode",
                  "by-shtag")<br>
                  <br>
                  <b>dispatcher:</b></div>
                <div>id(int,auto) setid(int) destination(string)
                  socket(string,null) state(int) probe_mode(int)
                  weight(string) priority(int) attrs(string)
                  description(string)<br>
                  0:1:sip\:1.1.1.1\:5060;transport=udp::2:1:1:1:'':''</div>
                <div>
                  <div>1:1:sip\:2.2.2.2\:5060;transport=udp::2:1:1:1:'':''</div>
                  <div>2:1:sip\:3.3.3.3\:5060;transport=udp::2:1:1:1:'':''</div>
                  <div><br>
                  </div>
                  <div>Sure, it is possible to attach an additional
                    public address to each node and do not share
                    dispatcher state, but still I would like to somehow
                    find a solution for the current scheme<br>
                  </div>
                  <div><br>
                  </div>
                  <div>--<br>
                  </div>
                  <div>
                    <div dir="ltr" class="gmail_signature">
                      <div dir="ltr"><br>
                        <div>
                          <div>BR,</div>
                          <div>Denys Pozniak<br>
                          </div>
                          <div><br>
                          </div>
                          <div><br>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
              <br>
              <fieldset></fieldset>
              <pre>_______________________________________________
Users mailing list
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
            </blockquote>
            <br>
          </div>
        </blockquote>
      </div>
      <br clear="all">
      <div><br>
      </div>
      <span class="gmail_signature_prefix">-- </span><br>
      <div dir="ltr" class="gmail_signature">
        <div dir="ltr"><br>
          <div>
            <div>BR,</div>
            <div>Denys Pozniak<br>
            </div>
            <div><br>
            </div>
            <div><br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </div>

</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><br><div><div>BR,</div><div>Denys Pozniak<br></div><div><br></div><div><br></div></div></div></div>