[SR-Users] Kamailio not using system resolver for hostname resolution (DMQ)?

Daniel-Constantin Mierla miconda at gmail.com
Tue May 19 18:42:52 CEST 2020


A quick follow up as I found quite interesting that nowadays *BSDs allow
specifying order of lookup in resolv.conf to include the hosts file, but
that doesn't seem to be in Linux:

  * https://man.openbsd.org/resolv.conf.5#lookup

Cheers,
Daniel


On 19.05.20 17:48, Daniel-Constantin Mierla wrote:
> Hello,
>
> worth to clarify that Kamailio doesn't implement a dns resolver from
> scratch, it still uses the functions from libc. It only does caching and
> try to use cashing records first.
>
> By default, the following dns functions are used internally when the
> cache doesn't have the record already -- they are set in the dns_func
> structure:
>
> struct dns_func_t dns_func = {
>     res_init,
>     res_search,
>     gethostbyname,
> #ifdef HAVE_GETHOSTBYNAME2
>     gethostbyname2
> #else
>     NULL
> #endif
> };
>
> So practically by leveraging res_init()/res_search() is relying on
> /etc/resolv.conf to do DNS queries, which is not using the /etc/hosts
> (iirc). For more see:
>
>   * https://linux.die.net/man/3/res_search
>
> Cheers,
> Daniel
>
> On 19.05.20 17:23, Alex Balashov wrote:
>> You are correct that Kamailio does not use the libc resolver /
>> libresolv, but rather its own resolver, which ignores /etc/hosts.
>>
>> -- Alex
>>
>> On 5/19/20 10:42 AM, George Diamantopoulos wrote:
>>> Hello all,
>>>
>>> I've come across this today when trying to setup DMQ replication:
>>>
>>> root at sbcpub0-stage-lhe0-cn1:/root# systemctl restart kamailio
>>> root at sbcpub0-stage-lhe0-cn1:/root# kamcmd dmq.list_nodes
>>> {
>>>          host: 172.30.154.189
>>>          port: 5090
>>>          resolved_ip: 172.30.154.189
>>>          status: active
>>>          last_notification: 0
>>>          local: 1
>>> }
>>> root at sbcpub0-stage-lhe0-cn1:/root# getent hosts
>>> dmq-ng.services.domain.com <http://dmq-ng.services.domain.com>
>>> 172.30.154.189 dmq-ng.services.domain.com
>>> <http://dmq-ng.services.domain.com>
>>> 172.17.130.13 dmq-ng.services.domain.com
>>> <http://dmq-ng.services.domain.com>
>>>
>>> root at sbcpub0-stage-lhe0-cn1:/root# grep dmq-ng /etc/kamailio/*
>>> /etc/kamailio/kamailio-module-params.cfg:modparam("dmq",
>>> "notification_address", "sip:dmq-ng.services.domain.com:5090
>>> <http://dmq-ng.services.domain.com:5090>")
>>>
>>> In another case, where the resolving IPs for the DMQ service hostname
>>> were listed as A records in DNS, this worked as expected.
>>> In this case, the second host of the DMQ group is not listed in
>>> dmq.list_nodes, despite its being set in /etc/hosts, as shown by the
>>> getent command.
>>>
>>> Doesn't kamailio use nss for hostname resolution? Am I missing
>>> something else? Thanks!
>>>
>>> BR,
>>> George
>>>
>>>
>>> _______________________________________________
>>> Kamailio (SER) - Users Mailing List
>>> sr-users at lists.kamailio.org
>>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>
>> -- 
>> Alex Balashov | Principal | Evariste Systems LLC
>>
>> Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
>> Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
>>
>> _______________________________________________
>> Kamailio (SER) - Users Mailing List
>> sr-users at lists.kamailio.org
>> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
> -- 
> Daniel-Constantin Mierla -- www.asipto.com
> www.twitter.com/miconda -- www.linkedin.com/in/miconda
> Funding: https://www.paypal.me/dcmierla
>
-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Funding: https://www.paypal.me/dcmierla




More information about the sr-users mailing list