域名管理系统DNS(Domain Name System)是域名解析服务器的意思,应用层协议,是互联网的一项服务。它在互联网的作用是:把域名转换成网络可以识别的ip地址,在通过IP地址访问主机。 种由文字组成的名称,显而易见要更容易记忆。
负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
具有唯一性
当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
3)存域名服务器:
只提供域名解析结果的缓存功能 目的在于提高查询速度和效率,但没有域名数据库。
它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。
4)转发域名服务器:
负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。
http://www.sina.com.cn.
主机名 子域 二级域 顶级域 根域
类型 | 原理 |
---|---|
根域 | 位于树状结构最顶层,用"."表示 |
顶级域 | 一般代表一种类型的组织机构或国家地区;如.net(网络供应商)、.com(工商企业)、.org(团体组织)、.edu(教育机构)、.gov(政府部门)、.cn(中国国家域名) |
二级域 | 用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家部门统一管理 |
子域 | 二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名 |
主机 | 主机位于域名空间最下层,就是一台具体的计算机 |
一级域名 | |
---|---|
.com | (工商企业) |
.net | 网络供应商 |
.edu | (教育机构) |
.cn | 中国国家域名 |
.org | 团体组织 |
.gov | 政府部门 |
二级域名 | |
---|---|
.net | .cn |
.edu. | cn |
.com. | cn |
三级域名 |
---|
ina.com.cn |
.pku.edu.cn |
主机名 |
---|
tts9 |
tts6 |
www |
先查本机的缓存记录
查询hosts文件
查询dns域名服务器,交给dns域名服务器处理以上过程成为递归查询:我要一个答案你直接会给我结果
这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
name: 当前区域的名字,例如"kiro.com."
value: 有多部分组成
注意:
当前区域的主DNS服务器的正向解析,也可以使用当前区域的名字
当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换
例如:admin.kiro.com
主从服务区域传输相关定义以及否定的答案的统一的TTL
范例:
$TTL 1D
@ IN SOA master.kiro.com. admin.kiro.com (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如: ns.kgc.org.
注意:
相邻的两个资源记录的name相同时,后续的可省略
对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
一个区域可以有多个NS记录
范例:
master IN NS kiro.com.
master IN NS kiro.com.
name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
注意:
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的
优先级;数字越小优先级越高
对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
范例:
MX 10 mail1.kiro.com
MX 20 mail2.kiro.com
mail A 192.168.61.50
name: 某主机的域名解析,例如:www.kiro.com
value:主机名对应主机的IP地址
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
范例:
www.kiro.com. IN A 1.1.1.1
www.kiro.com. IN A 2.2.2.2
www.kiro.com. IN A 3.3.3.3
www.kiro.com. IN A 4.4.4.4
* IN A 5.5.5.5
#代表泛域名
@ IN A 6.6.6.6
#代表不需要名字
name: IP,有特定格式,把IP地址反过来写,192.168.59.100,要写作100.59.168.192;而有特定后缀:in-addr.arpa.,所以完整写法为:100.59.168.192.in-addr.arpa. value: FQDN
name: 别名的FQDN value: 真正名字的FQDN
ftp.wlw.com. IN CNAME www.wlw.com
#systemctl stop firewalld.service //关闭防火墙
#setenforce 0 //关闭selinux
#yum install -y bind bind-utils //安装bind包
#rpm -qc bind //查看bind软件配置文件所在路径
/etc/logrotate.d/named
/etc/named.conf #修改主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones #修改区域配置文件
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost #配置区域数据文件
/var/named/named.loopback
[root@kiro named]# systemctl start named
修改主配置文件
#vim /etc/named.conf
12 options {
13 listen-on port 53 { any; }; ##端口监听
14 listen-on-v6 port 53 { ::1; };
15 directory "/var/named";
16 dump-file "/var/named/data/cache_dump.db";
17 statistics-file "/var/named/data/named_stats.txt";
18 memstatistics-file "/var/named/data/named_mem_stats.txt";
19 recursing-file "/var/named/data/named.recursing";
20 secroots-file "/var/named/data/named.secroots";
21 allow-query { any; }; ##允许访问权限
[root@kiro named]# rndc reload //刷新服务
# vim named.rfc1912.zones
13 zone "kiro.com" IN {
14 type master; ##服务器类型:主服务器
15 file "kiro.com.zone"; ##给数据库文件定义名字
16 allow-update { none; };
17 };
[root@localhost named]# rndc reload //刷新服务
[root@kiro etc]# cd /var/named/
[root@localhost named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves ##都可以拿来做模板
[root@kiro named]# cp -a named.localhost kiro.com.zone ##-a才有root权限
[root@kiro named]# ls
data named.ca named.localhost kiro.com.zone
dynamic named.empty named.loopback slaves
[root@kiro named]# vim kiro.com.zone
$TTL 1D ##1 day 的生命周期
@ IN SOA kiro.com. admin.kiro.com. ( ##管理员kiro的邮箱
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS kiro.com.
A 192.168.61.100 ##本机ip
AAAA ::1
MX 10 mail.kiro.com.
mail A 192.168.100.200
web A 192.168.100.201
ftp A 192.168.100.202
[root@localhost named]# rndc reload //刷新服务
-----将服务器的dns指定到本机IP-----
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.61.100
[root@localhost ~]#systemctl restart network
[root@localhost ~]# cat /etc/resolv.conf
# vim named.rfc1912.zones
52 zone "61.168.192.in-addr.arpa" IN {
53 type master;
54 file "kiro1.com.zone";
55 allow-update { none; };
56 };
57
[root@kiro named]# rndc reload //刷新服务
[root@Kiro named]# cp -p kiro.com.zone kiro1.com.zone ##复制正向解析文件
[root@Kiro named]# vim kiro1.com.zone ##修改配置文件
$TTL 1D
@ IN SOA kiro.com. admin.kiro.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS kiro.com.
master IN A 192.168.61.100 ##本机ip
100 IN PTR www.kiro.com. ##192.168.61.100指向www.kiro.com
[root@localhost named]# rndc reload //刷新服务
反向文件配置的验证 [root@localhost named]# host 192.168.68.100
100.68.168.192.in-addr.arpa domain name pointer www.oyyy1.com. [root@localhost named]# host 192.168.68.99
99.68.168.192.in-addr.arpa domain name pointer ftp.oyyy1.com.
沿用上面的配置环境,需要的东西已经配制出来了:
1.将我们前2和3配置的服务器作为主服务器,只要把kiro.com.zone区域数据文件中的配置简化以下就好
2.重新打开一台虚拟机作为从服务器配置:
1)安装bind服务,并且关闭防火墙和增强功能(selinux)
[root@pxw kiro]# yum install bind bind-utils -y
[root@pxw kiro]# systemctl stop firewalld.service
[root@pxw kiro]# setenforce 0
2)/etc/name.conf 修改主配置文件,注释掉以下两行
// listen-on port 53 { 127.0.0.1; };
// allow-query { localhost; };
3)/etc/named.rfc1912.zones 添加从服务器配置文件
zone "kiro.com" IN {
type slave; ##从区域类型
file "slaves/kiro.com.zone"; ##文件在/var/named/slaves下
masters { 192.168.61.100; }; ##申明主服务器的ip地址
};
4)验证:在从服务器上
[root@pxw slaves]# dig www.kiro.com @192.168.61.110 ##从服务器的ip地址
5)主服务器修改一下内容:
[root@Kiro named]# vim /var/named/kiro.com.zone
www IN A 192.168.61.100 ##更改为192.168.61.101
[root@Kiro named]# host www.kiro.com
www.kiro.com has address 192.168.61.100 ##此时服务器解析出来还是之前的ip
6)在主服务器中配置从服务器后立刻可以获取到修改后的地址
[root@Kiro named]# vim /var/named/kiro.com.zone
1 ; serial
slave IN A 192.168.61.110
4) 验证一下:从服务器上
5)在主服务器中原本的192.168.61.100修改为192.168.61.101
将此背景设置为紫色:#FF00FF |