DNS 原理入门
六、分级查询的实例 dig命令的+trace参数可以显示DNS的整个分级查询过程。
上面命令的第一段列出根域名.的所有NS记录,即所有根域名服务器。 根据内置的根域名服务器IP地址,DNS服务器向所有这些IP地址发出查询请求,询问math.stackexchange.com的顶级域名服务器com.的NS记录。最先回复的根域名服务器将被缓存,以后只向这台服务器发请求。 接着是第二段。 上面结果显示.com域名的13条NS记录,同时返回的还有每一条记录对应的IP地址。 然后,DNS服务器向这些顶级域名服务器发出查询请求,询问math.stackexchange.com的次级域名stackexchange.com的NS记录。 上面结果显示stackexchange.com有四条NS记录,同时返回的还有每一条NS记录对应的IP地址。 然后,DNS服务器向上面这四台NS服务器查询math.stackexchange.com的主机名。 上面结果显示,math.stackexchange.com有4条A记录,即这四个IP地址都可以访问到网站。并且还显示,最先返回结果的NS服务器是ns-463.awsdns-57.com,IP地址为205.251.193.207。 七、NS 记录的查询 dig命令可以单独查看每一级域名的NS记录。
+short参数可以显示简化的结果。
八、DNS的记录类型 域名与IP之间的对应关系,称为"记录"(record)。根据使用场景,"记录"可以分成不同的类型(type),前面已经看到了有A记录和NS记录。 常见的DNS记录类型如下。
一般来说,为了服务的安全可靠,至少应该有两条NS记录,而A记录和MX记录也可以有多条,这样就提供了服务的冗余性,防止出现单点失败。 CNAME记录主要用于域名的内部跳转,为服务器配置提供灵活性,用户感知不到。举例来说,facebook.github.io这个域名就是一个CNAME记录。
上面结果显示,facebook.github.io的CNAME记录指向github.map.fastly.net。也就是说,用户查询facebook.github.io的时候,实际上返回的是github.map.fastly.net的IP地址。这样的好处是,变更服务器IP地址的时候,只要修改github.map.fastly.net这个域名就可以了,用户的facebook.github.io域名不用修改。 由于CNAME记录就是一个替换,所以域名一旦设置CNAME记录以后,就不能再设置其他记录了(比如A记录和MX记录),这是为了防止产生冲突。举例来说,foo.com指向bar.com,而两个域名各有自己的MX记录,如果两者不一致,就会产生问题。由于顶级域名通常要设置MX记录,所以一般不允许用户对顶级域名设置CNAME记录。 Ptr记录用于从IP地址反查域名。dig命令的-x参数用于查询Ptr记录。
上面结果显示,192.30.252.153这台服务器的域名是pages.github.com。 逆向查询的一个应用,是可以防止垃圾邮件,即验证发送邮件的IP地址,是否真的有它所声称的域名。 dig命令可以查看指定的记录类型。
九、其他DNS工具 除了dig,还有一些其他小工具也可以使用。 (1)host 命令 host命令可以看作dig命令的简化版本,返回当前请求域名的各种记录。
host命令也可以用于逆向查询,即从IP地址查询域名,等同于dig -x。
(2)nslookup 命令 nslookup命令用于互动式地查询域名记录。
(3)whois 命令 whois命令用来查看域名的注册情况。
十、参考链接 DNS: The Good Parts, by Pete Keen DNS 101, by Mark McDonnell (完) 注:相关网站建设技巧阅读请移步到建站教程频道。 推荐:用高性能云服务器 稳定的网站才能更赚钱 (编辑:徐州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |