Hello,
On 12/03/15 17:51, canuck15 wrote:
I am reading the documentation for the ipops module
dns_int_match_ip()
function and it states the following:
"Returns TRUE if ipaddr is associated by DNS to hostname. FALSE
otherwise. It uses internal DNS resolver. At this moment, the function
might not check all the IP addresses as returned by
dns_sys_match_ip(), because the internal resolver targets to discover
the first address to be used for relaying SIP traffic. Thus is better
to use dns_sys_match_ip() if the host you want to check has many IP
addresses, in different address famililies (IPv4/6)."
I am not sure what that statement means. I will be using this for IP
authentication where the records it is checking against are in a mysql
database and may or may not be be using the DNS name instead of the
IP. Many of those DNS names could return several IP addresses and the
incoming call could be on any one of those IP addresses. So when I do
a check of a hostname against an IP address I want all returned A or
srv IP's to be checked against the IP. Not just the first IP returned
when checked. I do not believe dns_sys_match() will be fast enough on
a busy server so I would prefer to using dns_int_match_ip().
If anyone can clarify what that statement means regarding "internal
resolver targets to discover the first address" and whether that would
affect my use it would be greatly appreciated.
On a related note, is there any way to check the contents of the dns
resolver cache? I looked through kamctl and kamcmd but didn't find
anything. I tried "kamctl address show" but that didn't return anything.
the internal DNS resolver is optimized for sending out SIP requests and
uses an embedded cache. It can result that some DNS responses are cached
and kept in memory for a while. Also, there are parameters in core of
kamailio to tune what kind of dns requests to do (NAPTR, SRV, ...).
Based on those, not all options to discover the ip of a hostname for sip
forwarding are tried. E.g., it can try only SRV for UDP/IPv6 if that is
the highest configured priority and has a result for forwarding the SIP
packet.
In other words, internal DNS doesn't try to discover all the IP
addresses associated with a hostname, only those relevant for sip and
can stop at first valid response, not following other dns query options
that could be eventually done.
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
Kamailio World Conference, May 27-29, 2015
Berlin, Germany -
http://www.kamailioworld.com