<div dir="auto"><div style="font-family:sans-serif;font-size:12.8px" dir="auto">Hi,</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">I observed some situations where PDNS recursor  sends a DNS query with loopback IP address (as in [5]) in the client subnet. Sending such info. can cause a confusion at the Auth. servers leading into suboptimal mapping for the end-user. For instance, I resolved <a href="http://www.youtube.com/" style="text-decoration-line:none;color:rgb(66,133,244)">www.youtube.com</a> directly against Google's Auth. DNS server using <a href="http://127.0.0.1/32" style="text-decoration-line:none;color:rgb(66,133,244)">127.0.0.1/32</a>[1] as a client subnet and without ECS [2] where Google's Auth. would use the requester IP address (which is my machine's IP in this case) to find the best near-by server.</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">As you can see from [1] and [2],  the set of A records returned in both cases are different  (I did resolve <a href="http://www.youtube.com/" style="text-decoration-line:none;color:rgb(66,133,244)">www.youtube.com</a> using my machine's IP address in the client subnet and  I received the same answers as in [2]). Moreover, I measured how far are those answers from my machine using ping. As shown in [3], the server was close to my machine because the Auth. server used my  IP address to find a near-by server. However, when a loopback address was used, it caused a confusion at the Auth. DNS and I was assigned to a server which is far from my machine [4] (26ms vs 130ms).</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">To comply with the RFC for such cases, instead of sending <a href="http://127.0.0.1/32" style="text-decoration-line:none;color:rgb(66,133,244)">127.0.0.1/32</a>, the recursor can either (i) send a DNS query without ECS option at all or (ii) include its own IP address in the query.</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">I just wanted to point out the possible performance implication when using loopback address in client subnet when resolving queries against Auth. DNS servers.</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">Sincerely,</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">Rami</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">[1]</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">dig @<a href="http://216.239.38.10/" style="text-decoration-line:none;color:rgb(66,133,244)">216.239.38.10</a> <a href="http://www.youtube.com/" style="text-decoration-line:none;color:rgb(66,133,244)">www.youtube.com</a>+client=<a href="http://127.0.0.1/32" style="text-decoration-line:none;color:rgb(66,133,244)">127.0.0.1/32</a></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">; <<>> DiG 9.9.3 <<>> @<a href="http://216.239.38.10/" style="text-decoration-line:none;color:rgb(66,133,244)">216.239.38.10</a><a href="http://www.youtube.com/" style="text-decoration-line:none;color:rgb(66,133,244)">www.youtube.com</a> +client=<a href="http://127.0.0.1/32" style="text-decoration-line:none;color:rgb(66,133,244)">127.0.0.1/32</a></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">; (1 server found)</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; global options: +cmd</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; Got answer:</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35237</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; flags: qr aa rd; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; WARNING: recursion requested but not available</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; OPT PSEUDOSECTION:</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">; EDNS: version: 0, flags:; udp: 512</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">; CLIENT-SUBNET: <a href="http://127.0.0.1/32/32" style="text-decoration-line:none;color:rgb(66,133,244)">127.0.0.1/32/32</a></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; QUESTION SECTION:</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;<a href="http://www.youtube.com/" style="text-decoration-line:none;color:rgb(66,133,244)">www.youtube.com</a>.<span style="white-space:pre-wrap">          </span>IN<span style="white-space:pre-wrap">      </span>A</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; ANSWER SECTION:</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://www.youtube.com/" style="text-decoration-line:none;color:rgb(66,133,244)">www.youtube.com</a>.<span style="white-space:pre-wrap">   </span>86400<span style="white-space:pre-wrap">   </span>IN<span style="white-space:pre-wrap">      </span>CNAME<span style="white-space:pre-wrap">   </span><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>.</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">  </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.168.46</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">  </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>216.58.215.238</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">  </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.168.14</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">[2]</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">dig @<a href="http://216.239.38.10/" style="text-decoration-line:none;color:rgb(66,133,244)">216.239.38.10</a> <a href="http://www.youtube.com/" style="text-decoration-line:none;color:rgb(66,133,244)">www.youtube.com</a></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">; <<>> DiG 9.9.3 <<>> @<a href="http://216.239.38.10/" style="text-decoration-line:none;color:rgb(66,133,244)">216.239.38.10</a><a href="http://www.youtube.com/" style="text-decoration-line:none;color:rgb(66,133,244)">www.youtube.com</a></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">; (1 server found)</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; global options: +cmd</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; Got answer:</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50656</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; flags: qr aa rd; QUERY: 1, ANSWER: 17, AUTHORITY: 0, ADDITIONAL: 1</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; WARNING: recursion requested but not available</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; OPT PSEUDOSECTION:</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">; EDNS: version: 0, flags:; udp: 512</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; QUESTION SECTION:</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;<a href="http://www.youtube.com/" style="text-decoration-line:none;color:rgb(66,133,244)">www.youtube.com</a>.<span style="white-space:pre-wrap">         </span>IN<span style="white-space:pre-wrap">      </span>A</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">;; ANSWER SECTION:</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://www.youtube.com/" style="text-decoration-line:none;color:rgb(66,133,244)">www.youtube.com</a>.<span style="white-space:pre-wrap">   </span>86400<span style="white-space:pre-wrap">   </span>IN<span style="white-space:pre-wrap">      </span>CNAME<span style="white-space:pre-wrap">   </span><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>.</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">  </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.5.14</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">    </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>216.58.216.110</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">  </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>216.58.192.206</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">  </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>216.58.192.238</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">  </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.4.78</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">    </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.4.206</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">   </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.4.238</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">   </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.0.14</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">    </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.9.78</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">    </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>216.58.192.174</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">  </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.9.46</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">    </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.6.110</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">   </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.4.46</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">    </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.1.46</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">    </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.8.174</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="http://youtube-ui.l.google.com/" style="text-decoration-line:none;color:rgb(66,133,244)">youtube-ui.l.google.com</a>. 300<span style="white-space:pre-wrap">   </span>IN<span style="white-space:pre-wrap">      </span>A<span style="white-space:pre-wrap">       </span>172.217.8.206</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">[3]</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">ping 172.217.5.14</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">PING 172.217.5.14 (172.217.5.14) 56(84) bytes of data.</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">64 bytes from <a href="http://172.217.5.14/" style="text-decoration-line:none;color:rgb(66,133,244)">172.217.5.14</a>: icmp_seq=2 ttl=128 time=25.7 ms</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">64 bytes from <a href="http://172.217.5.14/" style="text-decoration-line:none;color:rgb(66,133,244)">172.217.5.14</a>: icmp_seq=3 ttl=128 time=27.7 ms</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">64 bytes from <a href="http://172.217.5.14/" style="text-decoration-line:none;color:rgb(66,133,244)">172.217.5.14</a>: icmp_seq=4 ttl=128 time=27.3 ms</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">64 bytes from <a href="http://172.217.5.14/" style="text-decoration-line:none;color:rgb(66,133,244)">172.217.5.14</a>: icmp_seq=5 ttl=128 time=26.4 ms</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">[4]</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">ping 172.217.168.78</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">PING 172.217.168.78 (172.217.168.78) 56(84) bytes of data.</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">64 bytes from <a href="http://172.217.168.78/" style="text-decoration-line:none;color:rgb(66,133,244)">172.217.168.78</a>: icmp_seq=1 ttl=128 time=131 ms</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">64 bytes from <a href="http://172.217.168.78/" style="text-decoration-line:none;color:rgb(66,133,244)">172.217.168.78</a>: icmp_seq=2 ttl=128 time=135 ms</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">64 bytes from <a href="http://172.217.168.78/" style="text-decoration-line:none;color:rgb(66,133,244)">172.217.168.78</a>: icmp_seq=3 ttl=128 time=133 ms</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">64 bytes from <a href="http://172.217.168.78/" style="text-decoration-line:none;color:rgb(66,133,244)">172.217.168.78</a>: icmp_seq=4 ttl=128 time=134 ms</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><br></div><div style="font-family:sans-serif;font-size:12.8px" dir="auto">[5]</div><div style="font-family:sans-serif;font-size:12.8px" dir="auto"><a href="https://doc.powerdns.com/recursor/settings.html#ecs-scope-zero-address" style="text-decoration-line:none;color:rgb(66,133,244)">https://doc.powerdns.com/recursor/settings.html#ecs-scope-zero-address</a></div></div>