bind DNS服务配置
2017-06-14 14:59
260 查看
bind DNS服务配置
域名
当你访问网站时,你可以输入FQDN(Fully Qualified Domain Name,完全限定域名)或类似likegeeks.com或www.google.com的域名。在域名中从右到左的两个点之间的每个文本依次是顶级域组件、二级域组件和三级域组件。所以,com是顶级域名组件; google是二级域组件; 而www是三级域名组件。
实际上,当你访问任何网站时,浏览器会默认在域的末尾添加一个不可见的点,因此该域将像www.google.com.一样。 该点被称为根域。
该点是由一大堆称为根域名服务器的特殊服务器管理的。截止这篇文章发表前,世界上有13个根域名服务器。 你可以把他们当成互联网的大脑 – 如果他们失效了,世界上就没有互联网了。
DNS服务器的类型
一共有三种DNS服务器。主DNS服务器
这些服务器上存放了特定域名的配置文件,并且基于此权威地规定了特定域名的地址。主DNS服务器知道全部在它管辖范围的主机和子域名的地址。辅助DNS服务器
这些服务器作为主DNS服务器的备份,也承担一定负载。主服务器知道辅助DNS服务器的存在,并且会向他们推送更新。缓存DNS服务器
这些服务器上不存放特定域名的配置文件。当客户端请求缓存服务器来解析域名时,该服务器将首先检查其本地缓存。如果找不到匹配项便会询问主服务器。接着这条响应将被缓存起来。您也可以轻松地将自己的系统用作缓存服务器。hosts文件
在没有DNS服务器的情况下,每个系统在本地网络上保留其主机名和相应IP地址列表的副本是合理的——特别是在没有互联网连接的小型站点上。在Linux系统中,这个列表就是/etc/hosts文件。 即使你没有DNS服务器或DNS服务器不可用,该文件也可以使用/etc/hosts文件将IP地址转换为名称。
也许你已经有DNS服务器了,但你也会因为其它原因而想保留这个文件。例如,系统可能需要在向外部查询之前在本地查找DNS服务器的IP地址;这意味着系统在查询DNS服务器之前先检索该文件,如果查找到对应的域则无须查询任何DNS服务器直接将其转换为IP地址。
目录结构
主配置文件/etc/named.conf
DNS数据库目录
/var/named/
DNS地址配置文件
/etc/resolv.conf
hosts文件
/etc/hosts|hosts配置文件
/etc/host.conf(开启关闭hosts功能)
安装
yum install bind //DNS服务端
配置
这个服务使用 /etc/named.conf 作为配置文件。BIND 在那个文件中使用像下面这样的一些语句:
options: 用于全局 BIND 配置。 logging: 配置哪些需要记录,哪些需要忽略。我推荐你看看 Linux syslog server。 zone: 定义 DNS 区域。 include: 在 named.conf 中包含另一个文件。
在 options 语句中可以看到 BIND 的工作目录在 /var/named。
zone 语句可用于定义 DNS 区域,比如域名 google.com,它包含子域名 mail.google.com 和 analytics.google.com。
上述三个域名(主域名和子域名) 都有一个由 zone 语句定义的区域。
1、修改主配置文件/etc/named.conf,开启DNS服务的监听
vi /etc/named.conf listen-on port 53 {any;}; //将监听的地址改为any,监听本机的所有地址。 listen-on-v6 port 53 {any;}; allow-query { any; }; //改为any,允许任意主机查询
2、定义一个主域服务器(创建正向解析区域)
可以在named.conf 中添加,也可以添加在其他辅配置文件中,然后在named.conf中包含进来
例如:
include "/etc/named.rfc1912.zones";
vi /etc/named.conf //编辑辅配置文件 zone "xx.com" IN { type master; file "xx.com.zone"; allow-update { none; }; }; //添加正向解析区域 xx.com //使用file 参数指出该区域的数据库文件(默认/var/named目录下,根据主配置文件的参数决定)
3、创建正向解析数据库文件,并修改权限。
cd /var/named cp named.localhost xx.com.zone chmod 644 xx.com.zone //使named用户拥有读取的权限 vi xx.com.zone //编辑数据库文件,设置解析条目 NS @ A 192.168.128.133 AAAA ::1 www A 192.168.128.133 //格式如图所示。 A 对应 IPv4的解析条目 AAAA对应IPv6的解析条目。 //注意不可缺少 A 192.168.128.133 AAAA ::1 不能缺少没有主机名的这两项,否则会造成服务无法启动。逆向解析数据库也是如此。
4、修改本机DNS地址,重启named服务,测试本机DNS服务是否有效。
vi /etc/resolvconf //修改本机的DNS地址,改为127.0.0.1或本机IP service named restart //重启DNS服务 nslookup www.xx.com
5、创建逆向解析条目和数据库
vi /etc/named.rfc1912.zones //编辑DNS辅配置文件 //参考末尾的逆向解析条目,创建自己的逆向解析。 zone "128.168.192.in-addr.arpa" IN { type master; file "128.168.192.zone"; allow-update { none; }; }; //注意格式问题,比如IP地址点分十进制的格式,每个十进制为一个整体,倒着书写,且不写主机位。 //“.in-addr.arpa” 为逆向解析的固定格式 不能写错。 //数据库文件可以新建,也可以使用正向的数据库,在其中添加逆向的条目。 //注意权限问题。 cd /var/named cp named.localhost 128.168.192.zone chmod 644 128.168.192.zone
6、编辑逆向解析条目
vi 128.168.192.zone 133 PTR www.xx.com. //此为逆向解析的条目格式 不能缺少没有主机名的这两项,否则会造成服务无法启动。逆向解析数据库也是如此。
7、重启服务,进行检测
service named restart [root@conling named]# nslookup 192.168.128.133 Server: 192.168.128.133 Address: 192.168.128.133#53 133.128.168.192.in-addr.arpa name = www.alibaba.com.
DNS记录类型
数据库文件包含诸如SOA、NS、A、PTR、MX、CNAME和TXT在内的记录类型。A和AAAA: Address Records(地址记录)
A记录用于提供从主机名到IP地址的映射support IN A 192.168.1.5。
如果你在地址为192.168.1.5上的support.example.com上有一个主机,你可以像上面的例子那样输入。
请注意,我们所写的主机并没有句号。
PTR: Pointer Records(指针记录)
PTR记录用于执行反向名称解析,允许某人指定IP地址然后找出对应的主机名。
这与A记录的功能相反:192.168.1.5 IN PTR support.example.com.
在这里,我们键入具有点号的完整主机名。
MX: Mail Exchange Records(邮件交换记录)
MX记录告诉其他站点关于你所在域的邮件服务器地址:example.com. IN MX 10 mail.
当然这个域以句号结束。数字10是邮件服务器的重要性标志,如果你拥有多个邮件服务器,其中较小的数字不太重要。
CNAME: Canonical Name Records(权威名称记录)
CNAME记录允许你为主机名创建别名。当你想提供一个易于记住的名称时,这很有用。
假设某个站点具有一个主机名为whatever-bignameis.example.com的Web服务器,并且由于系统是Web服务器,因此可以为主机创建一个名为www的CNAME记录或者别名。
你可以创建名为www.example.com的域名创建CNAME记录:
whatever-bignameis IN A 192.168.1.5 www IN CNAME whatever-bignameis
第一行通知DNS服务器关于别名的位置。第二行创建一个指向www的别名。
TXT记录
您可以将任何信息存储到TXT记录中,例如你的联系方式或者你希望人们在查询DNS服务器时可获得的任意其他信息。
你可以这样保存TXT记录:example.com. IN TXT ” YOUR INFO GOES HERE”.
此外,RP记录被创建为对host联系信息的显式容器:example.com. IN RP mail.example.com. example.com。
DNS TTL值
在/etc/named.conf文件的顶部,这里有一个$TTL条目。
该条目告诉BIND每个单独记录的TTL值(time to live,生存时间值)。
它是以秒为单位的数值,比如14,400秒(4个小时),因此DNS服务器最多缓存你的域文件4个小时,之后就会向你的DNS服务器重新查询。
你可以降低这个值,但是默认值通常是合理的。除非你知道你正在做什么。
Host命令
在你成功添加或修改记录后,可以使用host命令查看主机是否正确解析。host命令允许你将主机名解析为IP地址:$ host example.com。
此外,你可以执行反向查找:$ host 192.168.1.5。
你可以this在此篇文章中查看更多关于host和dig命令的信息。
Whois命令
whois命令用于确定域名的所有权及其拥有者的e-mail地址和联系电话:$ whois example.com.Rndc命令
rndc工具可用于安全地管理名称服务器,因为与服务器的所有通信均通过数字签名进行身份验证。此工具用于控制名称服务器和调试问题。 你可以通过以下方式检查Linux DNS服务器的状态:$ rndc status。
此外,如果你更改任何域(zone)文件,您可以重新加载服务,而无须重启命名服务:$ rndc reload example.com。
在这里,我们重新加载example.com域文件。 你可以重新加载所有域:$ rndc reload。
或者你可以添加新的域或更改服务的配置。 你可以重新加载配置,如下所示:
$ rndc reconfig。
Linux DNS解析器
我们已经知道Linux DNS服务器的工作原理以及如何配置它。另一部分当然是与DNS服务器交互的(正在与DNS服务器通信以将主机名解析为IP地址的)客户端。在Linux上,解析器位于DNS的客户端。要配置解析器,可以检查/etc/resolv.conf这个配置文件。
在基于Debian的发行版上,可以查看/etc/resolvconf/resolv.conf.d/目录。
/etc/resolv.conf文件中包含客户端用于获取其本地DNS服务器地址所需的信息。
第一个表示默认搜索域,第二个表示主机名称服务器(nameserver)的IP地址。
名称服务器行告诉解析器哪个名称服务器可使用。 只要你的BIND服务正在运行,你就可以使用自己的DNS服务器。
错误整理:
一、逆向解析条目中 指定的解析出来的名字需要带上‘.’
比如 254 PTR xx.com. // PTR是指针 ‘.’
如果不携带‘.’ 则会出现
[root@conling named]# nslookup 192.168.128.133 Server: 192.168.128.133 Address: 192.168.128.133#53 133.128.168.192.in-addr.arpa name = www.xx.com.128.168.192.in-addr.arpa. //解析出来的域名不能正确显示(‘.’的作用)
二、逆向解析区域条目名错误
zone "128.168.192.in-addr.arpa" IN { type master; file "xx.com.zone"; allow-update { none; }; }; //上面为正确的格式 //将第一行改为 zone "128.168.192.in-addr-arpa" IN { //‘.’改为‘-’ 在查询的时候就无法匹配到该条目 [root@conling named]# nslookup 192.168.128.133 Server: 192.168.128.133 Address: 192.168.128.133#53 ** server can't find 133.128.168.192.in-addr.arpa.: NXDOMAIN
三、修改了默认端口号
主配置文件/etc/named.conf中可以修改监听的端口号,将53修改为其他端口会导致无法解析。 nslookup 192.168.128.133 ;; connection timed out; trying next origin ;; connection timed out; no servers could be reached //连接超时
四、对数据库文件没有读取的权限
1、数据库文件的权限: -rw-r--r--. 1 root root 201 6月 14 12:09 xx.com.zone 2、查询验证无误 [root@conling named]# nslookup www.xx.com Server: 192.168.128.133 Address: 192.168.128.133#53 Name: www.xx.com Address: 192.168.128.133 3、修改权限,取消named的读取 -rw-------. 1 root root 201 6月 14 12:09 xx.com.zone 4、查询验证 [root@conling named]# nslookup www.xx.com Server: 192.168.128.133 Address: 192.168.128.133#53 ** server can't find www.xx.com: NXDOMAIN
五、解析的条目不存在
//在数据库中不存在匹配的条目时: [root@conling named]# nslookup 192.168.128.13 Server: 192.168.128.133 Address: 192.168.128.133#53 ** server can't find 13.128.168.192.in-addr.arpa.: NXDOMAIN
相关文章推荐
- DNS服务(bind9)配置过程
- 总结之:CentOS6.5 DNS服务BIND配置、正反向解析、主从及压力测试(3) 推荐
- 【Linux】DNS服务-BIND基础配置(二)
- BIND服务基础及DNS Master服务器配置步骤
- 第十八天 DNS服务原理及bind详细配置
- 【Linux】DNS服务-BIND从服务器、缓存服务器及转发服务器配置(三)
- Linux-DNS服务-BIND配置
- 总结之:CentOS6.5 DNS服务BIND配置、正反向解析、主从及压力测试(2) 推荐
- DNS之一:DNS服务原理与bind配置详解
- 在CentOS6.2下安装DNS服务软件Bind并快速配置简单实例
- DNS Bind服务配置解析
- DNS域名服务 BIND (中)——BIND配置文件
- 总结之:CentOS6.5 DNS服务BIND配置、正反向解析、主从及压力测试(1)
- CentOS下使用Bind配置DNS服务
- 企业级DNS服务集群架构设计及BIND部署配置实战 推荐
- CentOS7 DNS 服务 bind9.94 主从安装与配置
- SELinux 环境下网络服务设置 , 配置 Apache 、Samba、NFS、vsftp 、MySQL、Bind DNS
- DNS服务之bind安装配置与应用
- 总结之:CentOS6.5 DNS服务BIND配置、正反向解析、主从及压力测试(4)
- BIND服务基础及DNS Master服务器配置步骤