dns服务
dns的作用:地址解析 IP -> 域名(反向) 域名 -> IP(正向)
类型
主域名服务器
负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。
辅助域名服务器
当主域名服务器出现故障、关闭或负载过重时,辅助域名服务器作为主域名服务器的备份提供域名解析服务。辅助域名服务器中的区域文件中的数据是从另外的一台主域名服务器中复制过来的,是不可以修改的。
缓存域名服务器
从某个远程服务器取得每次域名服务器的查询回答,一旦取得一个答案就将它放在高速缓存中,以后查询相同的信息就用高速缓存中的数据回答,缓存域名服务器不是权威的域名服务器,因为它提供的信息都是间接信息。
转发域名服务器
负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。
--------------------------------------------------------------------------------------
搭建DNS服务器!
1、安装dns的程序包--bind Berkeley Internet Name Domain
yum install bind -y
rpm -ql bind
/etc/named.conf
/etc/named.rfc1912.zone
/etc/rndc
/etc/init.d/named
/var/named/name.ca
/var/named/named.localhost //正向解析库文件
/var/named/named.loopback //反向解析库文件
1、安装dns的程序包--bind Berkeley Internet Name Domain
yum install bind -y
rpm -ql bind
/etc/named.conf
/etc/named.rfc1912.zone
/etc/rndc
/etc/init.d/named
/var/named/name.ca
/var/named/named.localhost //正向解析库文件
/var/named/named.loopback //反向解析库文件
2、配置主配置文件
整个bind的程序都是由C语言开发,语法格式遵循c语言格式!
1、行尾必须加 ; 号
2、// 单行注释 /* 多行注释 */
整个bind的程序都是由C语言开发,语法格式遵循c语言格式!
1、行尾必须加 ; 号
2、// 单行注释 /* 多行注释 */
3、配置/etc/named.rfc1912.zones
zone "zone_name" IN {
type master;
file "对应库文件"; //授权的问题 chmod :named 文件
}
zone "IP.in-addr.arpa" IN { //ip一定要反过来写
type masker;
file "对应库文件";
}
zone "zone_name" IN {
type master;
file "对应库文件"; //授权的问题 chmod :named 文件
}
zone "IP.in-addr.arpa" IN { //ip一定要反过来写
type masker;
file "对应库文件";
}
4、配置/var/named/下面的解析库文件;
正向和反向
SOA SOA
NS NS
A PTR
正向和反向
SOA SOA
NS NS
A PTR
------------------------------------------------------------------------------------------
DNS:
域名解析 : 域名转换为IP地址一个过程; 方便人们更好的记忆网站;
域名解析 : 域名转换为IP地址一个过程; 方便人们更好的记忆网站;
早期的域名解析:
直接记忆IP地址;
|
网站逐渐增加,1、给取名 2、找地方记录下来; -- hosts 文件
C:WindowsSystem32driversetchosts
/etc/hosts 文件
|
网站逐渐增加(更加多了)
把解析工作交给专门的服务器去做解析;
IANA (所有的解析记录)
|
网站逐渐增加(更加多了)
创建分级结构,此时,IANA的根域名服务器不再直接为客户提供解析记录,而是转而将这个工作交给“小弟”
一级“小弟”,我们叫做顶级域名服务器;
早期的顶级域名服务,只有7个: .com .gov .org .net .mil .edu .int
随着时间推移:公开域名权限,分为三类:1、国家类 .cn 2、反向类 3、组织类
直接记忆IP地址;
|
网站逐渐增加,1、给取名 2、找地方记录下来; -- hosts 文件
C:WindowsSystem32driversetchosts
/etc/hosts 文件
|
网站逐渐增加(更加多了)
把解析工作交给专门的服务器去做解析;
IANA (所有的解析记录)
|
网站逐渐增加(更加多了)
创建分级结构,此时,IANA的根域名服务器不再直接为客户提供解析记录,而是转而将这个工作交给“小弟”
一级“小弟”,我们叫做顶级域名服务器;
早期的顶级域名服务,只有7个: .com .gov .org .net .mil .edu .int
随着时间推移:公开域名权限,分为三类:1、国家类 .cn 2、反向类 3、组织类
根域名服务器 -- . 13台根域名服务器 // /var/named/named.ca --> 指定了我们根域名服务器的位置;
域名如何进行查找的?
1、 本区域内查找域名
2、查找区域外的域名
递归 -- 一次查找,获得结果
迭代 -- 多次查找,获得结果
1、 本区域内查找域名
2、查找区域外的域名
递归 -- 一次查找,获得结果
迭代 -- 多次查找,获得结果
PC机器 迭代查找 只用去将 解析请求交给本地的DNS服务器即可;
本地的DNS服务器才会替代PC机器,去向互联网做迭代查找,先找根 再找顶级域名 最后找到公司域名;
本地的DNS服务器才会替代PC机器,去向互联网做迭代查找,先找根 再找顶级域名 最后找到公司域名;
3、缓存服务器;(转发器)
可以指定其他互联网DNS服务器为我们做解析;
DNS的分类:
1、主DNS服务器
解析库 -- SOA记录:(起始授权记录)
SOA记录中有一些列的时间:
1、序列号 serial 定义当前时间 -- 20190904 -- 每次修改,序列号要 加1 ;它可以出发解析库同步;
2、刷新时长 从服务器从主服务器同步解析库的时间间隔、多长时间同步一次
3、重试时长 从服务器没有同步成功,过多久再去同步一次
4、过期时长 试了多长时间以后,确认主服务器down机 【特性:主挂了,从服务器也无法提供解析服务】
5、最小TTL值 所有域名解析记录最小的生存时间(DNS记录的缓存时间)
2、从DNS服务器
3、缓存服务器 -- 默认安装bind的程序,启动起来就是一个缓存服务器
4、转发器 -- 不做解析,将解析请求转发给指定的DNS服务器即可;
可以指定其他互联网DNS服务器为我们做解析;
DNS的分类:
1、主DNS服务器
解析库 -- SOA记录:(起始授权记录)
SOA记录中有一些列的时间:
1、序列号 serial 定义当前时间 -- 20190904 -- 每次修改,序列号要 加1 ;它可以出发解析库同步;
2、刷新时长 从服务器从主服务器同步解析库的时间间隔、多长时间同步一次
3、重试时长 从服务器没有同步成功,过多久再去同步一次
4、过期时长 试了多长时间以后,确认主服务器down机 【特性:主挂了,从服务器也无法提供解析服务】
5、最小TTL值 所有域名解析记录最小的生存时间(DNS记录的缓存时间)
2、从DNS服务器
3、缓存服务器 -- 默认安装bind的程序,启动起来就是一个缓存服务器
4、转发器 -- 不做解析,将解析请求转发给指定的DNS服务器即可;
DNS服务器提供的端口:53(UDP TCP)
UDP53 -- 查询请求以及恢复
TCP53 -- 主从同步
*DNS解析库:*(RR)
被解析条目 TTL值 IN 解析条目类型 解析后条目
【注意:TTL值通过 首行写$的方式,定义了,所以我们看到的都没有写TTL;】
解析条目类型:
SOA 起始授权记录
NS 域名服务 -- 指定DNS服务器
【注意:如果当前条目所指定的被解析条目与上一条相同,即可省略;】
【衍生:如果同一个被解析条目对应了两个服务器,而这个两个服务器提供同样的应用,就可以实现基于DNS的负载均衡】
A iPv4的正向解析记录
【注意:被解析记录是支持模糊查找的,比如 * 代表所有字符,一般配置在最后;】
PTR 反向解析记录
AAAA ipv6的正向解析记录
MX 邮件服务器的解析记录
有一个优先级要定义,范围为 0-99 越低越优先;邮件的解析记录和NS一样,要写A记录;
test.com. IN MX 10 mail1.test.com.
IN MX 20 mail2.test.com.
mail1 IN A 192.168.94.188
mail2 IN A 192.168.94.189
CNAME 别名记录
将原有的一个DNS记录转换另外一个名字;
在当今互联网上使用广泛;
UDP53 -- 查询请求以及恢复
TCP53 -- 主从同步
*DNS解析库:*(RR)
被解析条目 TTL值 IN 解析条目类型 解析后条目
【注意:TTL值通过 首行写$的方式,定义了,所以我们看到的都没有写TTL;】
解析条目类型:
SOA 起始授权记录
NS 域名服务 -- 指定DNS服务器
【注意:如果当前条目所指定的被解析条目与上一条相同,即可省略;】
【衍生:如果同一个被解析条目对应了两个服务器,而这个两个服务器提供同样的应用,就可以实现基于DNS的负载均衡】
A iPv4的正向解析记录
【注意:被解析记录是支持模糊查找的,比如 * 代表所有字符,一般配置在最后;】
PTR 反向解析记录
AAAA ipv6的正向解析记录
MX 邮件服务器的解析记录
有一个优先级要定义,范围为 0-99 越低越优先;邮件的解析记录和NS一样,要写A记录;
test.com. IN MX 10 mail1.test.com.
IN MX 20 mail2.test.com.
mail1 IN A 192.168.94.188
mail2 IN A 192.168.94.189
CNAME 别名记录
将原有的一个DNS记录转换另外一个名字;
在当今互联网上使用广泛;
DNS主备
主服务器 -- master ;
从服务器 -- slave ;
通过TCP53号端口进行数据同步;
主服务器 -- master ;
从服务器 -- slave ;
通过TCP53号端口进行数据同步;
从服务器要不要去配置 -- 解析库(RR)(不需要)
从服务器,需要指定主(master);
只需要指定:
从服务器上 named.rfc1912.zones
zone "test.com" IN {
type slave;
masters { 192.168.94.128; };
file "slaves/test.zone";
};
zone "94.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.94.128; };
file "slaves/192.168.94.zone";
};
从服务器,需要指定主(master);
只需要指定:
从服务器上 named.rfc1912.zones
zone "test.com" IN {
type slave;
masters { 192.168.94.128; };
file "slaves/test.zone";
};
zone "94.168.192.in-addr.arpa" IN {
type slave;
masters { 192.168.94.128; };
file "slaves/192.168.94.zone";
};
【注意:主的 TCP 53号端口一定要放开;】
测试:主卦了 备挂不挂?
测试:主卦了 备挂不挂?
子域授权
原理:基于DNS服务器的分层结构;
我们下一级的域环境需要父域进行授权;
父域进入本级的库文件中,去指定子域的NS服务器即可,注意,对应的A记录也要写上;
配置:
父域DNS:
xny.test.com IN NS ns.xny.test.com
ns.xny.test.com IN A 192.168.94.130
子域DNS:
正常配置即可;
原理:基于DNS服务器的分层结构;
我们下一级的域环境需要父域进行授权;
父域进入本级的库文件中,去指定子域的NS服务器即可,注意,对应的A记录也要写上;
配置:
父域DNS:
xny.test.com IN NS ns.xny.test.com
ns.xny.test.com IN A 192.168.94.130
子域DNS:
正常配置即可;
测试:
转发器
/etc/named.conf
option {
forward { first | only }; //first --> 第一次找转发服务器指定的DNS,如果被指定的DNS无法做解析,就可以自己解析
//only --> 只依靠指定的DNS服务器;
forwarders;
};
转发器
/etc/named.conf
option {
forward { first | only }; //first --> 第一次找转发服务器指定的DNS,如果被指定的DNS无法做解析,就可以自己解析
//only --> 只依靠指定的DNS服务器;
forwarders;
};
基于zone区域:
zone "test.com" IN {
type forward;
forward { first | only };
forwarders;
};
zone "test.com" IN {
type forward;
forward { first | only };
forwarders;
};