Linux-DNS

DNS域名解析服务

1.DNS介绍

DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

域名解析
复制代码
域名对应ip
www.baidu.com.这个域名--对应IP---183.232.231.174

2.域名的分层结构

  • 任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。域名可以划分为各个子域,子域还可以继续划分为子域的子域,这样就形成了顶级域、主域名、子域名等。关于域名层次结构如下图:
域名分层举例
复制代码
比如:www.aliyun.com.
​
-  DNS里面顶层是: "." 表示根域 ( 一共有十三台根服务器)
- “.com”是顶级域名;分类:职能:com域,.org域(非营利机构),edu域名(教育)国家:.cn ,.us ,
- “aliyun.com”是主域名(二级域),主要指企页名;
- “example.aliyun.com”是子域名(也可称为托管三级域名);
- “www.example.aliyun.com”是子域名的子域(也可称为托管四级域名)。

3.DNS的分层结构

  • 域名是分层结构,域名DNS服务器也是对应的层级结构。有了域名结构,还需要有域名DNS服务器去解析域名,且是需要由遍及全世界的域名DNS服务器去解析,域名DNS服务器实际上就是装有域名系统的主机。域名解析过程涉及4个DNS服务器,分别如下:
复制代码
每个层的域名上都有自己的域名服务器,最顶层的是根域名服务器
每一级域名服务器都知道下级域名服务器的IP地址,以便于一级一级向下查询

4.DNS 解析过程

复制代码
下面的示例则概述了本地域名服务器没有缓存的情况下,DNS查询所需的8个步骤:
​
1.用户在Web浏览器中输入网址"www.example.com"并回车,查询进入网络。浏览器先检查自身缓存中是否解析过该域名对应的ip地址,如果浏览器有缓存,解析结束;如果浏览器没有缓存,那么就检查操作系统的hosts文件(称为本地解析,如windows就是C:\Windows\System32\drivers\etc\hosts文件,linux在/etc/hosts文件中配置),如果命中域名解析结束。如果没有命中域名解析,查询会由DNS解析器进行接收
2. DNS解析器通过递归查询,向根域名服务器发起查询请求,要求返回顶级域名的地址。
3. 根域名服务器开启迭代查询方法,根据请求地址的前缀向DNS解析器返回顶级域名服务器(TLD)的IP地址列表。
4. DNS解析器向顶级域名服务器(.com TLD)发送查询报文。
5. 顶级域名服务器(.com TLD)接收请求后,根据域名地址把权威域名服务器的IP地址(example.com)返回给DNS解析器。
6. DNS解析器向(example.com)权威域名服务器发送查询。
7. (example.com)权威域名服务器将主机IP地址返回给DNS解析器。
8. DNS解析器使用查询到的IP地址响应web浏览器
​
一旦DNS查询的8个步骤返回了example.com的IP地址,浏览器能够请求网页了
​
9. 浏览器向IP地址发出HTTP请求
10. 该IP处的web服务器返回要在浏览器中呈现的网页

5.DNS术语

1、递归查询
复制代码
是指DNS服务器在收到客户端发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器(DNS递归解析器)本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户。( 根服务器不会开递归查询。会开迭代查询)
2、迭代查询
复制代码
是指DNS服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。
3、TTL
复制代码
英文全称Time To Live ,这个值是告诉本地域名服务器,域名解析结果可缓存的最长时间,缓存时间到期后本地域名服务器则会删除该解析记录的数据,删除之后,如有用户请求域名,则会重新进行递归查询/迭代查询的过程。
4、TLD Server
复制代码
英文全称Top-level domains Server,指顶级域名服务器。
5、DNS Resolver
复制代码
指本地域名服务器(DNS解析器),它是DNS查找中的第一站,是负责处理发出初始请求的DNS服务器。运营商ISP分配的DNS、谷歌8.8.8.8等都属于DNS Resolver。
6、Root Server
复制代码
指根域名服务器,当本地域名服务器在本地查询不到解析结果时,则第一步会向它进行查询,并获取顶级域名服务器的IP地址。

DNS 记录类型

复制代码
DNS支持A、CNAME、AAAA、NS等记录类型
记录类型   功能描述 
A         ipv4记录,支持将域名映射到ipv4的地址使用(设置子域名并指向到目标主机地) AAAA      ipv6记录,支持将域名映射到ipv6的地址使用(正向解析:将域名转换为ip地址) 
CNAME     别名记录, 用于映射DNS域名的别名 
NS        解析服务器记录,支持将子域名委托给其他DNS服务商解析

DNS 客户端检测工具

1.dig

Domain Information Groper

复制代码
域名查询工具(其他还有如ping),可以用来测试域名系统工作是否正常。
功能与 nslookup 类似,建议使用 dig 来取代 nslookup
复制代码
[root@localhost ~]# yum install bind-utils -y  #安装dig命令(包括host、nslookup)
[root@localhost ~]# dig  www.baidu.com         #解析域名对应的IP地址等信息
​
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7_8.6 <<>> www.baidu.com
;; global options: +cmd
​
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65304
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
​
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 4096
;; QUESTION SECTION:                          #展示查询信息
;www.baidu.com.                 IN      A
​
;; ANSWER SECTION:
www.baidu.com.          5       IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       5       IN      A       183.232.231.172
www.a.shifen.com.       5       IN      A       183.232.231.174
​
;; Query time: 8 msec
;; SERVER: 192.168.153.2#53(192.168.153.2)
;; WHEN: 三 8月 05 06:45:14 CST 2020
;; MSG SIZE  rcvd: 101
复制代码
HEADER(标题):显示查询的内容有哪些,
QUESTION SECTION:展示发起的DNS请求参数。其中A表示我们默认查询A类型的记录。
ANSWER SECTION:这一部分展示DNS服务的响应流程。
IN:代表类别为IP协议,即Internet
1.www.baidu.com 通过 CNAME 映射到 www.a.shifen.com,但是无法直接访问 www.a.shifen.com 。
2.CNAME (CanonicalName)记录,(alias from one domain name to another)通常称别名指向
2.host

解析域名对应的IP地址和别名等信息

复制代码
​[root@linux-server ~]# yum install -y bind-utils-9.11.4-16.P2.el7_8.3.x86_64 
                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        #安装host命令
复制代码
[root@localhost ~]# host www.baidu.com  #解析主机名对应的IP地址,测试域名是否正常工作
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 183.232.231.172
www.a.shifen.com has address 183.232.231.174

配置DNS方式:

1.本机解析
复制代码
本机解析:/etc/hosts    默认先使用本机解析
[root@linux-server ~]# vim /etc/hosts  #本机解析文件---添加如下内容
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.246.160 www.soso666.cn
        #表示:cn域下面有一个soso666,soso666下面有一子域名www。仅供本地解析
2.使用本地DNS服务器解析
复制代码
DNS: domain name service 
客户端设置(指定)DNS
[root@linux-server ~]# vim /etc/resolv.conf  #本地dns配置文件
# Generated by NetworkManager
search localdomain
nameserver 192.168.246.2
nameserver 114.114.114.114  #新添加
3.修改网卡配置文件定义DNS
相关推荐
HPC_fac1305206781615 分钟前
以科学计算为切入点:剖析英伟达服务器过热难题
服务器·人工智能·深度学习·机器学习·计算机视觉·数据挖掘·gpu算力
yaoxin5211231 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin1 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip
sinat_384241095 小时前
使用 npm 安装 Electron 作为开发依赖
服务器
朝九晚五ฺ6 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习
自由的dream6 小时前
Linux的桌面
linux
xiaozhiwise6 小时前
Makefile 之 自动化变量
linux
Kkooe7 小时前
GitLab|数据迁移
运维·服务器·git
久醉不在酒7 小时前
MySQL数据库运维及集群搭建
运维·数据库·mysql