网络世界的门牌库-DNS「建议收藏」

网络世界的门牌库-DNS「建议收藏」在计算机的世界里,计算机的沟通都是通过ip进行通信,现在的ip是32位,如类似 210.11.22.43,这样的ip是很难被记住的,那有没有一个

欢迎大家来到IT世界,在知识的湖畔探索吧!

大家好,我是宁静知行者,一个安静写代码,勤奋写文章的技术人. 点击”关注”,每天为你分享【技术文章】、【问题总结】

在计算机的世界里,计算机的沟通都是通过ip进行通信,现在的ip是32位,如类似 210.11.22.43(只是举例ip),这样的ip是很难被记住的,那有没有一个比较好的记忆方式来和这个ip进行对应呢?域名,如 www.baidu.com,那它是怎么和对应的ip进行绑定的呢?那就要通过 DNS来进行管理了。

历程

  • 单一文件 /etc/hosts

最早是通过在本地文件中,指定主机名和IP的映射关系,但是这个无法感知主机名的ip变更,且如果ip数量大,这个文件会很大

  • dns 系统

单一文件 /etc/hosts 如果是在内网或是ip数量比较少时,是一个不错的选择,但如果是要进行外网连接时,就会出现ip数量大的问题了,后面就发展出 域名管理系统(DNS),通过dns ,不需要知道ip,只要知道主机名,就可以正常连接上主机了

DNS主机名与IP的查询流程

DNS目录结构

整个DNS系统最上方一定是一个点(.), 称为 root,以下是顶层域名,会有以下两种

  1. 一般顶级域名(gTLD),如.com、.gov、.org 等
  2. 国家顶级域名(ccTLD),如.cn .us 等

名称

说明

com

公司、行业

org

组织、机构

edu

教育组织

gov

政府单位

net

网络、通讯

DNS的结构大概如下:

网络世界的门牌库-DNS「建议收藏」

查询

从上面的DNS 的目标结构图可知,每种后缀类型的域名,都有不同的服务器进行管理的,当要进行对一个域名进行查询时,都是从顶级开始往下进行查询,每一个服务器只记录底下那一层的主要域名的信息,如查询 demo.com.cn 时,大致流程如下:

网络世界的门牌库-DNS「建议收藏」

那是不是每次都是要经过这样的流程呢?每次查到后,都在dns系统中进行缓存,当下次进行访问时,会先确认本地缓存中是否有值,如果有的话会直接返回给客户端,同时这个缓存会有一个过期时间(TTL),超过这个时间之后,发起的流程就要重新来一遍。

示例: 查看以访问www.baidu.com为例

 dig +trace www.baidu.com
[root@localhost named]# dig +trace www.baidu.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.13 <<>> +trace www.baidu.com
;; global options: +cmd
.                       511832  IN      NS      j.root-servers.net.
.                       511832  IN      NS      e.root-servers.net.
# 上面的部分是请求 . 服务器
;; Received 1097 bytes from 192.168.136.130#53(192.168.136.130) in 3 ms

com.                    172800  IN      NS      e.gtld-servers.net.
# 上面是在请求 .com.服务器
;; Received 1173 bytes from 192.58.128.30#53(j.root-servers.net) in 219 ms

baidu.com.              172800  IN      NS      ns2.baidu.com.
# 上面是请求 .baidu.com.服务器
;; Received 849 bytes from 192.33.14.30#53(b.gtld-servers.net) in 152 ms

www.baidu.com.          1200    IN      CNAME   www.a.shifen.com.
# 查询到 www.baidu.com. 是 CNAME记录 ,指向到 www.a.shifen.com. 
# 返回对应的ip地址
;; Received 72 bytes from 180.76.76.92#53(ns7.baidu.com) in 23 ms

欢迎大家来到IT世界,在知识的湖畔探索吧!

名词解释

正解

由主机名查询得到IP的流程即正解。通常要有如下的几种标志:

SOA ,NS, A

反解

由ip找到主机名,记录信息比较重要的是:

PTR: 后面记录的数据就是反解的主机名

hint zone

当DNS服务器,在自己的数据库找不到对应的信息时,就会去 hint类型记录的zone里进行查找,默认是查找 name.ca里记录的内容

DNS服务安装

以 demo.com 域名为例,只作测试用,在本地进行dns测试

欢迎大家来到IT世界,在知识的湖畔探索吧!yum install -y bind bind-chroot bind-utils
  1. 配置文件,目录在 /etc/named.conf
    1. 配置cache-only DNS服务器,需要转发到其他服务器,只作缓存
options {
        listen-on port 53 { 127.0.0.1;192.168.136.130; }; # 可以绑定指定的ip
        listen-on-v6 port 53 { ::1; };
        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     { any; }; // 设置谁可以对当前dns服务器进行访问
        forward only; // 这个设定可以使dns服务仅进行forward,即使有 .这个zone file也不会使用
        forwarders {
           192.168.136.2; // 转发到哪台后端的dns服务器
        };
        recursion yes;
};
    1. 配置 demo.com 域名的解析
欢迎大家来到IT世界,在知识的湖畔探索吧!options {
        listen-on port 53 { 127.0.0.1;192.168.136.130; };
        listen-on-v6 port 53 { ::1; };
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };
        allow-transfer {none;};
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.root.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
// hint类型的,未找到对应的zone时,会从这里来找
zone "." IN {
        type hint;
        file "named.ca";
};
// 对应的 demo.com的配置
zone "demo.com" IN {
   type master;
   file "named.demo.com";
};
// 对应的反解的配置
zone "136.168.192.in-addr.arpa" IN {
   type master;
   file "named.192.168.136";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
    1. 增加正解(named.demo.com)和反解配置文件(named.192.168.136)
// named.demo.com 配置文件
$TTL 600
;SOA 如果有多部dns 服务器管理同一个域名时,进行zone file的传输管理
;参数有七个
;1. 是master DNS服务器
;2. 是管理员email,因为 @有特殊意义 demo@demo.com -> demo.demo.com
;3. 注意前面有 ( )序列号,序号越大代表越新,当slave 要判断是否主动下载时新的数据时,就以序列号比slave上的还要新来判断,故在变更数据时,要将这个数值增大
;4. 更新频率(Refresh),slave多久更新的判断,单位秒
;5. 失败重试时间,如果某些因素导致失败,salve 多久时间内,需要重新联机到master上,单位秒
;6. 失效时间(Expire),如果一直失败在尝试时间内,达到这个值,slave将会不再尝试,并将下载的zone file文件删除
;7. 如果这个zone file中的每笔记录都没有设置 TTL,那就以这个值为主
;Refresh >= Retry *2
;Refresh + Retry < Expire
;Expire >= Rrtry * 10
;Expire >= 7Days
@ IN SOA ns1.demo.com. demo.demo.com. (
          2022080404
          28800
          14400
          3600000
          86400
)
@ IN NS ns1.demo.com.
@ IN NS ns2.demo.com.
;设置邮件的email server
;10 代表后面会有10台这样的服务器,以数字较小的那部优先
@ IN MX 10 mail.demo.com.
ns2.demo.com. IN A 192.168.136.130
ns1.demo.com. IN A 192.168.136.130


master.demo.com. IN A 192.168.136.130
www.demo.com. IN A 192.168.136.130
mail.demo.com. IN A 192.168.136.126
slave.demo.com. IN A 192.168.136.127

;设置p.demo.com的别名为 www.demo.com
p.demo.com. IN CNAME www.demo.com.
; named.192.168.136配置文件
; 以 www.demo.com 为例,越右代表网域越大,.(root)>com>demo ,因此是由小到大
; 但ip 不同,如 192.168.136.2 ,192 > 168 > 136 > 2,左边的网域越大,与dns的右到左不同,为了解决该问题,需要将ip返过来,在结尾加上 .in-addr.arpa字样
$TTL 600
@ IN SOA ns1.demo.com. demo.demo.com. (
          2022080401
          28800
          14400
          3600000
          86400
)
@ IN NS ns1.demo.com.
128 IN PTR master.demo.com.
133 IN PTR p.demo.com.
127 IN PTR slave.demo.com.
  1. 启动 named
service named start
  1. 配置 /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.136.130 # 增加自建的dns服务
  1. 测试,出现以下的内容,说明配置成功
网络世界的门牌库-DNS「建议收藏」

通过 dig命令查看各个类型的数据

查看 A 记录

[root@localhost etc]# dig -t A master.demo.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.13 <<>> -t A master.demo.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55780
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; 发起的查询的数据
;; QUESTION SECTION:
;master.demo.com.               IN      A

; 返回的数据
;; ANSWER SECTION:
master.demo.com.        600     IN      A       192.168.136.130

;; AUTHORITY SECTION:
demo.com.               600     IN      NS      ns2.demo.com.
demo.com.               600     IN      NS      ns1.demo.com.

;; ADDITIONAL SECTION:
ns1.demo.com.           600     IN      A       192.168.136.130
ns2.demo.com.           600     IN      A       192.168.136.130

查看 SOA 数据

[root@localhost etc]# dig -t SOA demo.com
;; ANSWER SECTION:
demo.com.               600     IN      SOA     ns1.demo.com. demo.demo.com. 2022080404 28800 14400 3600000 86400

查看 NS记录

[root@localhost etc]# dig -t NS demo.com
;; ANSWER SECTION:
demo.com.               600     IN      NS      ns2.demo.com.
demo.com.               600     IN      NS      ns1.demo.com.

查看 PTR

[root@localhost etc]# dig -x 192.168.136.133
;; ANSWER SECTION:
133.136.168.192.in-addr.arpa. 600 IN    PTR     p.demo.com.

往期回顾

Docker 容器网络篇

Docker网络这样理解会更简单(一)

Docker网络这样理解会更简单(二)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/12511.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信