IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> DNS总结+案例 -> 正文阅读

[网络协议]DNS总结+案例

DNS

DNS(Domain Name System)域名系统,DNS协议的一种开源实现,端口53,是UDP/TCP协议。

DNS在53端口上监听请求并提供响应的服务。出于性能的考虑,DNS查询请求用UDP协议交互并且每个请求的大小小于512字节,但是如果返回的请求大小大于512字节,交互双方会协商使用TCP协议。

1.因特网的域名结构:

(1)国家顶级域名:如cn(中国)、us(美国)、uk(英国)…

(2)通用顶级域名:com(公司企业)、net、org、int、gov、mil

(3)基础结构域名:arpa,用于反向域名解析,因此被称为反向域名。
在这里插入图片描述
两种查找方式:

递归 -----计算机只发送一次请求

迭代 -----计算机发送多次请求

2.域名解析过程:

1.在浏览器中输入域名(如www.qq.com),先看本地hosts文件中是否有该网址的映射关系,如果有,就调用这个IP地址映射,完成域名解析。

2.如果hosts中没有这个域名映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。

3.本地DNS解析器缓存中也没有该网址的映射关系,则查找本地DNS服务器,本地DNS收到查询,如果要查询的域名,包含在本地配置区域资源中,则返回一个权威解析结果给客户机,完成域名解析。

4.如果要查询的域名,不由本地DNS服务器区域解析,但服务器已经缓存了此网址的映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。

5.如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否进行转发)进行查询,如果未用转发模式,本地DNS就把请求发至根DNS,根DNS服务器收到请求后会判断这个域名(如.com)是谁来授权管理,并返回一个负责该顶级域名服务器的IP。本地DNS收到IP信息后,会联系负责.com域的这台服务器。这台服务器收到请求后,如果自己无法解析,就会找一个管理qq.com的DNS服务器地址给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。

6.如果用的转发模式,本地DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,就找根DNS或把请求转至上上级,以此循环。找到最后把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
在这里插入图片描述

解析方式:正向解析、反向解析

DNS 服务类型:

? 主DNS服务器(master):数据修改(接受用户请求返回数据)

? 辅助dns服务器(slave): 定期请求数据同步

? 缓存dns服务器(hint): 只缓存dns数据

? 转发服务器(forward):缓存服务器去掉缓存功能

DNS解析答案:

根据是否能够查询到想要的结果,可分为肯定答案否定答案

根据解析答案是否由直接负责的DNS服务器返回,可分为权威答案非权威答案

包名为bind 服务为named

反解析可应用在邮件管理

资源记录名称:(数据库中的每一个条目)

SOA(起始授权记录) 记录提供有关dns区域工作方式的信息 -----具体负责哪个区域的解析 (指定权威服务器)

这代表着master/salve相关的认证,授权资料。不论有没有设定master/salve的架构都需要设定好。

NS 标记dns服务器 将域名最终映射到哪一台主机(标记本地 dns服务器)

A (ipv4地址记录) 资源记录将主机名映射到ipv4地址。

CNAME (规范名称)记录域别名

MX 邮件交换记录 —标记邮件服务主机名

PTR指针记录 将IPV4 IPV6地址映射到主机名 (用于反向DNS

AAAA (IPV6 地址记录) 资源记录(四A记录)将主机名映射到ipv6地址。

/var/named/named.ca (数据文件----资源记录文件)

五种配置中定义的信息:

serial number: 序列号 定义当前使用的数据序列号 sn遵循“年+月+日+编号” ·

主和从的更新依据

refresh: 定义检查间隔时间 (上次和这次变化的时间)

retry: 重试时间 < 检查时间>

expire: 过期时间 (什么时候通过从服务器解析)

negative answer ttl: 否定答案的缓存时长 (没有指定生存期的数据可以保存在数据中的时间及TTL值)

时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒

案例一:正向解析

DNS包名为bind,服务名为named

1.编辑DNS主配置文件

#vim /etc/named.conf
options {
        listen-on port 53 { 192.168.220.129; };
        directory       "/var/named";
};

zone "openlab.com" IN {
        type master;
        file "named.openlab.com";
};
#vim /var/named/named.openlab.com
$TTL 1D
@       IN      SOA     @       admin.admin.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      www.openlab.com.
dns     IN      A       192.168.220.129
named   IN      A       192.168.220.121
www     IN      A       192.168.220.111
wwww    IN      CNAME   www
#vim /etc/resolv.conf
servername 192.168.220.129
###重新加载配置信息
#rndc reload
###测试
#nslookup www.baidu || dig -t NS openlab.com || ping www.openlab.com

案例二:反向解析

#vim /etc/named.conf
options {
        listen-on port 53 { 192.168.220.129; };
        directory       "/var/named";
};

zone "openlab.com" IN {
        type master;
        file "named.openlab.com";
};

zone "220.168.192.in-addr.arpa" IN {
        type master;
        file "named.192.168.220";
};
#vim /var/named/named.192.168.220
$TTL 1D
@       IN      SOA     @       admin.admin.com. (
                                        0
                                        1D
                                        1H
                                        1W
                                        3H )
        IN      NS      dns.openlab.com.
129     IN      PTR     www.openlab.com.
#rndc reload
###测试
#nslookup 192.168.220.129 || dig -x 192.168.220.129

在这里插入图片描述
在这里插入图片描述

案例三:完全区域传送

区域传送:将一个区域文件复制到多个服务器上的过程叫做区域传送。

两种区域文件复制方式:

? 完全区域传送:axfr,all transfer,全部区域文件复制,复制整个区域文件

? 增量区域传送:ixfr,incremental transfer,仅复制区域里变化的文件

查询上次序列号改变后的信息

dig -x ixfr=1 baidu.com@192.168.220.129

在服务器dns主配置文件named.conf中定义完全区域传送(主服务)

#vim /etc/named.conf
options {
        listen-on port 53 { 192.168.220.129; };
        directory       "/var/named";
        allow-transfer { 192.168.220.234; };
};

在另一台虚拟机作为从服务器安装bind软件包,配置主配置文件/etc/named.conf

#vim /etc/named.conf
options {
        listen-on port 53 { 192.168.220.129; };
        directory       "/var/named";
};

zone "openlab.com" IN {
        type slave;
        file "slaves/named.openlab";
        masters { 192.168.220.129; };
};

zone "220.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/named.192.168.220";
        masters { 192.168.220.129; };
};

重启服务,查看/var/names/slaves目录下同步的主服务其中的区域数据文件

#systemctl restart named
#ll /var/named/slaves/
-rw-r--r--. 1 named named 269 Aug 28 20:26 named.192.168.220
-rw-r--r--. 1 named named 393 Aug 28 20:21 named.openlab

重启服务会动态同步主服务其中的区域数据文件

案例四:dns从服务的搭建

完全区域传送

增量区域传送

主:在区域文件添加资源记录,修改序列号,ns标记从服务是谁

从:tail -f /var/log/messages

1.修改主服务的区域配置文件/var/named/named.openlab.com

#vim /var/named/named.openlab.com
$TTL 1D
@       IN      SOA     @       admin.admin.com. (
                                        2021082803       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      dns.openlab.com.
dns     IN      A       192.168.220.129
named   IN      A       192.168.220.121
mail    IN      A       192.168.220.111
www     IN      A       192.168.220.110
wwww    IN      CNAME   www

2.重启主从服务器服务

#systemctl restart named

3.通过tail -f /var/log/message来查看从服务器的日志,注意传送过程
在这里插入图片描述

案例五:配置DNS转发服务器

1.转发server配置:

#vim /etc/named.conf
options {
        listen-on port 53 { 127.0.0.1; };
        forwarders { 192.168.220.234; };
        forward only;
};

2.主dns服务:

#vim /etc/named.conf
options {
        listen-on port 53 { 192.168.220.129; };
        directory       "/var/named";
};

zone "openlab.com" IN {
        type master;
        file "named.openlab.com";
};

zone "220.168.192.in-addr.arpa" IN {
        type master;
        file "named.192.168.220";
};
#vim /etc/named/named.openlab.com
$TTL 1D
@       IN      SOA     @       admin.admin.com. (
                                        2021082803       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      dns.openlab.com.
dns     IN      A       192.168.220.129
named   IN      A       192.168.220.121
mail    IN      A       192.168.220.111
www     IN      A       192.168.220.110
wwww    IN      CNAME   www

配置客户端主机:

#vim /etc/resolv.conf
nameserver 192.168.220.129

在客户端主机测试:

#nslookup www.openlab.com || dig -t NS openlab.com || ping www.openlab.com
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 11:23:21  更:2021-09-05 11:23:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:12:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码