-
Notifications
You must be signed in to change notification settings - Fork 633
Open
Description
It seems like opensips when using SRV records does not read and use the ADDITIONAL RECORDS, and instead sends another DNS request to get the IP for the host, which is inefficient and could be supported just like mentioned in the RFC 2782 :
For each element in the new list
query the DNS for address records for the Target or
use any such records found in the Additional Data
section of the earlier SRV response.
Example, for our _sip._udp service using our service discovery tool :
;; ANSWER SECTION:
_sip._udp.service.consul. 15 IN SRV 1 1 5063 ourserver.node.us.consul.
_sip._udp.service.consul. 15 IN SRV 1 1 5060 ourserver.node.us.consul.
_sip._udp.service.consul. 15 IN SRV 1 1 5062 ourserver.node.us.consul.
_sip._udp.service.consul. 15 IN SRV 1 1 5061 ourserver.node.us.consul.
;; ADDITIONAL SECTION:
ourserver.node.us.consul. 15 IN A 98.XXX.XXX.XXX
It has all the information it needs but it still does an extra A query, which is an issue for us as some of our services run on different interfaces. I'm looking at resolve.c and trying to see how this can be implemented (See how Kamailio is doing it for example) but I've ran into issues with the dns_cache. Any thoughts or anyone that would like to take on this issue?