[SR-Users] Kamailio not using system resolver for hostname resolution (DMQ)?
Daniel-Constantin Mierla
miconda at gmail.com
Thu May 28 17:58:52 CEST 2020
Welcome!
Btw, would anyone find it useful to be able to add also SRV records in
the cache via modparam? I did it for A/AAAA records, but should be easy
to extend for SRV...
Cheers,
Daniel
On 28.05.20 17:01, Alex Balashov wrote:
> 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/
>
> _______________________________________________
> 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
More information about the sr-users
mailing list