Hello!
I need advice on how best to implement the anycast + clusterer +
dispatcher scheme.
In short, we want to build an additional upper layer in front of
our sip legacy servers, on which traffic balancing will take place.
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).
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.
Thus, the sip server status is constantly flapping on active node.
Is it possible to somehow make all other nodes believe the active
node at a given time and inherit its dispatcher state?
*node1:*
modparam("clusterer", "sharing_tag", "anycast1/1=active")
modparam("clusterer", "sharing_tag", "anycast2/1=backup")
modparam("clusterer", "sharing_tag", "anycast3/1=backup")
modparam("clusterer", "sharing_tag", "anycast4/1=backup")
modparam("dispatcher", "cluster_sharing_tag", "anycast1")
modparam("dispatcher", "db_url", "text:///etc/opensips/dbtext")
modparam("dispatcher", "attrs_avp", "$avp(dsp_attrs_avp)")
modparam("dispatcher", "script_attrs_avp",
"$avp(dsp_script_attrs_avp)")
modparam("dispatcher", "hash_pvar", "$avp(dsp_hash_pvar)")
modparam("dispatcher", "ds_ping_method", "OPTIONS")
modparam("dispatcher", "ds_ping_from", "sip:ping@dispatcher")
modparam("dispatcher", "ds_ping_interval", 10)
modparam("dispatcher", "ds_probing_threshold", 2)
modparam("dispatcher", "ds_probing_mode", 1)
modparam("dispatcher", "options_reply_codes", "501,403,404,400,200")
modparam("dispatcher", "dst_avp", "$avp(dsp_dst_avp)")
modparam("dispatcher", "grp_avp", "$avp(dsp_grp_avp)")
modparam("dispatcher", "cnt_avp", "$avp(dsp_cnt_avp)")
modparam("dispatcher", "persistent_state", 1)
modparam("dispatcher", "cluster_id", 1)
modparam("dispatcher", "cluster_probing_mode", "by-shtag")
*dispatcher:*
id(int,auto) setid(int) destination(string) socket(string,null)
state(int) probe_mode(int) weight(string) priority(int)
attrs(string) description(string)
0:1:sip\:1.1.1.1\:5060;transport=udp::2:1:1:1:'':''
1:1:sip\:2.2.2.2\:5060;transport=udp::2:1:1:1:'':''
2:1:sip\:3.3.3.3\:5060;transport=udp::2:1:1:1:'':''
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,
Denys Pozniak
_______________________________________________
Users mailing list
[email protected] <mailto:[email protected]>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
<http://lists.opensips.org/cgi-bin/mailman/listinfo/users>