我正在运行cachingDNS服务器,以提高networking的延迟。
问题是:我可以覆盖从Linux服务器上使用BIND9或其他软件获得的TTL?
在这里简单地“挖掘www.google.com”
; “DiG 9.6.1-P2”>> www.google.com
;; 答案部分:www.google.com。 604441在CNAME www.l.google.com。 www.l.google.com。 300中A 74.125.45.147
我可以把这个“300”换成15分钟吗?
非常感谢你的时间!
可以这样做吗? 当然 – 有一些破解的DNS服务器(例如AOL运行的服务器)会这样做,而且我知道的每个pipe理员都不喜欢它。
应该这样做? 几乎肯定没有。
一般来说,TTL被设置为一个特定的值的原因(在谷歌的情况下,可能是容错:如果服务器爆炸,你将无法达到谷歌5分钟),你不应该与它混为一谈。
通过将google.comlogging保留在您的caching中达到5分钟的目标,您的个人工作站将不会耗尽到互联网上解决问题,因此您已经获得了性能提升 – 不要过度优化并打破预期的行为:)
DIRTIEST可以做的最丑陋的事情是…
1 – 下载源2 – find名为cache.c的文件3 – find函数is_expired
4-以这种方式改变它
static int is_expired(time_t now, struct crec *crecp) { if (crecp->flags & F_IMMORTAL) return 0; if (difftime(now, crecp->ttd) < 0) return 0; return 0; // IT WAS IN ONE }
当函数ask过期了吗? 我们总是看不到
这样就永远不会过期,你将征服世界。
OUTPUT:
; <<>> DiG 9.6.1-P2 <<>> www.google.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28477 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.google.com. IN A ;; ANSWER SECTION: www.google.com. 603937 IN CNAME www.l.google.com. www.l.google.com. 4294966733 IN A 209.85.195.99 www.l.google.com. 4294966733 IN A 209.85.195.104 www.l.google.com. 4294966733 IN A 209.85.195.147 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Feb 17 18:34:47 2010 ;; MSG SIZE rcvd: 110
如果你真的对历史感兴趣,而不是准确性,那么你可以做的最快最脏的黑客攻击可能是使你的域名服务器成为域名的权威主人,并根据需要通过脚本频繁地重新创build区域文件。 绝对只是build议接pipe世界,而不是现实生活。
一般来说,如果你真的想要在应用程序中保存一个非常短的TTLlogging,似乎唯一明智的方法就是将其caching在应用程序中。
最小TTL
是的 ,您可以在ISC绑定中对其源代码进行简单的更改。 由于意识形态的原因,他们不会为你提供这样的机制。
是的 ,您还可以设置或覆盖Unbound DNS中的recursionDNS请求的最小值 ,而无需重新编译任何内容。 也就是说,你应该编译最新版本,因为EPEL仓库中的1.4分支有一些不会被修复的bug,所以你可以设置所有的glibc强化旗标。
cache-min-ttl: 60
虽然在许多应用程序和/或人使用的recursion应用时应该谨慎使用,但有几种用例可能适用。 这假定重写min-ttl的人理解哪些应用程序正在使用他们的DNS基础设施,以及这会覆盖哪些影响。 说永远不应该做的是一个不正确的概括。
我的个人经验
我使用了Unbound DNS中的cache-min-ttl:
设置来缓解跟踪网站的一些隐私攻击。 我也用它来纠正由设置TTL为0
的人设置的无效DNS,这在技术上违反了一些RFC。 鉴于我控制自己的recursion,而且只能用于我,风险很低。
在这里看到类似的问题dnsmasq:如何增加TTL? 另一个在这里是否有替代“dnsmasq”?