DNS域名解析

203 阅读5分钟

DNS介绍

域名系统(英文:Domain Name System,缩写:DNS),在OSI中的第7层应用层;它是让我们日常生活中经常使用的域名转换成难记的ip地址的程序,而这项工作被称之为域名解析,域名解析需要专门的域名解析服务器来完成,而且整个过程是完全自动进行的。

简单来说就是:把域名转换成网络可以识别的ip地址,再通过IP地址访问主机。 这种由文字组成的名称,显而易见要更容易记忆。

端口号

DNS它使用的端口号是:
TCP和UDP各自的53端口
TCP的53端口用于连接DNS
UDP的53端口用于解析DNS

DNS系统解析

  • 正向解析:根据域名查找对应的IP地址
  • 反向解析:根据IP地址查找对应的域名

域名的结构

image.png

根域:

位于域名空间最顶层,一般用一个 “.” 表示

顶级域:

一般代表一种类型的组织机构或国家地区—(称呼为一级域和顶级域都行):

一级域说明
.com工商企业
.gov政府部门
.edu教育机构
.net网络供应商

国家级顶级域

顶级域
.cnchina 中国域
.jp日本域
.uk英国
.us美国

二级域:

用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,

二级域说明
.com.cn中国商业组织
.edu.cn中国教育机构
.net.cn中国运营商

子域:

二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名

子域说明
pku.edu.cn北京大学
qinghua.edu.cn清华大学

主机:

主机位于域名空间最下层,就是一台具体的计算机, 如 www、mail都是具体的计算机名字

主机
www
mail
news

DNS服务器类型:

(1)主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

(2)从域名服务器:当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。

(3)缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。

(4)转发域名服务器:负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。

DNS的查询方式(递归查询和迭代查询)

递归查询
  • 主机向本地域名服务器的查询一般都是采用递归查询。
  • 如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。在域名服务器查询期间,客户机将完全处于等待状态。
  • 因此,递归查询只会返回两种信息:要么是所要查询的IP地址,要么是查询失败。
迭代查询
  • 本地域名服务器向根域名服务器的查询是迭代查询。
  • 当根域名服务器收到本地域名服务器发出的迭代查询请求报文后,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。下一个服务器收到请求后也是如此,要么返回IP,要么告诉本地域名服务器下一步去找谁。 即本地域名服务器按照提示的指引依次查询, 直到返回查询的结果为止 。
递归查询和迭代查询的特点:
  • 递归查询:主机只发出一次请求,要求对方给出最终结果。返回的结果只有两种:查询成功或查询失败。
  • 迭代查询:主机需要发起多次请求,返回的是所需IP地址或最佳查询地址。

实验

正面解析:

所需的命令

systemctl stop firewalld
setenforce 0

image.png

vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
cat /etc/resolv.conf
DNS1=192.168.50.110

image.png image.png

yum install bind -y
rpm -qc bind

image.png image.png

vim /etc/named.conf
any
any
systemctl start named

image.png image.png

#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

image.png image.png image.png

named-checkzone qwq.com qwq.com.zone 
systemctl restart named
host www.qwq.com

image.png

反向解析

跟着正向加反向

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

image.png image.png image.png

主从复制

systemctl stop firewalld.service
setenforce 0
yum install bind -y

image.png


zone "qwq.com" IN {
        type slave;
        file "slave/qwq.com.zone";
        masters { 192.168.50.110; };
};


image.png

image.png

image.png