如何将Ubuntu 13配置为DNS服务器

时间:2020-01-09 10:39:02  来源:igfitidea点击:

说明

本教程重点介绍如何将BIND DNS服务器用于域名服务。 BIND几乎可以说是生产中几乎所有DNS系统的事实上的名称服务器软件。

服务器配置

名称操作系统IP地址DNS软件角色
NS1Ubuntu 13.10172.30.0.60BIND9.9主(主)
NS2Ubuntu 13.10172.30.0.61BIND9.9主(从)

电脑环境

本教程中使用的环境由以下计算机组成。这些将需要添加到我们的第一个正向查找域中。

名称角色IP地址
Desktop01用户计算机172.30.0.200
桌面02用户计算机172.30.0.201
桌面03用户计算机172.30.0.202
桌面04用户计算机172.30.0.203
文件服务器01网络文件服务器172.30.0.100
文件服务器02网络文件服务器172.30.0.101
MailSerer02电子邮件服务器172.30.0.102

规划域名

在甚至开始配置域名服务器之前,我们应该对域的外观有一个很好的了解。有一些注意事项会影响我们将使用的命名方案。

正向查找区域

这些域区域用于将名称转换为IP地址。我们每次以其名称访问网站时都会使用一个。这就是我们将在本教程中创建的内容。

反向查询区

当我们需要将IP地址转换为主机名时,可以配置反向查找区域。当我们拥有的只是一个IP地址时,它在名称验证中已被大量使用。

命名域名

确定域名时,应遵循一些规则。

  • 域名在标点符号之前必须包含2到63个字符。
  • 域名只能包含字母A-Z,数字0-9和连字符(-)
  • 如果仅用于内部托管,则不应以.com,.net,.ca,.org或者任何其他顶级域名(TLD)结尾。内部TLD的示例是.test。
  • 它至少应具有两个域级别mydomainname.tld。

在本教程中,我将使用theitroad.test的域名。它仅用于托管内部记录。

名称服务器类型

名称服务器有几种类型的角色。在本教程中,我们将只关注两个主节点(主节点)和一个从节点(辅助节点)。下表描述了最受欢迎的名称服务器角色。

角色描述
Master
从属服务器
缓存

DNS记录类型

域中可以使用大量的DNS记录类型,每种类型都有其自己的特定服务,例如电子邮件,计算机主机名,名称服务器等。这是可以使用的记录类型的简要列表。

类型说明
一种地址记录,用于将域名分配给IP地址
NSName Server

用于指定区域的名称服务器的域名
SOA起始权限

域或者整个区域的绝对权限域名服务器。这通常是主服务器
MXMail Exchange

此记录指定哪些服务器承载域的电子邮件服务。如果没有此记录,客户端和其他邮件服务器将无法确定邮件服务器

安装和配置BIND

在两个服务器NS1和NS2上都遵循这些说明。

  • 安装BIND所需的软件包。
sudo apt-get install bind9
  • 启动BIND服务以启用域名查找。
sudo service bind9 start

建立网域

我们将为所需的域创建第一个区域文件。区域文件将包含我们域名的名称记录。如果我们愿意的话,这是一个简单的数据库,其中包含IP地址的名称,而使用任何文本编辑器都可以轻松地对其进行修改。

为使事情变得容易,我们将复制一个模板。

  • 登录到主服务器NS1.
  • 通过复制现有模板来创建新的区域文件。
sudo cp /etc/bind/db.empty /etc/bind/db.theitroad.test
  • 在文本编辑器(如Nano)中打开新的区域文件。
sudo nano /etc/bind/db.theitroad.test

区域文件应类似于以下示例。

; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL    86400
@       IN      SOA     localhost. root.localhost. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                          86400 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
  • 修改文件以匹配我们环境的配置。我们需要为域名设置"启动授权服务器"(SOA),主名称服务器,管理员的电子邮件地址,名称服务器(ns1)的名称服务器记录(NS)以及以下地址的地址记录:名称服务器(ns1)。
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL    86400
@       IN      SOA     ns1.theitroad.test. admin.theitroad.test. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                          86400 )       ; Negative Cache TTL
;
@       IN      NS      ns1.theitroad.test.
@       IN      NS      ns2.theitroad.test.

ns1     IN      A        172.30.0.60
ns2     IN      A        172.30.0.61
  • 现在,我们添加环境中计算机的地址记录(A)。
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL    86400
@       IN      SOA     ns1.theitroad.test. admin.theitroad.test. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                          86400 )       ; Negative Cache TTL
;
@       IN      NS      ns1.theitroad.test.
@       IN      NS      ns2.theitroad.test.

ns1     IN      A        172.30.0.60
ns2     IN      A        172.30.0.61

desktop01     IN     A     172.30.0.200
desktop02     IN     A     172.30.0.201
desktop03     IN     A     172.30.0.202
desktop04     IN     A     172.30.0.203

fileserver01     IN     A     172.30.0.100
fileserver02     IN     A     172.30.0.101

mailserver01     IN     A     172.30.0.102
  • 将更改保存到文件并退出文本编辑器。

将域添加到BIND

  • 在文本编辑器(例如Nano)中打开BIND配置文件。
sudo nano /etc/bind/named.conf
  • 将以下行添加到文件末尾。
zone "theitroad.test" {
        type master;
        file "/etc/bind/db.theitroad.test";
        allow-transfer { 172.30.0.61; };
};
类型
指定名称服务器类型Master或者Slave
区域数据库文件的位置
按IP地址指定允许哪些服务器下载区域文件
  • 保存更改并退出文本编辑器。
  • 指示BIND加载我们的新域。
sudo service bind9 reload

配置DNS服务器自行查询

为了让域名服务器返回查询,它必须能够查询自己。为此,我们将修改其客户端DNS设置。

  • 在文本编辑器中打开resolv.conf文件。
sudo nano /etc/resolv.conf
  • 对其进行修改,使其包含以下几行。
nameserver 172.30.0.60
search theitroad.test
名称服务器
设置要查询的DNS服务器的IP地址。我们可以添加尽可能多的名称服务器条目,因为域有DNS服务器
“搜索”选项用于将定义的域名添加到所有单标签查找中任何包含未添加域名的计算机名的查找。例如,desktop01. 这样我们就不必键入完整的完全限定域名desktop01. theitroad.test.
  • 保存更改并退出文本编辑器。
  • 通过使用完全限定的域名对在域中注册的计算机执行ping操作,以测试名称解析。
ping desktop01.theitroad.test
  • 测试名称解析的另一种方法是使用Dig工具。它返回有关查找的更详细的结果。
dig desktop01.theitroad.test
  • ``Dig''命令将返回以下结果,其中显示了问题,返回答案以及哪个DNS服务器给出了响应。
; <<>> DiG 9.9.3-rpz2+rl.13214.22-P2-Ubuntu-1:9.9.3.dfsg.P2-4ubuntu1.1 <<>> desktop01.theitroad.test
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 688
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;desktop01.theitroad.test.     IN      A

;; ANSWER SECTION:
desktop01.theitroad.test. 86400 IN     A       172.30.0.200

;; AUTHORITY SECTION:
theitroad.test.        86400   IN      NS      ns1.theitroad.test.

;; ADDITIONAL SECTION:
ns1.theitroad.test.    86400   IN      A       172.30.0.60

;; Query time: 1 msec
;; SERVER: 172.30.0.60#53(172.30.0.60)
;; WHEN: Fri Jan 17 23:28:17 CST 2014
;; MSG SIZE  rcvd: 104

配置辅助DNS服务器

  • 登录到辅助(从属)DNS服务器NS2.
  • 将绑定配置文件打开到文本编辑器中。
sudo nano /etc/bind/named.conf
  • 使用以下配置为我们的域区域添加区域条目。
zone "theitroad.test" {
        type slave;
        master { 172.30.0.60; };
        file "/etc/bind/db.theitroad.test";
};
  • 保存更改并退出文本编辑器。
  • 指示Bind重新加载它的配置文件。
sudo service bind9 reload
  • 我们的域不应下载到我们的辅助服务器。通过导航到Bind的配置文件中指定的位置来检查它是否退出。