CentOS 7搭建DNS服务

网域名称系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

搭建DNS服务器,就需要柏克莱大学发展出来的BIND (Berkeley Internet Name Domain)软件。可通过yum命令来安装:

[[email protected] ~]# yum install bind bind-libs bind-utils bind-chroot -y

上面比较重要的是那个 bind-chroot ,所谓的 chroot 代表的是“change toroot(根目录) ”的意思,root 代表的是根目录。早期的 bind 默认将程序启动在/var/named 当中,但是该程序可以在根目录下的其他目录到处转移,因此若 bind 的程序有问题时,则该程序会造成整个系统的危害。为避免这个问题, 所以我们将某个目录指定为 bind 程序的根目录,由于已经是根目录,所以 bind 便不能离开该目录,所以若该程序被攻击,最多也是在某个特定目录底下被破坏而已。

接下来设置DNS服务开机自启:

systemctl enable named-chroot named

设置完开机自启后需要配置named.conf文件[Link]。通过命令vim /etc/named.confnamed.conf修改:

options {
        listen-on port 53 { any; };           #此处127.0.0.1改为any,表示监听多个
        listen-on-v6 port 53 { ::1; };
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query { any; };                #此处localhost改为any,允许对任意用户开放

此段增加esxi.xyz域名的解析,具体解析规则在/var/named/a.com.zone里(如果不需要本地解析可以不做设置):

zone "esxi.xyz" IN {             #此处esxi.xyz根据自己要求修改
    type master;
    file "esxi.xyz.zone";        #此处esxi.xyz.zone根据自己要求修改
};

此段增加一个反向解析,即根据ip查域名:

zone "0.0.10.in-addr.arpa" IN {  #此处0.0.10.in-addr.arpa根据自己IP段修改
    type master;
    file "10.0.0.zone";          #此处10.0.0.zone根据自己IP段修改
};

使用命令vim /var/named/esxi.xyz.zone[Link]修改文件内容,请注意named用户有读的权限:

$TTL 1D
@       IN SOA @ root.esxi.xyz. (
                                     0 ; serial
                                     1D ; refresh
                                     1H ; retry
                                     1W ; expire
                                     3H ) ; minimum
        NS     @
www     A           10.0.0.102     #此处设置后www.esxi.xyz解析到10.0.0.102 IP地址
test    A           10.0.0.200     #此处设置后test.esxi.xyz解析到10.0.0.200 IP地址
        MX    10    mx.esxi.xyz.   #此处设置将esxi.xyz的mx记录为mx.esxi.xyz
        AAAA        ::1

使用命令vim /var/named/10.0.0.zone[Link]修改文件内容,请注意named用户有读的权限:

$TTL 86400
@       IN     SOA    localhost esxi.xyz. (
                       2017091223
                       2H
                       10M
                       7D
                       1D )
               IN      NS     localhost.
102            IN      PTR    www.esxi.xyz.         #此处设置后查询10.0.0.102得到域名www.esxi.xyz 
200            IN      PTR    test.esxi.xyz.        #此处设置后查询10.0.0.200得到域名test.esxi.xyz

最后使用命令systemctl start named-chroot重启DNS服务。

测试环境在windows下操作,在CMD界面下将系统DNS的IP地址配置为服务端系统IP地址,使用ipconfig/flushdns清除系统DNS缓存后输入nslookup查询 Internet域名信息:

[c:\~]$ nslookup
默认服务器:  test.esxi.xyz    
Address:  10.0.0.200
> www.esxi.xyz
服务器:  test.esxi.xyzAddress:  10.0.0.200
名称:    www.esxi.xyzAddress:  10.0.0.102
> 10.0.0.200
服务器:  test.esxi.xyzAddress:  10.0.0.200
名称:    test.esxi.xyzAddress:  10.0.0.200
> www.baidu.com
非权威应答:服务器:  test.esxi.xyz
Address:  10.0.0.200
名称:www.a.shifen.comAddresses:  58.217.200.37  58.217.200.39
Aliases:  www.baidu.com

测试通过。

点赞

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注