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

Alex Balashov abalashov at evaristesys.com
Thu May 28 17:01:43 CEST 2020


Thank you for this, Daniel!

On 5/28/20 3:51 AM, Daniel-Constantin Mierla wrote:
> For the records, I added a modparam to corex module which allows adding 
> A/AAAA records in the internal dns cache at startup. It could be useful 
> in this case as alternative for /etc/hostname entries, but also at least 
> for some testing scenarios to avoid updating records on dns server, 
> which may take time to propagate.
> 
>    * 
> https://www.kamailio.org/docs/modules/devel/modules/corex.html#corex.p.dns_cache
> 
> During runtime, there are rpc commands to add/remove records in the dns 
> cache.
> 
> Cheers,
> Daniel
> 
> On 20.05.20 20:56, Daniel-Constantin Mierla wrote:
>>
>> Hello,
>>
>> having use_dns_cache=no is not that bad if you have a local dns cache 
>> application pointed by /etc/resolv.conf, provided that you do not need 
>> srv based load balancing.
>>
>> Not being the developer of dns resolving part in kamailio and the dns 
>> cache, I investigated a bit and practically the /etc/hosts is the 
>> pre-dns way of associating domains to ip addresses, without ttl and 
>> other attributes specific to dns records. That seems the reason the 
>> libc dns related functions do not use it implicitly, thus also not 
>> reflected inside kamailio dns caching.
>>
>> Now, you can add records to kamailio dns cache via rpc commands, which 
>> can be done also from config using jsonrpc_exec() from jsonrpcs module 
>> (e.g., using event_route[htable:mod-init] before sip traffic is 
>> handled). The command should be liked:
>>
>> kamctl rpc dns.add_a domain ttl ipaddr flags
>>
>> The flags can be 1 to add it as a bad record (blacklisted domain) or 2 
>> to add it as permanent record (do not expire). You can use 
>> dns.add_aaaa for ipv6.
>>
>> Actually I am now thinking to add the possibility to add to dns cache 
>> via modparam of ipops module, to make it easier overall.
>>
>> Cheers,
>> Daniel
>>
>> On 20.05.20 19:35, George Diamantopoulos wrote:
>>> Hello all,
>>>
>>> Thank you for your enlightening answers. I ended up creating DNS 
>>> entries anyway, so it's all good now. use_dns_cache=no sounded a 
>>> little scary :-).
>>>
>>> BR.
>>> George
>>>
>>> On Tue, 19 May 2020 at 19:44, Daniel-Constantin Mierla 
>>> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>>>
>>>     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>
>>>     <http://dmq-ng.services.domain.com>
>>>     >>> 172.30.154.189 dmq-ng.services.domain.com
>>>     <http://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>
>>>     >>> <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>
>>>     >>> <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 <mailto: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 <mailto:sr-users at lists.kamailio.org>
>>>     >> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>     > --
>>>     > Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com>
>>>     > www.twitter.com/miconda <http://www.twitter.com/miconda> --
>>>     www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>>>     > Funding: https://www.paypal.me/dcmierla
>>>     >
>>>     -- 
>>>     Daniel-Constantin Mierla -- www.asipto.com <http://www.asipto.com>
>>>     www.twitter.com/miconda <http://www.twitter.com/miconda> --
>>>     www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda>
>>>     Funding: https://www.paypal.me/dcmierla
>>>
>>>
>>>     _______________________________________________
>>>     Kamailio (SER) - Users Mailing List
>>>     sr-users at lists.kamailio.org <mailto:sr-users at lists.kamailio.org>
>>>     https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>
>>>
>>> _______________________________________________
>>> 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
> 
> 
> _______________________________________________
> 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/



More information about the sr-users mailing list