Hi Charles,

Thanks for the information, I was intending to use dmq_is_from_node as a security check to ensure that the dmq message arrived from a node that it saw as part of the notification address list (excluding itself of course).

I see that it is not intended to be used this way. I'll build on your snippet along with ipops to check these messages.

Thanks again.

On 22/07/2015 15:46, Charles Chance wrote:
Hi,

This is expected. The point of DMQ is to enable dynamic scaling without having to define every node in advance in Kamailio config.

You should not use dmq_is_from_node() with dmq_handle_message() - it is not intended to be a security check for KDMQ messages, but for other messages replicated directly in your config (e.g. REGISTER).

For KDMQ, you should listen on a dedicated IP and/or port and lock down at network/firewall level. Then your DMQ handling block should look something like:

        if (method == "KDMQ") {
                if ($Rp == 5070) {
                        dmq_handle_message();
                } else {
                        drop;
                }
        }

Do this help? Or is there something else you're looking to achieve?

Cheers,
Charles


On 22 July 2015 at 15:22, Asgaroth <00asgarot...@gmail.com <mailto:00asgarot...@gmail.com>> wrote:

    Hi All,

    I have an issue with the dmq_is_from_node() function, whereby it
    does not detect a node is on the bus if it has been removed from
    its "table" due to previously failed, i presume, ping requests.

    I have the following snippet in my main routing block:

    if(is_method("KDMQ")) {
            if (dmq_is_from_node()) {
                dmq_handle_message();
                exit;
            } else {
                xlog("L_INFO", "KDMQ message recieved from node not on
    our bus!! ($si:$sp) Dropping.");
                exit;
            }
        }

    I have the following dmq module parameters enabled for dmq:

    modparam("dmq", "server_address", DMQ_ADDRESS)
    modparam("dmq", "notification_address", "sip:lb.domain.com:5060
    <http://lb.domain.com:5060>")
    modparam("dmq", "multi_notify", 1)
    modparam("dmq", "num_workers", 4)

    DMQ_ADDRESS is set to each of the addresses in the lb.domain.com
    <http://lb.domain.com> for each local kamailio instance

    lb.domain.com <http://lb.domain.com> resolves to the following
    addresses:
        10.6.0.109
        10.6.0.110
        10.6.0.111

    If I start up the 1st instance of kamailio and do not start the
    other 2 within the default ping timout then I get the expected log
    message of dmq removing the nodes from its table, for example:

    kamailio[26657]: ERROR: dmq [notification_peer.c:588]:
    notification_resp_callback_f(): deleting server
    sip:10.6.0.111:5060 <http://10.6.0.111:5060> because of failed request
    kamailio[26657]: ERROR: dmq [notification_peer.c:588]:
    notification_resp_callback_f(): deleting server
    sip:10.6.0.110:5060 <http://10.6.0.110:5060> because of failed request

    However, if I then start one, or both, of the other nodes, then
    the KDMQ requests are dropped due to my snippet above, I presume,
    because dmq_is_from_node() checks its "active" table. See messages
    below as an example of the above snippet in action:

    kamailio[26656]: INFO: <script>: KDMQ message recieved from node
    not on our bus!! (10.6.0.110:5060 <http://10.6.0.110:5060>) Dropping.
    kamailio[26656]: INFO: <script>: KDMQ message recieved from node
    not on our bus!! (10.6.0.111:5060 <http://10.6.0.111:5060>) Dropping.

    Is this expected behaviour from the dmq_is_from_node() function? I
    would have expected it to always check the addresses resolved in
    the notification address, or am I using this function in a manner
    not intended.

    Any suggestions/tips would be greatly appreciated.

    Thanks


    _______________________________________________
    SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing
    list
    sr-users@lists.sip-router.org <mailto:sr-users@lists.sip-router.org>
    http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users





*** We're rebranding! Learn more here <http://www.sipcentric.com/2015/07/were-rebranding/> ***

www.sipcentric.com <http://www.sipcentric.com/>

Follow us on twitter @sipcentric <http://twitter.com/sipcentric>

Sipcentric Ltd. Company registered in England & Wales no. 7365592. Registered office: Faraday Wharf, Innovation Birmingham Campus, Holt Street, Birmingham Science Park, Birmingham B7 4BB.


_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to