主服务器配置:
准备工作:
#关闭防火墙
[root@192 ~]# systemctl stop firewalld
#关闭selinux
[root@192 ~]# setenforce 0
#查看selinux状态
[root@192 ~]# getenforce
Permissive
#安装bind包
[root@192 ~]# yum install bind -y
#查询软件包下的文件
/etc/named.conf #主配置文件
/var/named/slaves #从dns服务器文件
配置DNS正向解析:
#编辑bind主配置文件:
options {
listen-on port 53 { 192.168.88.133; }; #定义监听端口,指定相应的IP地址
directory "/var/named"; #定义数据文件目录
allow-query { any; }; #允许所有的主机进行查询
recursion yes; #开启递归查询
};
#定义区域:
zone "baidu.com" IN {
type master; #定义为master域名服务器
file "baidu"; #正向解析资源记录文件
}
#编辑正向记录文件
$TTL 1D
@ IN SOA @ admin.admin.com. (
2024011700
1D
1H
3H
1D )
IN NS dns.baidu.com.
dns IN A 192.168.112.128
www IN A 192.168.112.111
a IN A 192.168.112.222
aaa IN CNAME a
#重启named服务
[root@192 ~]# systemctl restart named
正向解析测试:
#修改主机名
[root@192 ~]# hostname server
[root@192 ~]# bash
[root@server ~]#
#正向解析方法一:
#使用nslookup工具
[root@server ~]# nslookup
> server 192.168.112.128 #指定我们自己的DNS服务器
Default server: 192.168.112.128
Address: 192.168.112.128#53
> www.baidu.com #发起查询
Server: 192.168.112.128
Address: 192.168.112.128#53
Name: www.baidu.com
Address: 192.168.112.111
#正向解析方法二:
#编辑当前主机的DNS服务的地址
[root@server ~]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.112.128
#无需指定直接就解析出来了
[root@server ~]# nslookup www.baidu.com
Server: 192.168.112.128
Address: 192.168.112.128#53
Name: www.baidu.com
Address: 192.168.112.111
配置DNS反向解析:
#编辑bind主配置文件:
[root@server ~]# vim /etc/named.conf
#全面配置:
options {
listen-on port 53 { 192.168.112.128; }; #定义监听端口,指定相应的IP地址
directory "/var/named"; #定义数据文件目录
allow-query { any; }; #允许所有的主机进行查询
recursion yes; #开启递归查询
};
#定义区域:
#正向解析区域
zone "baidu.com" IN {
type master; #定义为master域名服务器
file "baidu"; #正向解析资源记录文件
};
#反向解析区域
zone "112.168.192.in-addr.arpa" IN{
type master; #定义为master域名服务器
file "128"; #反向解析资源记录文件
};
#编辑反向记录文件,反向域的ip是一个区段,不写主机位且反着写
[root@server ~]# vim /var/named/128
[root@server ~]# cat /var/named/128
$TTL 1D
@ IN SOA @ admin.admin.com. (
2024011701
1D
1H
3H
1D )
IN NS dns.baidu.com.
128 IN PTR dns.baidu.com.
111 IN PTR www.baidu.com.
222 IN PTR a.baidu.com.
222 IN PTR aaa.baidu.com.
#反解需要注意:主机名尽量使用完整的FQDN,即要写上“.”
#重启named服务
[root@server ~]# systemctl restart named
#反向解析查询方法一:
[root@server named]# nslookup
> server 192.168.112.128
Default server: 192.168.112.128
Address: 192.168.112.128#53
> 192.168.112.111
111.112.168.192.in-addr.arpa name = www.baidu.com.
#反向解析查询方法二:
#编辑当前主机的DNS服务的地址
[root@server ~]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.112.128
[root@server named]# nslookup 192.168.112.111
111.112.168.192.in-addr.arpa name = www.baidu.com.
从服务器配置:
#安装相关的包
[root@csa ~]# yum install bind -y
#关闭防火墙
[root@csa ~]# systemctl stop firewalld
[root@csa ~]# setenforce 0
#修改配置主文件
[root@csa ~]# vim /etc/named.conf
options {
listen-on port 53 { 192.168.137.129; };
directory "/var/named/slaves";
allow-query { any; };
};
zone "baidu.com" IN {
type slave;
file "slaves.baidu.zheng";
masters { 192.168.137.140; };
allow-notify { 192.168.137.140; };
};
zone "157.168.192.in-addr.arpa" IN {
type slave;
file "slaves.baidu.fan";
masters { 192.168.137.140; };
allow-notify { 192.168.137.140; };
};
#重启服务
[root@slave ~]# systemctl restart named
主DNS服务器配置(修改资源文件进行主从同步)
#在二配置的基础上,如资源记录文件有变(&号标记处,更新版本号),需编辑正反向解析资源记录文件
#1、正向解析
[root@192 ~]# vim /var/named/master.baidu
$TTL 1D
@ IN SOA @ admin.baidu.com. (
1 &此处版本号+1
1M
1M
3M
1M )
NS dns.baidu.com.
NS slave.baidu.com.
dns A 192.168.112.128
www A 192.168.112.111
ftp A 192.168.112.103
slave A 192.168.112.143
aaa A 192.168.112.101 #此处新增一条正向解析
w CNAME www
#2、反向解析
[root@192 ~]# vim /var/named/112
$TTL 1D
@ IN SOA @ admin.baidu.com. (
1 &此处版本号+1
1M
1M
3M
1M )
NS dns.baidu.com.
NS slave.baidu.com.
128 PTR dns.baidu.com.
111 PTR www.baidu.com.
102 PTR w.baidu.com.
103 PTR ftp.baidu.com.
143 PTR slave.baidu.com.
101 PTR aaa.baidu.com. #此处新增一条反向解析
#重启服务
[root@192 ~]# systemctl restart named
host (选项) (参数)
选项:
-a : 显示详细的DNS信息
-c<类型> : 指定查询类型,默认值为“IN”
-C : 查询指定主机的完整的SOA记录
-r : 在查询域名时,不使用递归的查询方式
-t<类型> : 指定查询的域名信息类型
-v : 显示指令执行的详细信息
-w : 如果域名系统服务器没有给出应答信息,则总是等待,直到域名服务器给出应答
-W<时间> : 指定域名查询最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令
-4 : 使用IPv4
-6 : 使用IPv6
dig 命令:
1,作用查询DNS包括NS记录,A记录,MX记录等相关信息的工具。
2,选项:
@<服务器地址>:指定进行域名解析的域名服务器;
-b<ip地址>:当主机具有多个IP地址,指定使用本机的哪个IP地址向域名服务器发送域名查询请求;
-f<文件名称>:指定dig以批处理的方式运行,指定的文件中保存着需要批处理查询的DNS任务信息;
-P:指定域名服务器所使用端口号;
-t<类型>:指定要查询的DNS数据类型;
-x<IP地址>:执行逆向域名查询;
-4:使用IPv4;
-6:使用IPv6;
-h:显示指令帮助信息。
主机:指定要查询域名主机;
查询类型:指定DNS查询的类型;
查询类:指定查询DNS的class;
查询选项:指定查询选项。
dig -t A www.baidu.com
dig -t A www.baidu.com +trace
正向解析文件资源记录(Resource Record,RR),常见的正解文件RR相关信息:
domain | IN | RR type | RR data |
---|---|---|---|
主机名. | IN | A | IPv4的IP地址 |
主机名. | IN | AAAA | IPv6的IP地址 |
域名. | IN | NS | 管理这个域名的服务器主机名字,即由哪一台主机去解析当 前所定义的域主机 |
域名. | IN | SOA起始授 权记录 | 管理这个域名的七个重要参数 |
域名. | IN | MX | 顺序数字,接收邮件的服务器主机名字 |
主机别 名. | IN | CNAME | 实际代表这个主机别名的主机名字 |
SOA主要是与区域有关,所以domain要写域名。而SOA后面会接七个参数,这七个参数的意义如下:
-
Master DNS服务器主机名:这个区域主要是哪台DNS作为Master的意思。
-
管理员的Email,发生问题可以联系这个管理员。由于@在数据库文件中有特殊含义,所以将用“.”代替@
-
序号(Serial),这个序号代表的是这个数数据库文件的新旧,序号越大代表越新。所以当你更改了数据库内容时,需要将这个数值放大。
-
更新频率(Refresh)定义slave多久向Master要求数据更新。
-
失败重新尝试时间(Retry),如果Slave无法对Master实现连接,那么在多长时间内,Slave会尝试重新连接到Master。
-
失效时间(Expire),如果一直尝试失败,持续连接到达这个设置值时限,那么Slave将不再继续尝试连接,并且尝试删除这份下载的zone file信息。
-
缓存时间(Minumum TTL),如果这个数据库zone file中,每条记录都没有写到TTL缓存时间的话,那么就以这个SOA的设置值为主。ttl的意思是当这笔记录被其他DNS服务器查询到后,这个记录会在对方DNS服务器的缓存中,保持多久时间。如果写了$TTL,则以该值为准。
时间单位:M(分钟),H(小时),D(天),W(周),默认是秒