CentOS7 搭建DNS服务器,实现局域网域名访问 - 6relation

时间:2024-02-22 10:35:41

CentOS7 搭建DNS服务器,实现局域网域名访问

主要参考文档:http://www.cnblogs.com/wangenzhi/p/6308957.html;

本文只是用到其中一小部分,仅搭建一个主DNS并只添加正向解析,即域名--》IP;

 

1、安装bind

Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server;bind是dns协议的一种实现;其运行后的程序名为named;

切换成root用户后,直接敲一下命令:

yum -y install bind

注意:bind程序安装完成后,默认即可作为缓存服务器使用(不负责域解析);如果没有专门负责解析的区域,直接可启动服务;我们这里是需要一个主DNS服务器,所以需要继续设置

2、配置解析一个正向区域

注意:以enzhi.com为列;

2.1、定义区域

在主配置文件中实现或主配置文件辅助配置文件中实现:/etc/named.conf或者/etc/named.rfc1912.zones

最后添加如下

格式

zone "ZONE_NAME" IN {
  type {master|slave|hint|forward};
  file "ZONE_NAME.zone";
};

示例

[root@Bj-1-141 ~]# vim /etc/named.rfc1912.zones
# 在对下面添加
zone "enzhi.com." IN {
    type master;
    file "enzhi.com.zone";
};

注意:区域名字即为域名;

2.2、建立区域数据文件

主要记录为A或 AAAA;在/var/named/目录下建立区域数据文件;

1、创建正向区域文件

[root@Bj-1-141 ~]# cd /var/named/
[root@Bj-1-141 named]# vim enzhi.com.zone
$TTL 3600
$ORIGIN enzhi.com.
@       IN      SOA     enzhi.com.  admin.enzhi.com. (
                2
                1H
                10M
                3D
                1D)

        IN      NS      ns1.enzhi.com.
        IN      MX  10  mail.enzhi.com.
ns1     IN      A       192.168.1.141
mail    IN      A       192.168.1.142
www     IN      A       192.168.1.143
bbs     IN      A       192.168.1.144
bbs     IN      A       192.168.1.145

注意:

$TTL 3600:表示定义默认TTL值,所以在下面的所有资源记录都不用在写TTL值;
$ORIGIN enzhi.com.:作用是在资源记录中像"ns1.enzhi.com."就可以简写为ns1,会继承$ORIGIN后面定义的域名;

2、修改区域文件的权限及属组

# 修改区域文件的属组为named用户
[root@Bj-1-141 named]# chown :named enzhi.com.zone
# 修改区域文件的权限为640
[root@Bj-1-141 named]# chmod 640 enzhi.com.zone

3、检查配置文件和区域文件是否有语法错误

[root@Bj-1-141 named]# named-checkconf
[root@Bj-1-141 named]# named-checkzone enzhi.com. /var/named/enzhi.com.zone
zone enzhi.com/IN: loaded serial 2
OK

特别提醒:①留意“.”号,不能少;

     ②每次更改(新增或者删除)以上文件内容,都要变更那个serial号码(括号中第一个数字),通常+1即可;

     ③正反向解析文件的属组一定要改为named;

 

2.3、让服务器重载配置文件和区域文件(如果此时服务未启动,reload直接改为start)

[root@Bj-1-141 ~]# rndc reload
server reload successful
# 或者执行
[root@Bj-1-141 ~]# systemctl reload  named.service

2.4、测试

1、解析www.enzhi.com的A记录;

[root@Bj-1-141 ~]# dig -t A www.enzhi.com @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.enzhi.com @192.168.1.141
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40269
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.enzhi.com.         IN  A

;; ANSWER SECTION:
www.enzhi.com.      3600    IN  A   192.168.1.143

;; AUTHORITY SECTION:
enzhi.com.      3600    IN  NS  ns1.enzhi.com.

;; ADDITIONAL SECTION:
ns1.enzhi.com.      3600    IN  A   192.168.1.141

;; Query time: 0 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 19:06:12 CST 2017
;; MSG SIZE  rcvd: 92

2、解析enzhi.com的NS记录;

[root@Bj-1-141 ~]# dig -t NS enzhi.com @192.168.1.141

; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t NS enzhi.com @192.168.1.141
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27289
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;enzhi.com.         IN  NS

;; ANSWER SECTION:
enzhi.com.      3600    IN  NS  ns1.enzhi.com.

;; ADDITIONAL SECTION:
ns1.enzhi.com.      3600    IN  A   192.168.1.141

;; Query time: 34 msec
;; SERVER: 192.168.1.141#53(192.168.1.141)
;; WHEN: 四 1月 19 19:08:53 CST 2017
;; MSG SIZE  rcvd: 72

至此,正向解析主DNS搭建完毕,不过目前的配置应该还只是本机可以访问,需要对配置文件做一下更改,然后重启named服务局域网才能访问:

vim /etc/named.conf,然后瞎改配置文件(红色为添加,其中IP为当前服务器IP);

listen-on port 53 { 127.0.0.1; 192.168.1.141; };

 

//dnssec-enable yes;

//dnssec-validation yes;

//allow-query { localhost; };

 

然后执行systemctl restart named.service,后面把局域网自己的DNS设置为该服务器IP,同时需要防火墙开放DNS默认的53端口,即可进行正向解析!

 

备注:由于DNS服务器的特殊性,最好设置为静态IP,具体设置方式及开放DNS端口请参考CentOS7如何设置静态IP及开放DNS端口的随笔,此处不再继续说明。