Centos 搭建DNS服务学习记录
DNS的作用:
正向解析:根据主机名称(域名)查找对应的IP地址
反向解析:根据IP查找对应的主机域名
DNS的工作模式:
递归查询:客户端只发一次请求,要求对方给出最终结果
迭代查询:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表
服务名:named
端口号:53
主配置文件:/etc/named.conf
保存DNS解析记录的数据文件位于:/var/named
配置文件
listen-on 监听的端口 ip地址
directory 数据文件存放的目录(解析文件)
dump-file 缓存备份的文件
allow-query 允许哪些客户端到主机上进行查询,可以设置any 对所有网段进行解析
(最重要的设置)
之前由于做实验便是因为防火墙、SELinux没关,卡了很长时间,这次在做实验前先将其关掉
# 查看当前selinux的运行状态
getenforce
执行状态,那就先关掉,我这里直接永久给关掉,省的之后每次实验还得手动关
#重启命令
reboot
OK,这样就永久关掉了,如果不想永久关可以使用暂时命令
暂时关闭SELinux
setenforce 0
关闭防火墙
#关闭防火墙
systemctl stop firewalld
#关闭开机启动
systemctl disable firewalld
#查看防火墙状态
systemctl status firewalld
也可以
iptables -F
yum -y install bind
查询一下其他文件目录
rpm -ql bind
在开始编辑之前,要先了解一下其中主配置文件中参数的作用
listen-on | 设置named服务器监听端口及IP地址 |
---|---|
directory | 设置区域数据库文件的默认存放地址 |
dump-file | 缓存备份的文件 |
allow-query | 允许DNS查询客户端,可以设置any 对所有网段进行解析 |
vi /etc/named.conf
修改主配置文件只需要修改这个两个地方即可,一个添加成自己服务器的IP地址一个添加成any即可
检查一下看主配置文件是否有错,如果没有回显则说明正常
named-checkconf /etc/named.conf
同样也要了解一下区域配置文件中的一些参数
#DNS正向解析
zone "localdomain" IN { //定义正向DNS区域
type master; //定义区域类型
file "localdomain.zone"; //设置对应的正向区域地址数据库文件
allow-update { none; }; //设置允许动态更新的客户端地址(none为禁止)
};
#DNS反向解析
zone "0.0.127.in-addr.arpa" IN { //设置反向DNS区域
type master;
file "named.local";
allow-update { none; };
};
区域配置文件没有模板,所以在修改前先备份一下,以防万一改错了
[root@localhost etc]# cp named.rfc1912.zones named.rfc1912.zones.bak
vi /etc/named.rfc1912.zones
数据文件位于/var/named
,里面有正向解析和反向解析的模板文件
接下来用正向解析模板文件拷贝成lemon.zone
文件,必须跟你的区域文件填写的名称保持一致,否则访问不了,除此之外,还要注意拷贝的时候要加上参数-p
,否则拷贝出的lemon.zone
文件的属组是root,其他人访问时会没有权限,所以这里用这样的命令:
cp -p named.localhost lemon.zone
$TTL 1D
@ IN SOA lemon.com. rname.invalid. (#完全域名及管理员邮箱地址
0 ; serial
1D ; refresh# 主从刷新时间
1H ; retry# 主从通讯失败后重试间隔
1W ; expire# 缓存过期时间
3H ) ; minimum# 没有TTL定义时的最小生存周期
NS dns.lemon.com.//定义域名服务器,切记域名后面的“.”,表示这是一个FQDN
MX 5 mail.lemon.com.
dns A 192.168.186.129//主机记录
mail A 192.168.186.130
www A 192.168.186.131
ftp CNAME www
* A 192.168.1.100
编辑好之后,检查一下看看是否报错
named-checkzone /var/named/lemon.zone /var/named/lemon.zone
出现OK即可,上面的只是提示名字问题,不影响后面的操作
接下来拷贝反向解析模板文件
[root@localhost named]# cp -p named.empty lemon.blog
systemctl start named.service
或
systemctl restart named
如果报错了,回去看看你在是不是这个地方没有加分号
一开始就是这一点坑了我
以下是我遇到的情况,能测试通的可以不参考这个:
(
注意最后要修改一下本机默认的DNS服务器
/etc/resolv.conf
更改成你当前主机设置的DNS服务器ip地址
)
iptables -F
setenforce 0
vi /etc/sysconfig/network-scripts/ifcfg-ens33
添加上DNS服务器
service network restart
进行测试
nslookup #安装 nslookup yum -y install bind-utils
反向解析一下就行了,真的快自闭了,不过每次自闭前都弄好了,恶心!!!
DNS递归查询与迭代查询