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