快捷搜索:

系统管理工具包: 理解 DNS

关于本系列

范例的 UNIX 治理员拥有一套常常用于帮助治理历程的症结实用对象、诀窍和系统。有一些紧张的实用法度榜样、敕令行以及脚本可用来简化各类处置惩罚历程。此中一些对象来自于操作系统,而大年夜部分的诀窍则滥觞于经久的履历积累和减轻系统治理员事情压力的要求。本系列文章主要专注于最大年夜限度地使用各类 UNIX 情况中可用的对象,包括简化异构情况中的治理义务的措施。

DNS 根基

平日,人类并不是分外擅擅长影象数字。遗憾的是,IP 寻址系统应用数字来标识各个主机。记着收集内外可能盼望应用的所有谋略机的 IP 地址数字显然是不切实际的。相反,将您的办事器名称作为“bear”来影象或者将 Internet 上的某个网站地址作为 www.mcslp.com 来影象会加倍轻易。

以前,UNIX 主要应用三个位置来保存此类信息。内置的 /etc/hosts 文件是主要滥觞和有用的备份,然则要在多台谋略机中使其维持最新,将必要进行大年夜量的数据复制。更好的措施是应用散播式系统,此中所有谋略机和办事都能与中间点通信;斟酌到不合的目的而开拓了两个系统:收集信息系统(Network Information System,NIS)和 DNS。

NIS 是通用数据库共享办事,可用于共享主机、密码和其它通俗的基于文本的数据库。遗憾的是,NIS 在跨系统应用时不是那么有效,在 Internet 的散播式形式中肯定不是异常有效。

域名系统(Domain Name System,DNS)经由过程供给一种能够将名称解析到响应的 IP 地址的机制,从而办理了此问题。域名系统中的地址组织为树形布局。虽然可以按照您盼望的款式组织任何专用 DNS,然则最简单的理解 DNS 系统的道路是查看已经在 Internet 上应用的域名布局。

一个范例的 DNS 地址 www.mcslp.com,可以经由过程按句点分隔其内容来划分此名称,并从最右边的片段 (com) 开始。

在示例 www.mcslp.com 中,“com”是顶级域名 (TLD) 的示例,顶级域名按组织或区域布局来对名称进行组织。例如,有效的 TLD 包括 com(商业)、edu(教导)和 net(收集相关)。在 Internet 上,区域组织供给特定于国家/地区的 TLD,例如表示英国的 uk 或表示法国的 fr。

TLD 左边的每个片段是该原始域的细分。例如,mcslp.com 是 com TLD 的细分。可以进行进一步的细分,最多可以达到 127 个级别。每个细分部分称为子域。在该示例中,mcslp.com 是 com TLD 的子域,www.mcslp.com 是 mcslp.com 子域的子域。

应用子域具有两个主要目的;一是为了便于标识,二是为了便于委托。从标识的角度看,懂得和确定 www.mcslp.com 和 bear.mcslp.com 均为 mcslp.com 域中的主机要轻易得多。类似地,很轻易确定 www.google.com 和 mail.google.com 均为 google.com 域中的主机。

委托涉及到治理员(以及谋略机)认真各个域的设置设置设备摆设摆设和内容的要领。mclsp.com 域是 com TLD 的子域。com TLD 的治理员已将该域和 mcslp.com 域的子域的权限委托给另一个治理员。

此委托功能使得 Internet 上的办事治理员能够“拥有”某个域,并响应地分配他们自己的 IP 地址,设置设置设备摆设摆设自己的名称,以及组织自己的布局以赞助他们标识其收集中的谋略机。

在内部,域名系统还可以用作标识和定位收集上的谋略机的措施,并且可以应用 DNS 的组织和委托功能来赞助对收集进行组织。

例如,mcslp.com 是某公司的外部公共域,而 mcslp.pri 则是在内部用于标识收集中的谋略机的专用域。地址 www.mcslp.pri 涉及到一个内部 Web 办事器,mail.mcslp.pri 涉及到一个内部邮件办事器。此外,子域 vm.mcslp.pri 用于供给主机(在此例中为虚拟谋略机)的逻辑分组。

该 DNS 办事器向 mcslp.com 域的 DNS 办事器发送一个迭代哀求,以解析地址 www.mcslp.com。

该 DNS 办事器应用迭代哀求的缘故原由在于,它已经知道 mcslp.com DNS 办事器对该域是有域名节制权的。

mcslp.com DNS 办事器将 IP 地址返回给该 DNS 办事器。

该 DNS 办事器将 IP 地址返回给客户端。

设置 DNS 办事器

本文前面曾评论争论了委托以及域和子域细分的感化,即容许各个治理员认真他们自己的域以及该域中定义的信息和主机。无论您是在 Internet 托管上可用的公共 DNS 域,照样盼望设置设置设备摆设摆设自己的 DNS 信息以解析专用收集中的地址和其它信息,设置自己的域办事器可能都是异常有用的。

要在 UNIX 办事器或客户端中设置 DNS 办事器,您必要 DNS 守护进程,此守护进程将回答一个或多个域的查询。最常见的守护进程是 BIND,并且大年夜多半 DNS 办事器实现都应用 BIND 或 BIND 代码的派生代码作为其 DNS 办事的根基。BIND 办事的核心是一个名为 named(或 in.named)的守护进程,此守护进程处置惩罚所有的查询。

范例的 BIND 情况的设置设置设备摆设摆设涉及到主 named 设置设置设备摆设摆设文件,平日是 /etc/named.conf(或 /etc/bind/named.conf),以及许多“区域”文件,此中包孕有关该办事器认真的每个 DNS 域的零丁信息。

主设置设置设备摆设摆设文件设置用于区域文件、安然信息以及还设置在该 DNS 办事器无法自己解析地址时应该查询的其他办事器的目录。假如除懂得析收集中已设置设置设备摆设摆设区域的地址以外,还盼望 DNS 办事器解析收集之外(例如,在 Internet 上)的地址,则必要此设置。

在清单 1 中可以看到一个简单设置设置设备摆设摆设文件的开首部分。

清单 1. 简单设置设置设备摆设摆设文件

options {

directory "/var/bind";

forwarders {

212.23.3.100;

212.23.6.100;

};

listen-on-v6 { none; };

listen-on { 127.0.0.1; };

allow-query {

192.168.0.*;

192.168.1.*;

192.168.2.*;

};

pid-file "/var/run/named/named.pid";

};

该设置设置设备摆设摆设文件的另外部分包孕将由该办事器用于共享 DNS 信息的区域文件数据。

设置 DNS 数据

DNS 信息存储在一系列“区域”文件中。平日,您托管的每个域有一个区域文件。

转发区域——这些区域主要将域名映射到 IP 地址。此外,诸如有效的名称办事器、域的邮件办事器优先级等其他域级其余信息也存储在这些文件中。一个转发域一样平常应用单个区域文件。例如,mcslp.com 或某个内部 mcslp.pri 区域。

反向区域——这些区域将 IP 地址映射回名称。出于安然斟酌,可以设置设置设备摆设摆设包括 NFS、OpenSSH 和 Web 办事器在内的许多办事,使其反省哀求的 IP 地址是否可解析回某个名称,并在适当的环境下,反省哀求主机和 IP/地址是否正向和反向均匹配。对付反向区域,您只是创建用于记录 IP 地址与主机间关系的记录。

根区域——这些区域供给“根”办事器的列表,根办事器包孕有关 Internet 上的子域及其委托记录的信息。经由过程供给根区域文件,您可以让 DNS 办事器查询根 Internet 办事器中关于 Internet 上的其他主机的信息。

您的设置设置设备摆设摆设中的所有已设置设置设备摆设摆设区域都指定为主区域或帮助区域。主区域是主机(即该域的委托办事器)的区域。对付某个域来说,只有一个办事器可所以主理事器;域中被授权(也便是说,它们供给合格的相应)的其它办事器被分类为“帮助”或从属办事器。可以应用从属办事器来赞助分散负载,并在发生故障时供给规复能力。本文稍后将会返回来评论争论此问题。

对付您托管的每个区域文件,必须向 named.conf 文件添加区域部分(请拜见清单 2)。

清单 2. 向 named.conf 文件添加区域部分

zone "mcslp.pri" in {

file "pri/mcslp.pri.zone";

type master;

};

在我们的示例中,只有一个办事器有资格供给关于域 bear.mcslp.pri 中的主机和其他数据的相应。供给主机名而不是 IP 地址是为了使您能够变动主机 IP 地址而不必更新 DNS SOA 记录。

然后该区域文件中的另外信息设置设置设备摆设摆设特定的 DNS 记录。DNS 能够包孕的信息远不止是简单的名称到地址的映射数据,是以将 DNS 记录组织为不合的类型。

主要类型的列表包括:

A(地址)——指定给定名称的 IP 地址。

NS(名称办事器)——指定给定域的名称办事器。

CNAME(规范名称)——现有主机的又名。

MX(邮件互换器)——认真处置惩罚该域的电子邮件的办事器主机名。

对付域中的名称,可以简单地经由过程指定某个名称来暗示此名称在该域中,例如: bear IN A 192.168.0.2。

因为 DNS 知道此文件包孕 mcslp.pri 域的信息,是以将把完备主机名展开为 bear.mcslp.pri。

经由过程设置完备主机名并在名称末端追加一个句点,还可以指定完全限制的域名 (FQDN)。 amazon IN CNAME www.amazon.com

上面的示例将设置设置设备摆设摆设 amazon.mcslp.pri 主机名以用作 www.amazon.com 的又名。

返回到本来的主机列表,主机的设置设置设备摆设摆设如清单 4 所示。

清单 4. 设置设置设备摆设摆设主机

bear.mcslp.pri.   IN   A   192.168.0.2

Defines the IP address of bear.mcslp.pri as 192.168.0.2

airong.wireless   IN   A   192.168.0.210

Defines the IP address of airong.wireless.mcslp.pri to 192.168.0.210.

This is an example of setting up a subdomain within our original mcslp.pri

domain for organizational purposes. In this case, the wireless.mcslp.pri

is used to hold the details of wireless devices.

mail          IN   CNAME   bear

www          IN   CNAME   bear

Creates aliases to bear.mcslp.pri. These are examples of utility aliases

that can be used to identify different services. By using an alias, you

can change the host ultimately responsible for these services without having

to reconfigure clients with the updated host.

mcslp.pri.     IN   MX   10   bear

还应该设置设置设备摆设摆设“hint”区域,此区域引用根办事器和 localhost 转发和反向域,以便 localhost 和 127.0.0.1(本地主机 IP 地址)的解析能够精确事情。在 BIND 源代码中可以找到这些区域设置设置设备摆设摆设的示例,并且平日也是由 BIND 安装所附带的。清单 7 显示了 named.conf 区域条款。

清单 7. named.conf 区域条款

zone "." IN {

type hint;

file "named.ca";

};

zone "localhost" IN {

type master;

file "pri/localhost.zone";

allow-update { none; };

notify no;

};

zone "127.in-addr.arpa" IN {

type master;

file "pri/127.zone";

allow-update { none; };

notify no;

};

一旦设置设置设备摆设摆设了区域并添加了区域文件,就可以启动 named 守护进程了。对付大年夜多半 UNIX/Linux 发行版本,您可以应用 /etc/init.d 中的脚原先完成此义务: # /etc/init.d/named start.

对付 Solaris 10,可以应用 svcadm: # svcadm enable bind。

在 named 守护进程开始运行今后,确保编辑 /etc/resolv.conf 文件(请拜见清单 8),以设置设置设备摆设摆设域和供给相应的 DNS 办事器:

清单 8. 编辑 /etc/resolv.conf 文件以设置设置设备摆设摆设域和 DNS 办事器

domain mcslp.pri

nameserver 192.168.0.2

您可能还必要编辑 /etc/nsswitch.conf 文件,以便将主机名查找重定向到 DNS 办事。例如,首先应用本地文件,然后才借助 DNS: hosts: files dns.

您现在应该能够应用 dig 从 DNS 查找主机,dig 是一个查询 DNS 办事器中的信息的对象。清单 9 显示了查找 bear.mcslp.pri 时的结果。

您可能还会对下面的文章感兴趣: