DNS介绍
域名系统(英文:Domain Name System,缩写:DNS),在OSI中的第7层应用层;它是让我们日常生活中经常使用的域名转换成难记的ip地址的程序,而这项工作被称之为域名解析,域名解析需要专门的域名解析服务器来完成,而且整个过程是完全自动进行的。
简单来说就是:把域名转换成网络可以识别的ip地址,再通过IP地址访问主机。 这种由文字组成的名称,显而易见要更容易记忆。
端口号
DNS它使用的端口号是:
TCP和UDP各自的53端口
TCP的53端口用于连接DNS
UDP的53端口用于解析DNS
DNS系统解析
- 正向解析:根据域名查找对应的IP地址
- 反向解析:根据IP地址查找对应的域名
域名的结构
根域:
位于域名空间最顶层,一般用一个 “.” 表示
顶级域:
一般代表一种类型的组织机构或国家地区—(称呼为一级域和顶级域都行):
| 一级域 | 说明 |
|---|---|
| .com | 工商企业 |
| .gov | 政府部门 |
| .edu | 教育机构 |
| .net | 网络供应商 |
国家级顶级域
| 顶级域 | |
|---|---|
| .cn | china 中国域 |
| .jp | 日本域 |
| .uk | 英国 |
| .us | 美国 |
二级域:
用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,
| 二级域 | 说明 |
|---|---|
| .com.cn | 中国商业组织 |
| .edu.cn | 中国教育机构 |
| .net.cn | 中国运营商 |
子域:
二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名
| 子域 | 说明 |
|---|---|
| pku.edu.cn | 北京大学 |
| qinghua.edu.cn | 清华大学 |
主机:
主机位于域名空间最下层,就是一台具体的计算机, 如 www、mail都是具体的计算机名字
| 主机 |
|---|
| www |
| news |
DNS服务器类型:
(1)主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
(2)从域名服务器:当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
(3)缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。
(4)转发域名服务器:负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。
DNS的查询方式(递归查询和迭代查询)
递归查询
- 主机向本地域名服务器的查询一般都是采用递归查询。
- 如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。在域名服务器查询期间,客户机将完全处于等待状态。
- 因此,递归查询只会返回两种信息:要么是所要查询的IP地址,要么是查询失败。
迭代查询
- 本地域名服务器向根域名服务器的查询是迭代查询。
- 当根域名服务器收到本地域名服务器发出的迭代查询请求报文后,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。下一个服务器收到请求后也是如此,要么返回IP,要么告诉本地域名服务器下一步去找谁。 即本地域名服务器按照提示的指引依次查询, 直到返回查询的结果为止 。
递归查询和迭代查询的特点:
- 递归查询:主机只发出一次请求,要求对方给出最终结果。返回的结果只有两种:查询成功或查询失败。
- 迭代查询:主机需要发起多次请求,返回的是所需IP地址或最佳查询地址。
实验
正面解析:
所需的命令
systemctl stop firewalld
setenforce 0
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
cat /etc/resolv.conf
DNS1=192.168.50.110
yum install bind -y
rpm -qc bind
vim /etc/named.conf
any
any
systemctl start named
#vim /etc/named.rfc1912.zones
zone "qwq.com" IN {
type master;
file "qwq.com.zone";
allow-update { none; };
};
cd /var/named/
ls
cp -p named.localhost qwq.com.zone
vim qwq.com.zone
NS awa
A 192.168.50.110
www IN A 192.168.50.120
ftp IN A 192.168.50.130
* IN A 192.168.50.150
mail IN A 192.168.50.140
named-checkzone qwq.com qwq.com.zone
systemctl restart named
host www.qwq.com
反向解析
跟着正向加反向
vim /etc/named.rfc1912.zones
zone "50.168.192.in-addr.arpa" IN {
type master;
file "ava.com.zone.local";
allow-update { none; };
};
cp -p ava.com.zone ava.com.zone.local
vim ava.com.zone.local
A 192.168.50.110
200 IN PTR www.ava.com.
201 IN PTR ftp.ava.com.
systemctl restart named
host 192.168.50.30
主从复制
systemctl stop firewalld.service
setenforce 0
yum install bind -y
zone "qwq.com" IN {
type slave;
file "slave/qwq.com.zone";
masters { 192.168.50.110; };
};