Omn*_*red 6 linux bind dnsmasq
我目前正在运行缓存 DNS 服务器以改善网络中的延迟。
问题是:我可以在 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 中 74.125.45.147
我可以将“300”更改为 15 分钟吗?
非常感谢您的时间!
CAN这样做吗?当然 - 有损坏的 DNS 服务器(例如 AOL 运行的服务器)会这样做,我认识的每个管理员都讨厌它。
应该这样做吗?几乎可以肯定没有。
一般来说,TTL 被设置为一个特定的值是有原因的(在谷歌的情况下,可能是容错:如果该服务器崩溃,您将只能在 5 分钟内无法访问谷歌),并且您不应该考虑它.
通过将 google.com 记录保留在缓存中 5 分钟,您已经获得了性能提升,因为您的个人工作站不会用完互联网进行解析 - 不要过度优化并打破预期的行为:)
可以做的最肮脏最丑陋的事情是......
1-下载源码 2-找到名为cache.c的文件 3-找到函数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
}
Run Code Online (Sandbox Code Playgroud)
什么时候函数 ask 过期了?我们总是看到没有
这样它永远不会过期,你将征服世界。
输出:
; <<>> 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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12842 次 |
最近记录: |