在我们的大型地图缩减过程中,我们有一个步骤来执行DNSparsing。 应用程序本身使用c-ares库以及libcurl。
我注意到,每个决议,首先是一个AAAA的尝试,然后立即一个A决议。 在我们的命名服务器和主机上都可以清楚地看到TCPdump。
以下是S3的stream量示例
$ tcpdump dst port 53 20:28:35.259552 IP xxxx55271 > ec2-xx.amazonaws.com.domain: 21815+ AAAA? s3.amazonaws.com. (34) 20:28:35.261526 IP xxxx56058 > ec2-xx.amazonaws.com.domain: 21823+ A? s3.amazonaws.com. (34)
它重复每个决议。 由于我们在这个过程中做了超过7000万的解决scheme,所以想要把这个中的50%作为浪费是有道理的。
我如何禁用Ubuntu中的IPv6查找?
我已经尝试将/etc/gai.conf中的优先级更改为:
precedence ::ffff:0:0/96 45
但是我仍然看到Ubuntu首先尝试了IPv6解决scheme。 任何帮助将不胜感激
编辑:
我的/etc/resolv.conf很简单,只有一个名称服务器:
cat /etc/resolv.conf nameserver xxxx
IPv6,而不是IPv4,是知识产权的前瞻性版本,你知道… IPv6很遗憾地看到你去:-(但你可以禁用它。
如果你正在使用libcURL,那么你所要做的就是:
curl_easy_setopt(easy_handle, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
但是,您担心这些额外的AAAA请求所花费的时间,还是额外的networkingstream量? 我希望A和AAAA是平行的,所以你不需要担心延迟。