如何搭建简易DNS服务器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
简易DNS服务器
domain name server,dns协议,其实现软件主要是bind.bind软件由配置文件和区域数据文件组成。
区域数据库文件,主要是用来记录资源记录的。一行一行的数据。
资源记录类型(RR_TYPE)包括:
A A记录,记录FQDN–>IPv4
AAA A记录,记录FQDN–>IPv6
PTR PRT记录,反向解析,记录IP–>FQDN
NS NS记录,name server,记录DNS服务器本身的信息,后面跟A记录
SOA SOA记录,start of authity,第一条授权记录,有且只有一条,必须是第一条。
CNAME CNAME别名
MX
邮件记录
资源记录格式:
NAME [TTL] IN RR_TYPE VALUE
bjs.io 888640 IN A 192.168.122.3
bjs.io 888640 IN SOA bjs admin.bjs
SOA格式: NAME VALUE
name:dns服务器FQDN 管理员邮箱 版本序列号 刷新时间 重试时间 过期时间 否定回答时间
@ IN SOA ns1.bjs.io. dnsadmin.bjs.io. 201811201 1H 10M 5D 1D
注意:管理员邮箱中的@用.代替因为@在dns有特殊用途,版本序列号只能是10,超过10位会出错
NS:
name:当前区域名称
value
当前区域DNS服务器名称
比如:
bjs.com. 86400 IN NS ns1
bjs.com. 86400 IN NS ns2
MX:
name
当前区域名称
value
邮件交换器名称
baidu.com. IN MX 10 mx1.baidu.com.
baidu.com. IN MX 10 mx2.baidu.com.
A记录:
www.baidu.com. IN A 1.1.1.1
www.baidu.com. IN A 1.1.1.2
bbs.baidu.com. IN A 1.1.1.1
PTR
name:IP地址,有特定格式,IP反过来写,而且特定后缀
value FQDA
4.3.2.1.in-addr.arpa. IN PTR www.baidu.com.
CNAME
web.baidu.com. IN CNAME www.baidu.com.
注意 TTL可以全局定义
@表示当前区域名称
相邻两记录name相同时,可不写
MX,NS等类型的value为FQDN时,其后应该有A记录
dns是协议,bind是协议的实现程序
yum -y install bind
主配置文件
/etc/named.conf
可包含其他配置文件
全局配置段:
options{
listen-on port 53 { 192.168.136.4; };
allow-query { any; };
}
日志配置段
logging{…}
区域配置段
zone {…}
每句都;结尾,{左右必须有空格}
缓存服务器必须监听在能与外部通信的IP地址
检查配置文件语法错误
named-checkconf
解析库文件:
/var/named/目录下
一般名称为ZONE_NAME.zone
注意 1.一台DNS服务可以同时为多个区域提供服务
2.必须要有根区域解析库文件named.ca
3.还应该有两个本地区域文件localhost和127.0.0.1
正向:named.localhost
反向:named.loopback
配置解析一个正向区域:
1.定义区域
在主配置文件实现
zone "ZONE_NAME" IN {
type {master|slave|hint|forward};
file "ZONE_NAME.zone";
};
以bjs.io为列
zone "bjs.io" IN {
type master ;
file "bjs.io.zone";
};
2.建立区域文件
/var/named目录 下以bjs.io为列,其属组为named,权限为其他用户不可读
vi /var/named/bjs.io.zone
$TTL 1D
@ IN SOA ns1.bjs.io root.localdomain 2019011601 1H 10M 3D 1D
IN NS ns1
ns1 IN A 192.168.122.11
www IN A 192.168.122.3
www IN A 192.168.122.4
3.权限设定
chown .named bjs.io.zone
chmod o= bjs.io.zone
4.检查配置文件及区域文件
named-checkconf
named-checkzone bjs.io /var/named/bjs.io.zone
5.让服务重载配置文件
systemctl restart named
6.查看监听情况
ss -lnt
7.在其他服务器上将dns地址设为本服务器,然后测试
dig -t A www.bjs.io
dig -t NS bjs.io
配置解析一个反向区域:
1.定义区域
zone "122.168.192" IN {
type master;
file "122.168.192.in-addr.arpa";
};
2.建立区域文件
vi 122.168.192.in-addr.arpa
$TTL 1D
@ IN SOA ns1.bjs.io root.localdomain 2019011601 1H 10M 3D 1D
IN NS ns1.bjs.io.
11 IN PTR ns1.bjs.io.
3 IN PTR www.bjs.io.
4 IN PTR www.bjs.io.
3.权限设定
chown .named 122.168.192.in-addr.arpa
chmod o= 122.168.192.in-addr.arpa
4.检查配置文件及区域文件
named-checkconf
named-checkzone 122.168.192.in-addr.arpa /var/named/122.168.192.in-addr.arpa
5.让服务重载配置文件
systemctl reload named
6.查看监听情况
ss -lnt
7.在其他服务器上将dns地址设为本服务器,然后测试
dig -x 192.168.122.3
关于如何搭建简易DNS服务器问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/199480.html