免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3042 | 回复: 17
打印 上一主题 下一主题

[DNS] 精通DNS协议的进来 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-22 14:50 |只看该作者 |倒序浏览
我最近在做一个DNS服务器,遇到了一个关于CNAME的问题:
当服务器接收到一个DNS请求时,发现请求的域名设置有CNAME,这时,我的服务器应该回什么信息呢,有两种可能

1: 直接将请求的域名的CNAME回应给客户端
2: DNS查询CNAME的ip,然后将这个ip回给客户端

到底应该怎么回信息呢?

论坛徽章:
0
2 [报告]
发表于 2006-02-22 14:53 |只看该作者
参考rfc

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
3 [报告]
发表于 2006-02-22 16:37 |只看该作者
原帖由 neverstop1980 于 2006-2-22 14:50 发表
我最近在做一个DNS服务器,遇到了一个关于CNAME的问题:
当服务器接收到一个DNS请求时,发现请求的域名设置有CNAME,这时,我的服务器应该回什么信息呢,有两种可能

1: 直接将请求的域名的CNAME回应给客户端
...


1. RD=1,RA=0 時,回應 CNAME
2. RD=1,RA=1 時,回應 CNAME 和 A  (A 若不在你的機器,你要幫他查)

论坛徽章:
0
4 [报告]
发表于 2006-02-22 18:06 |只看该作者
谢谢,我试一下。

另外,我是不是可以不管请求的RA值呢,就是说客户的DNS请求中RA是1,而我回的包RA是0?

论坛徽章:
0
5 [报告]
发表于 2006-02-22 19:29 |只看该作者
原帖由 neverstop1980 于 2006-2-22 18:06 发表
谢谢,我试一下。

另外,我是不是可以不管请求的RA值呢,就是说客户的DNS请求中RA是1,而我回的包RA是0?


当然可以,用 allow-recursion 或者 recursion

论坛徽章:
0
6 [报告]
发表于 2006-02-23 09:46 |只看该作者

回复 5楼 ailms 的帖子

好像还是不行,应用场景是这样子的。
由于我们的网站放在电信的机房里,这样网通的用户访问起来就会很慢,所以我们想通过51cdn来加速,51cdn让我在DNS服务器中做的事情就是将我们的www.xxx.com设定一个CNAME,www.xxx.51cdn.com,我估计51cdn做的事情就是首先将我们的网站在网通做一个镜像,然后用户访问时根据用户所在的运营商来确定解析成哪个IP.
由于我们是自己做的DNS服务器(主要是想做负载均衡),本来不支持CNAME的,现在要加入这项功能,实际上,如果用户请求www.xxx.com时,我们回的消息中包括www.xxx.51cdn.com的ip,就达不到应有的效果(相当于我们的DNS服务器去解析www.xxx.51cdn.com),我想正确的做法应该是我们返回CNAME信息,即www.xxx.51cdn.com,而由用户所在的DNS服务器再去解析一次,这样,51cdn就会知道用户的运营商,从而达到目的。
不知道我说得清不清楚,如果不清楚的话可以直接和我联系,谢谢 42590298

论坛徽章:
0
7 [报告]
发表于 2006-02-23 12:00 |只看该作者
用dns 做缓冲效果可能并不好,因为查询你dns服务器的都是当地的公网dns服务器,而不是客户端。同时公网服务器有缓冲,然后客户端还有缓冲。所以效果可能并不好。不知道楼主实现后的效果怎么样?能介绍一下吗?
用lvs来实现可能好一点。

论坛徽章:
0
8 [报告]
发表于 2006-02-23 13:21 |只看该作者
将TTL设置改小就可以了。但会增加DNS服务器的负担。经过验证,从收到DNS请求到回应DNS请求的时间基本上在20-30ms之间,当然,这里面有服务器群的负载分析(查询oracle)

原帖由 archangle 于 2006-2-23 12:00 发表
用dns 做缓冲效果可能并不好,因为查询你dns服务器的都是当地的公网dns服务器,而不是客户端。同时公网服务器有缓冲,然后客户端还有缓冲。所以效果可能并不好。不知道楼主实现后的效果怎么样?能介绍一下吗?
用 ...

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
9 [报告]
发表于 2006-02-23 13:54 |只看该作者
原帖由 neverstop1980 于 2006-2-23 13:21 发表
将TTL设置改小就可以了。但会增加DNS服务器的负担。经过验证,从收到DNS请求到回应DNS请求的时间基本上在20-30ms之间,当然,这里面有服务器群的负载分析(查询oracle)


不會一秒內收到 5000 個請求 ? 而讓你掛點 ?


谢谢,我试一下。

另外,我是不是可以不管请求的RA值呢,就是说客户的DNS请求中RA是1,而我回的包RA是0?

是的,因為查詢端的 RA 是無意義的, Server 端送出的 RA 為 0 時,而又沒有 Answer Section 時,
Client 端 (另一 DNS Server) 看到沒有 RA bit 時,就要做再查詢的動作

论坛徽章:
0
10 [报告]
发表于 2006-02-23 13:58 |只看该作者
将TTL设置改小就可以了。但会增加DNS服务器的负担。经过验证,从收到DNS请求到回应DNS请求的时间基本上在20-30ms之间,当然,这里面有服务器群的负载分析(查询oracle)

如果只是减少TTL的话,bind也许也能做,因为bind也考虑了负载均衡的问题的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP