共计 5131 个字符,预计需要花费 13 分钟才能阅读完成。
1.DNS 服务器简介
域名系统(英文:DomainName System,縮寫:DNS)是因特网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS 使用 TCP 和 UDP 端口 53。当前,对于每一级域名长度的限制是 63 个字符,域名总长度则不能超过 253 个字符。
在 dns 出现之前,我们把域名和 IP 的对照存放在 /etc/hosts 文件里边,但是随着 IP 的不断增大,使用文件存放显得不够了。而且不利于和其他的主机进行同步,DNS 应运而生。
DNS 的结构:他是利用树形目录的架构。将主机名的管理分配在不同层级的 DNS 服务器,让每一层的修改和查找都变得功能单一。
DNS 查询主机名的流程:
(1)先在本机有没有记录,没有的话向(.root)查询;
(2)向最顶层的. 查询;
(3)然后分层的查询,每次只查询它所对的下一层。
(4)查到之后记录缓存,并且将路径返回给用户。
注:在系统中我们可以通过 dig 命令进行路径追踪。
————————————– 分割线 ————————————–
CentOS 下源码安装 Bind 9.6.1 搭建 DNS 服务器 http://www.linuxidc.com/Linux/2014-06/103660.htm
使用 BIND 配置 DNS 服务器 — 初级篇 http://www.linuxidc.com/Linux/2013-05/84920.htm
BIND+DLZ+MySQL 智能 DNS 的正向解析和反向解析实现方法 http://www.linuxidc.com/Linux/2013-04/82527.htm
域名服务 BIND 构建与应用配置 http://www.linuxidc.com/Linux/2013-04/82111.htm
Ubuntu BIND9 泛域名解析配置 http://www.linuxidc.com/Linux/2013-03/81928.htm
CentOS 5.2 下安装 BIND9.6 http://www.linuxidc.com/Linux/2013-02/79889.htm
————————————– 分割线 ————————————–
工作流程如图所示:
2. 搭建 DNS 服务器
今天我们来自己搭建一个 DNS 服务器,这样的需求在公司的内部还是有的。
首先我们来查找安装 dns 的包有那些:
安装 dns 服务器:
开启服务后看到 dns 服务开启的端口号是 53:
接下来我们要修改配置文件提供相应的服务,这里我们为了安全期间,在 /var/named/chroot 的目录下修改配置文件,而不直接对 /etc/named 目录下的文件进行修改,两者是同步的,但是有一个约束条件,前者只有在 dns 开启成功的情况下才能使用!!!
我们在选项中关闭了 ipv6 的开放,而且允许任意用户使用。
主配置文件的最后两行分别是副配置文件和我们的 dns 加密文件:
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-07/104453p2.htm
(1)DNS 的正向解析:
我们依次来查看:
我们来设置自己的域名系统,上边的是模板,底下的我们指定了域名配置文件的名称,这个要自己创建,位置在 /var/named/chroot/var/named 下:
这个目录底下也有域名配置文件的模板,我们拷贝一份并进行设置:
这个是初始模样,请务必记住,并且和修改之后的进行对比:
修改之后的:
注意:这里的 @等于 example.com. 所以在最后两行,如果没有把域名补全的话,系统会把 @所代表的值添加到末尾,并且注意每个 com 后边还有一个点。
这个时候我们重启服务,并且查看火墙是否已经关闭:
服务端设置好之后,我们在另外一台机子上访问 dns 服务器。
首先要做的就是修改 ifcfg-eth0 文件里的 DNS1 参数为指定 DNS 服务器的 IP:192.168.2.100. 然后重新启动 network 服务:
重新启动 network:
我们追踪了一下,发现可以找到 www.example.com,并且 dns 服务器为 192.168.2.100 这就说明我么之前的 dns 服务器配置是没有问题的。
上述部分是 dns 服务器的正向解析,同时我们还知道 dns 具有反向解析的能力,那如何实现呢,当然还是要修改配置文件了,与正向解析的步骤差别不大。
1.DNS 服务器简介
域名系统(英文:DomainName System,縮寫:DNS)是因特网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS 使用 TCP 和 UDP 端口 53。当前,对于每一级域名长度的限制是 63 个字符,域名总长度则不能超过 253 个字符。
在 dns 出现之前,我们把域名和 IP 的对照存放在 /etc/hosts 文件里边,但是随着 IP 的不断增大,使用文件存放显得不够了。而且不利于和其他的主机进行同步,DNS 应运而生。
DNS 的结构:他是利用树形目录的架构。将主机名的管理分配在不同层级的 DNS 服务器,让每一层的修改和查找都变得功能单一。
DNS 查询主机名的流程:
(1)先在本机有没有记录,没有的话向(.root)查询;
(2)向最顶层的. 查询;
(3)然后分层的查询,每次只查询它所对的下一层。
(4)查到之后记录缓存,并且将路径返回给用户。
注:在系统中我们可以通过 dig 命令进行路径追踪。
————————————– 分割线 ————————————–
CentOS 下源码安装 Bind 9.6.1 搭建 DNS 服务器 http://www.linuxidc.com/Linux/2014-06/103660.htm
使用 BIND 配置 DNS 服务器 — 初级篇 http://www.linuxidc.com/Linux/2013-05/84920.htm
BIND+DLZ+MySQL 智能 DNS 的正向解析和反向解析实现方法 http://www.linuxidc.com/Linux/2013-04/82527.htm
域名服务 BIND 构建与应用配置 http://www.linuxidc.com/Linux/2013-04/82111.htm
Ubuntu BIND9 泛域名解析配置 http://www.linuxidc.com/Linux/2013-03/81928.htm
CentOS 5.2 下安装 BIND9.6 http://www.linuxidc.com/Linux/2013-02/79889.htm
————————————– 分割线 ————————————–
工作流程如图所示:
2. 搭建 DNS 服务器
今天我们来自己搭建一个 DNS 服务器,这样的需求在公司的内部还是有的。
首先我们来查找安装 dns 的包有那些:
安装 dns 服务器:
开启服务后看到 dns 服务开启的端口号是 53:
接下来我们要修改配置文件提供相应的服务,这里我们为了安全期间,在 /var/named/chroot 的目录下修改配置文件,而不直接对 /etc/named 目录下的文件进行修改,两者是同步的,但是有一个约束条件,前者只有在 dns 开启成功的情况下才能使用!!!
我们在选项中关闭了 ipv6 的开放,而且允许任意用户使用。
主配置文件的最后两行分别是副配置文件和我们的 dns 加密文件:
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-07/104453p2.htm
(2)DNS 的反向解析:
回到副配置文件中,在目录 /var/named/chroot/etc 下:
看到我们 IP 的书写格式了么,是的,既然是反向解析,IP 的书写顺序也是相反的,并且指定了配置文件:
跳转到配置文件目录,首先我们拷贝反向解析配置文件的模板,然后进行编辑:
这个是模板的格式:
我们修改之后的样子:
记住最后一行,它代表的意思是 192.168.2.200 所对应的域名是 ptr.example.com. 这个是我们等会检验配置是否正确的标准。
退出保存后重启 dns 服务:
回到客户机我们来反向解析一下 192.168.2.200 是什么域名:
小结:
如上所讲,dns 的正向解析和反向解析已经完成,但是这样的功能有点单一化,事实上它还有些不使用,比如说如何去同步的修改,如何和 dhcp 共同协作提供 ddns 的服务,这些我们在下节讲解。1. 本机和外网的解析
之前讨论了 DNS 的正向解析和反向解析,但有的时候我们想让 DNS 服务器对于服务器本机的解析和对于外网的解析是不同的。那就需要在主配置文件中对本机和外网进行不同的配置:
这个是主配置文件中对于本服务器的访问,并且副配置文件为 example.com.zone;(注意要注释的内容)。
这个是对于非本机的配置,并且副配置文件为 example.com.inter.
为了统一期间,把之前的副配置文件的策略注释掉。
然后我们创建外网的副配置文件并进行编辑:
这是我们外网副配置文件的设置,和内网不同的是 www.example.com 对应的 IP 是 192.168.2.160,而不是 192.168.2.150
重启服务后先用本机查看 www.example.com 所对应的 IP:
然后用非本机的查看 www.example.com 所对应的 IP:
注意:在给大家做实验的时候卡壳了,最后发现原因是防火墙没有刷掉,所以大家在测试的时候一定要注意关掉火墙。
在做下一个实验的时候我们要还原之前的设置!!
2. 辅助节点的 DNS
通常 DNS 服务器并不只是一个,我们会利用集群的思想,就是多个 DNS 服务器共同提供域名解析服务。这个时候我们需要其他的服务器作为 辅助节点,让主节点和辅助节点同步起来是我们的最后目标.
辅助节点的主配置文件修改:
其副配置文件的修改:
此时我们的配置文件不再 named 目录下,而是在 slave 目录下。
此时在主节点我们要添加一个信息,那就是指定辅助节点为我们刚才所设置的服务器:
当我们两个服务器同时开启服务之后,发现辅助节点的 slave 目录底下多出了 example.com.zone 文件,这就是同步所产生的。
此时我们修改辅助节点的 dns 为其本身:
我们并没有设置 example.com.zone 里边的信息,但是 dig 之后得到的 ip 和主服务器上设置的相同:
我们修改主服务器上的 example.com.zone 中的 A 记录 www.example.com 的 ip 为 192.168.2.151, 然后重启 named 服务,dig www.example.com 发现辅助节点的服务器的 IP 并没有修改:
主节点:
辅助节点:
虽然辅助节点也可以访问主节点的信息,但是没有做到同步啊。这是不行的。我们要让主辅助节点的 A 记录同步起来:
在主节点的配置文件中修改,添加同步信息:
增加参数 also-notify:
保存后重启服务:
并且我们要查看 selinux 的布尔值,如果不允许还要开启可以修改的权限:
完成后我们用辅助节点来增加 www.example.com 的 IP 信息:
发现是不被允许的,然后排查后发现原来是主节点的一个参数 allow-uodate 没有设置成辅助节点的 IP,添加它:
之后再增添 bbs.example.com:
修改成功了!
然后我们 dig 一下 bbs.example.com:
和我们添加的是相同的,说明已经做到了同步,其实我们还可以添加更多的节点,这样的话就可以提供功能更加强大的 DNS 服务。
小结:
上面看起来我们的 DNS 功能似乎已经不错了,但是显然在安全方面做的还不足,下节将会讲解加密后的修改 A 记录。这次的实验期间错误百出,说明自己在考虑问题方面还是思维不够缜密,这个习惯需要加强。下节再进行讲解。