概述
简易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
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31560876/viewspace-2564023/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31560876/viewspace-2564023/
最后
以上就是眯眯眼太阳为你收集整理的简易DNS服务器的全部内容,希望文章能够帮你解决简易DNS服务器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复