I wanted to piggy back on this topic.
I'm trying to use the recursor option on my consul servers to allow docker containers (with consul ips setup as nameservers in the container /etc/resolv.conf) to reach out to an RDS instance. Each consul server in the cluster is setup to run with the arguments -recursor pdnsIP1 -recursor pdnsIP2 - recursor AWSDNSServiceIP1. Pdns is used to resolve other non-consul registered servers inside our VPC and the endpoint for the AWS dns service for is for reaching out to the rds instances.
nslookups of the rds fqdn works when the servers etc resolve has the pdnsIP1 pdnsIP2 and AWSDNSServiceIP1 as name servers. It properly gets SERVFAIL from the pdns IP and moves on to the next name server.
[root@XXXXXX~]# nslookup
databasedejour.xxxx.rds.amazonaws.com;; Got SERVFAIL reply from pdnsIP1, trying next server
Server: AWSDNSServiceIP1
Address: AWSDNSServiceIP1#53
Non-authoritative answer:
Name: databasedejour..
rds.amazonaws.comAddress: databasedejourIP
When going to the consul server with the recursor options it succeeds maybe a few times then fails repeatedly.
19:25:32 [root@container1 / :)]# nslookup
databasedejourrds.amazonaws.comServer: ConsulIP1
Address: ConsulIP1#53
Non-authoritative answer:
Name:
databasedejourrds.amazonaws.comAddress: databasedejourIP
19:59:52 [root@container1 / :)]# nslookup
databasedejourrds.amazonaws.comServer: ConsulIP1
Address: ConsulIP1#53
Non-authoritative answer:
Name:
databasedejourrds.amazonaws.comAddress: databasedejourIP
19:59:57 [root@container1 / :)]# nslookup
databasedejourrds.amazonaws.comServer: ConsulIP1
Address: ConsulIP1#53
Non-authoritative answer:
Name:
databasedejourrds.amazonaws.comAddress: databasedejourIP
20:00:00 [root@container1 / :)]# nslookup
databasedejourrds.amazonaws.comServer: ConsulIP1
Address: ConsulIP1#53
** server can't find
databasedejourrds.amazonaws.com: NXDOMAIN
-----
Consul Debug Logs
root@serverX ~]# grep 'databasedejour\|ERR' consultest_log
2016/05/12 19:17:29 [ERR] agent: failed to sync remote state: No cluster leader
2016/05/12 19:17:46 [ERR] dns: recurse failed: read udp 172.17.0.10:35272->consulIP1:53: i/o timeout
2016/05/12 19:17:46 [DEBUG] dns: recurse RTT for {
databasedejour.rds.amazonaws.com\@
10.15.17.21. 1 1} (20.579378ms)
2016/05/12 19:17:46 [DEBUG] dns: request for {
databasedejour.rds.amazonaws.com\@
10.15.17.21. 1 1} (udp) (2.021365029s) from client serverWithContainerIP:41007 (udp)
2016/05/12 19:17:56 [ERR] dns: recurse failed: read udp 172.17.0.10:58114->consulIP1:53: i/o timeout
2016/05/12 19:17:56 [ERR] dns: recurse failed: read udp 172.17.0.10:39573->consulIP1:53: i/o timeout
2016/05/12 19:20:38 [ERR] dns: recurse failed: read udp 172.17.0.10:52436->consulIP1:53: i/o timeout
2016/05/12 19:20:38 [DEBUG] dns: recurse RTT for {
databasedejour.rds.amazonaws.com\@
10.15.17.21. 1 1} (34.103955ms)
2016/05/12 19:20:38 [DEBUG] dns: request for {
databasedejour.rds.amazonaws.com\@
10.15.17.21. 1 1} (udp) (2.034682573s) from client serverWithContainerIP:50378 (udp)
2016/05/12 19:20:47 [ERR] dns: recurse failed: read udp 172.17.0.10:45920->consulIP1:53: i/o timeout
2016/05/12 19:20:47 [DEBUG] dns: recurse RTT for {
databasedejour.rds.amazonaws.com. 1 1} (8.649177ms)
2016/05/12 19:20:47 [DEBUG] dns: request for {
databasedejour.rds.amazonaws.com. 1 1} (udp) (2.009231099s) from client serverWithContainerIP:59627 (udp)
2016/05/12 19:24:00 [ERR] dns: recurse failed: read udp 172.17.0.10:39350->consulIP1:53: i/o timeout
2016/05/12 19:24:00 [DEBUG] dns: recurse RTT for {
databasedejour.rds.amazonaws.com. 1 1} (50.803318ms)
2016/05/12 19:24:00 [DEBUG] dns: request for {
databasedejour.rds.amazonaws.com. 1 1} (udp) (2.05152078s) from client serverWithContainerIP:37353 (udp)
2016/05/12 19:25:23 [ERR] dns: recurse failed: read udp 172.17.0.10:58814->consulIP1:53: i/o timeout
2016/05/12 19:25:23 [DEBUG] dns: recurse RTT for {
databasedejour.rds.amazonaws.com. 1 1} (9.516694ms)
2016/05/12 19:25:23 [DEBUG] dns: request for {
databasedejour.rds.amazonaws.com. 1 1} (udp) (2.010102939s) from client serverWithContainerIP:54941 (udp)
2016/05/12 19:25:31 [ERR] dns: recurse failed: read udp 172.17.0.10:32901->consulIP1:53: i/o timeout
2016/05/12 19:25:31 [DEBUG] dns: recurse RTT for {
databasedejour.rds.amazonaws.com. 1 1} (9.619965ms)
2016/05/12 19:25:31 [DEBUG] dns: request for {
databasedejour.rds.amazonaws.com. 1 1} (udp) (2.01017281s) from client serverWithContainerIP:41180 (udp)
2016/05/12 19:25:32 [DEBUG] dns: recurse RTT for {
databasedejour.rds.amazonaws.com. 1 1} (3.149959ms)
2016/05/12 19:25:32 [DEBUG] dns: request for {
databasedejour.rds.amazonaws.com. 1 1} (udp) (3.380693ms) from client serverWithContainerIP:48622 (udp)
2016/05/12 19:59:52 [ERR] dns: recurse failed: read udp 172.17.0.10:38005->consulIP1:53: i/o timeout
2016/05/12 19:59:52 [DEBUG] dns: recurse RTT for {
databasedejour.rds.amazonaws.com. 1 1} (21.614935ms)
2016/05/12 19:59:52 [DEBUG] dns: request for {
databasedejour.rds.amazonaws.com. 1 1} (udp) (2.022273847s) from client serverWithContainerIP:55550 (udp)
2016/05/12 19:59:57 [ERR] dns: recurse failed: read udp 172.17.0.10:34157->consulIP1:53: i/o timeout
2016/05/12 19:59:57 [DEBUG] dns: recurse RTT for {
databasedejour.rds.amazonaws.com. 1 1} (1.338549ms)
2016/05/12 19:59:57 [DEBUG] dns: request for {
databasedejour.rds.amazonaws.com. 1 1} (udp) (2.001908716s) from client serverWithContainerIP:44768 (udp)
2016/05/12 20:00:00 [ERR] dns: recurse failed: read udp 172.17.0.10:50936->consulIP1:53: i/o timeout
2016/05/12 20:00:00 [DEBUG] dns: recurse RTT for {
databasedejour.rds.amazonaws.com. 1 1} (9.331182ms)
2016/05/12 20:00:00 [DEBUG] dns: request for {
databasedejour.rds.amazonaws.com. 1 1} (udp) (2.009939212s) from client serverWithContainerIP:32879 (udp)
2016/05/12 20:00:01 [DEBUG] dns: recurse RTT for {
databasedejour.rds.amazonaws.com. 1 1} (3.104536ms)
2016/05/12 20:00:01 [DEBUG] dns: request for {
databasedejour.rds.amazonaws.com. 1 1} (udp) (3.322553ms) from client serverWithContainerIP:49609 (udp)
2016/05/12 20:00:01 [DEBUG] dns: recurse RTT for {
databasedejour.rds.amazonaws.com.gimsd3.internal.udev.nga.mil. 1 1} (15.555903ms)
2016/05/12 20:00:01 [DEBUG] dns: request for {
databasedejour.rds.amazonaws.com.gimsd3.internal.udev.nga.mil. 1 1} (udp) (15.723346ms) from client serverWithContainerIP:32938 (udp)
2016/05/12 20:00:01 [DEBUG] dns: recurse RTT for {
databasedejour.rds.amazonaws.com.gimsd0.internal.udev.nga.mil. 1 1} (38.752454ms)
2016/05/12 20:00:01 [DEBUG] dns: request for {
databasedejour.rds.amazonaws.com.gimsd0.internal.udev.nga.mil. 1 1} (udp) (38.949694ms) from client serverWithContainerIP:58641 (udp)
Best Regards,
Chuck