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端口的随笔,此处不再继续说明。