1. DNS介绍
1.1 什么是域名?
域名(Domain Name),简称域名、网域,是由一串用点作为分隔符隔开的一些字母数字组成的字符串。
作用是在互联网上标识一台计算机或计算机组的名称,标识计算机的电子方位。
IP地址记忆起来难记,没有记忆点,很麻烦,方便记忆发明了域名。
就像小时候的电话本一样用来一一对应的查询,哪一个域名对应哪一个IP。
域名是独一无二的,不可重复的特性。
1.2 什么是DNS?
域名系统(Domain Name System,缩写:DNS)是互联网的服务。作用是将域名与IP做记录以及查询的功能
域名解析是把域名指向网站空间IP地址,让人们通过注册域名可以方便记忆,访问网站。
IP地址记忆起来难记,没有记忆点,很麻烦,方便记忆发明了域名代替IP。
域名解析就是域名到IP的转换过程。域名的解析工作由DNS服务器完成。
- 正向解析:域名----->IP
- 反向解析:IP------>域名
1.3 域名的组成和分类
常见格式:www.baidu.com
完整格式:www.baidu.com.
.
:
- 根域,可省略不写。
- 域名的起始点,所有的域名都是建立在根域的之上的。
- 在全球有13台根域服务器(IPV4),现在IPV6的根域中国有4台(1台为根域,其他三台是辅根)
- IPV6的根域信息兼容IPV4的根域信息,而IPV4的根域信息不兼容 IPV6的根域信息。
- 有13台根域服务器中亚洲只有一台在日本,但是在中国我们有一个根域服务器的镜像根域。
- 更新时更新日本的,国内的去镜像更新就可以了。
- 全球有13台根域服务器,一个主根,十二台辅根。主根更新,辅根同步
com
:
- 顶级域,由ICANN组织指定和管理。
- 国家地区域:cn(中国)、hk(香港)、sg(新加坡)等。
- 通用顶级域:com(商业机构)、org(非营利组织)、edu(教育机构)等。
- 新的通用顶级域名:red(红色、热情)、top(顶级、高端)等。
baidu
:
- 二级域名(注册域),可由个人或组织申请注册。
WWW
:
- 三级域,服务器网站名代表。
主机名:sl.www.baidu.com. 中的sl
就是主机名,一般用来表示一台主机或主机组。
2. 域名解析过程
通过一次解析来解释:
- 首先查询自己的hosts文件,查看该文件中是否含有
www.kernel.org.
的解析记录,如果有解析记录,直接反回给浏览器。没有进行下一步。 - hosts中如果没有解析记录,客户端在继续本机内查询DNS的解析缓存,若有则直接反回给浏览器。没有进行下一步。
- 将请求发送给DNS服务器(UDP连接方式,工作压力不大)。首先在DNS解析库(权威性高)中查询相关的域名解析IP地址,如果没有查看缓存,有的话回复客户机,没有的话下一步。
- 这时DNS变为一个查询发起者,他的查询者是根域服务器,根域服务器只知道顶级域服务器(减少对根域的访问降低根域服务器的访问压力),找到了
org
域的服务器,将IP地址告诉了DNS服务器。 - DNS服务器通过
org
域的服务器的IP询问www.kernel.org.
的IP地址,顶级域知道二级域的IP地址,只知道kernel
这个域的IP地址。告诉了DNS服务器。 - DNS服务器通过
kernel
这个域的IP地址询问www.kernel.org.
的IP地址,二级域保存着三级域的ip地址,所以他知道www.kernel.org.
的IP地址,将它返回给DNS服务器,DNS服务器将结果告诉客户机,客户机就可以访问了。 - DNS服务器会把这次的解析记录保存在缓存里,然后保存在解析库中,下次再有人问,就会直接返回IP了。
3.分布式DNS服务器
1)分布式:同一个任务,由不同步骤完成的过程就叫分布式。
这个过程中,所有的服务器都是用来解析域名的,但是他们是解析域名的不同步骤,所以整体就是一个大的分布式DNS服务器。
2)负载均衡:将用户请求均衡的分配到多个功能相同的服务器上,任务分配。
多个相同的服务器处理相同的工作,减轻负载。
4.DNS软件信息
1)软件名称:
- bind
2)服务名称:
- named
3)软件端口:
- UDP 53 数据通信(接收用户的请求)
- TCP 53 数据同步 (DNS服务器之间的主从同步)
4)配置文件:
- 主配置文件:
/etc/named.conf
(保存服务器的运行参数)
[root@server ~]# vim /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; }; # 监听的本机的UDP53端口,后面是监听指定的网卡,这里指监听来自本机的请求,这里一般写为any(本机的所有网卡),也可以监听只听一个网段,也就是自己的某一个ip的网段,写这个ip。
listen-on-v6 port 53 { ::1; }; # ipv6也是使用UDP53端口,后面接回环网卡
directory "/var/named"; # 数据文件保存位置
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; }; # 设置允许访问服务器的IP,允许那些客户端访问,写客户端ip,可以写为any(所有用户)
recursion yes;
………………
}
include "/etc/named.rfc1912.zones"; # 主配置文件调用区域配置文件
- 区域配置文件:
/etc/named.rfc1912.zones
(服务器的区域配置文件,正反向区与定义信息)
[root@server ~]# vim /etc/named.rfc1912.zones
# 正向解析区域配置
zone "localhost.localdomain" IN { # 要进行解析的域,例:baidu.com
type master; # DNS服务器的身份类型(master\slave)
file "named.localhost"; # 区域配置文件名称(默认保存在/var/named/下)
allow-update { none; }; # 是否允许从服务器更新:(none拒绝更新)\(IP,允许这个IP更新)
};
zone "1.0.0.127.in-addr.arpa" IN { # 关于IP地址的反写,例如:1.2.3.4写为4.3.2.1,但是一般写为某一网段所以写为3.2.1
type master;
file "named.loopback";
allow-update { none; };
};
- 数据配置文件:
/var/named/xx.xx
(主机名与IP的对应解析关系,及主从同步信息)
5)/var/named/
目录下的文件:
[root@server ~]# cd /var/named/
[root@server named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
- named.localhost:正向解析配置文件
[root@server ~]# vim /var/named/named.localhost
$TTL 1D # 域名有效解析生存周期(一般指缓存时间)
@ IN SOA @ rname.invalid. (
# @代表域名本身 0 ; serial # 配置文件的版本(主从服务时使用,从服务器通过这个判断是否更新)
# SOA:起始授权记录(不用修改) 1D ; refresh # 更新频率(从服务器的查询周期)
# @ 后面写域,域后面加点rname.invalid. 1H ; retry # 更新失败的重试时间周期
1W ; expire # 从服务器一直无法同步,则之前同步的数据的有效期的时间
3H ) ; minimum # 缓存服务器查询不到主服务器,或从服务器请求时无法连接主服务器,从服务器上的缓存记录3小时失效
NS @ # NS 定义@为DNS服务器的域名
A 127.0.0.1 # A记录是用来将对应的域名执行IPV4解析记录
AAAA ::1 #AAAA 是用来将对应的域名执行IPV6解析记录
A: | 地址记录,用来指定域名的IPv4地址的记录 |
---|---|
CNAME: | 将域名指向另一个域名(域名别名),再由另一个域名提供IP地址,就需要添加CNAME记录 |
TXT: | 可以填写任何内容,长度255,反垃圾邮件 |
NS: | 域名服务器记录,必有 |
MX: | 搭建邮件服务器时,邮件交换记录 |
AAAA: | 地址记录,用来指定域名的IPv6地址的记录 |
PTR: | 反解记录 |
- named.loopback:反向解析配置文件
[root@server ~]# vim /var/named/named.loopback
# 与正向大致相同,只有最后一行来区别他是反向解析记录
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR localhost. # 反向解析记录
- named.ca文件是十三台根域服务器所在位置:
[root@server named]# vim named.ca
# 从a-m共13台根域服务器
;; ADDITIONAL SECTION:
a.root-servers.net. 3600000 IN A 198.41.0.4
a.root-servers.net. 3600000 IN AAAA 2001:503:ba3e::2:30
b.root-servers.net. 3600000 IN A 192.228.79.201
c.root-servers.net. 3600000 IN A 192.33.4.12
d.root-servers.net. 3600000 IN A 199.7.91.13
d.root-servers.net. 3600000 IN AAAA 2001:500:2d::d
e.root-servers.net. 3600000 IN A 192.203.230.10
f.root-servers.net. 3600000 IN A 192.5.5.241
f.root-servers.net. 3600000 IN AAAA 2001:500:2f::f
g.root-servers.net. 3600000 IN A 192.112.36.4
h.root-servers.net. 3600000 IN A 128.63.2.53
h.root-servers.net. 3600000 IN AAAA 2001:500:1::803f:235
i.root-servers.net. 3600000 IN A 192.36.148.17
i.root-servers.net. 3600000 IN AAAA 2001:7fe::53
j.root-servers.net. 3600000 IN A 192.58.128.30
j.root-servers.net. 3600000 IN AAAA 2001:503:c27::2:30
k.root-servers.net. 3600000 IN A 193.0.14.129
k.root-servers.net. 3600000 IN AAAA 2001:7fd::1
l.root-servers.net. 3600000 IN A 199.7.83.42
l.root-servers.net. 3600000 IN AAAA 2001:500:3::42
m.root-servers.net. 3600000 IN A 202.12.27.33
m.root-servers.net. 3600000 IN AAAA 2001:dc3::35
- slaves:主从服务器保存配置文件的位置