传统DNS Howto
版本1.0
作者:Tom Adelstein <tom [dot] adelstein [at] gmail [dot] com>
Falko Timme
最后编辑:03/11/2006
Linux系统管理员应该学习传统的DNS。 用于设置域记录的前端和快速模板可以在管理站点中占据一席之地。 当面对已经存在的DNS配置时,没有什么可以替代知道和使用基础知识。
互联网上绝大多数的用户都不知道DNS。 他们可能已经看到了这个术语,当他们建立他们的ISP连接,但他们没有意识到与他们的生活的联系。 简单地说,DNS服务器允许您在浏览器,电子邮件或其他Internet应用程序中使用友好名称来执行需要IP地址的任务。
互联网使用TCP / IP协议在互联网上发送和接收所有内容。 当您 在浏览器中 输入 Google.com 进行搜索时,您将使用DNS。 否则,您将必须使用此数值: 64.233.187.99 。 点击每一个,看看你得到什么。
您看到Google.com是浏览器咨询的数据库中的一个名称,用于查找Google网站的IP地址。 但这对用户来说是透明的。 您希望如何保留IP地址笔记本手动查找并查找您要访问的网站? 那么,域名系统会自动为您而设。
如果你坐在那里读书,那么“哦,是的,我已经知道了”,然后一两分钟。 使用DNS需要相当多的知识和纪律。 我知道的系统管理员可以做很多任务,但很少可以处理DNS。 几乎没有例外,他们迷失了,因为他们不了解基本面。
互联网的域名系统构成了地球上最大的分布式数据库,相当巧妙。 理论上没有缺陷。 实际上,人们一直在追赶它。 人们使其数据库部分的DNS条目格式不正确,或存在导致错误的固有缺陷。
DNS记录的互联网调查显示错误率高达72%。 我们知道大多数错误来自跛脚代表团。 跛脚代表团包括在没有人实际托管域时分配给他们的DNS服务器注册的域。 其他原因包括无法提供区域文件,资源记录中的错误,过期域名注册。
如果您尝试学习DNS术语,您会发现它不直观。 起初它没有意义。 在许多方面,行话让我想起了一种外语。 你只需要在一段时间之前使用它才有意义。
Linux使用BIND执行DNS功能。 系统管理员不要尝试使用其他程序,而应该从BIND开始,因为它运行着世界上几乎所有的DNS服务器。 我不会提供BIND的历史课,因为这个主题会让你睡觉。
所以,如果你想出去学习BIND的一切,请做。 除了一个例外,它不会帮助您做很多DNS。 有些人仍然使用BIND版本4.你想从BIND 4升级到BIND 8或9.只是我的好运气,你会出去创建DNS配置文件,他们没有任何意义。 那是因为很多人仍然运行BIND 4。
告诉我关于配置文件
BIND有三个组件。 我们称之为名称或名称的第一个组件。 这是运行DNS服务器端的守护进程。 这一点会有意义的。
BIND的第二个组件我们称之为解析器库。 人们认为解析器是BIND的客户端。 解析器代码会对DNS服务器进行查询,尝试将友好名称转换为IP地址。 该组件使用resolv.conf文件。 这听起来像UNIX缩写。 应该是因为它是。
BIND的第三个组件提供了测试您的DNS服务器的工具。 我们称之为工具,但它们真的是一组命令行实用程序,如挖 。 去你的控制台,输入 dig yahoo.com ,看看会发生什么。 我们稍后再看看。
在DNS系统中我的职责是什么?
如前所述,DNS是一个分布式数据库。 当您支付注册域名的费用之一您回答与您的Nameservers交易的问题之一。 您必须列出两个,并且必须在DNS系统中注册。
域名系统数据库有三个层次。 我们称之为“root”服务器的第一组服务器。 第二个我们称之为顶级域名(TLD)。 当您的解析器需要找到一个网站的地址时,它会进行查询。
假设您要查找Google.com。 您的解析器要求根服务器识别Google.com的IP。 根服务器回复,我不知道,但我现在在哪里可以找到答案。 开始使用COM的TLD服务器。
因此,Root将您的查询发送到COM服务器。 说,好的。 我没有这些信息,但我知道一个Nameservers。 它的地址为 64.233.167.99 ,名称为 ns1.google.com 。 所以,去那个地址,它会告诉你 google.com的 网站地址
您的解析器从 ns1.google.com获取信息 ,并返回一个IP地址。 如果Google的Nameservers为您的解析器提供了正确的名称,那么您将获得一个网页。
旅行的路线如图1所示。
图1 - 从根到你的域。
在图1的左上方,我们描绘了一组具有Root注释的服务器。 在DNS的术语中,这些服务器代表了DNS路径的开始。 你会看到它们由一个时期或点(“。”)表示。 在您的配置文件中,您的名称映射的IP地址将以一段时间结束。 当我们在几分钟内看到这些文件时,这将变得更加清晰。
根服务器是分布式DNS数据库的顶部。 他们有关于顶级域名(TLD)的信息。 TLD包括 com,net,org,mil,gov,edu 等。当您签约使用域名时,您选择了所需的TLD。 在我的情况下,我在org名称空间中有一个名为 centralsoft.org的域名 。
当我注册了我的Nameservers时,我把 server1.centralsoft.org 和 ns0.centralsoft.org 的名字给了 我的注册代理。 在 org 的TLD服务器中 ,您将找到我的Nameservers。 机构 服务器知道您应该在哪里找到关于 中央软件的信息。
当我注册时,我告诉代理,我将负责维护IP地址和友好名称的数据库,并将它们映射到彼此。 所以我们达成了协议,域名系统说:“好的,现在你有权力在centralsoft.org上提供数据,当有人想在互联网上找到你提供的服务时,我们会指出你们。
所以,现在我必须运行一个可以回答您的问题的应用程序,并说:“如果你想看到我的网页或者发送邮件给我的一个用户,你可以在这里找到它,如果你问我一个名字,我会给你一个IP地址,因为我知道你有这个协议使用TCP / IP,我意识到你需要的地址,即使你指定一个名称“。