龙空技术网

网络世界的门牌库-DNS

宁静知行者 106

前言:

现时咱们对“主机名网络名机构名”大约比较关怀,小伙伴们都需要分析一些“主机名网络名机构名”的相关内容。那么小编也在网络上汇集了一些关于“主机名网络名机构名””的相关知识,希望你们能喜欢,兄弟们快快来学习一下吧!

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

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

历程单一文件 /etc/hosts

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

dns 系统

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

DNS主机名与IP的查询流程DNS目录结构

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

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

名称

说明

com

公司、行业

org

组织、机构

edu

教育组织

gov

政府单位

net

网络、通讯

DNS的结构大概如下:

查询

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

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

示例: 查看以访问为例

 dig +trace [root@localhost named]# dig +trace ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.13 <<>> +trace ;; 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 mscom.                    172800  IN      NS      e.gtld-servers.net.# 上面是在请求 .com.服务器;; Received 1173 bytes from 192.58.128.30#53(j.root-servers.net) in 219 msbaidu.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.          1200    IN      CNAME    查询到 . 是 CNAME记录 ,指向到 . # 返回对应的ip地址;; Received 72 bytes from 180.76.76.92#53(ns7.baidu.com) in 23 ms
名词解释正解

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

SOA ,NS, A

反解

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

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

hint zone

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

DNS服务安装

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

yum install -y bind bind-chroot bind-utils
配置文件,目录在 /etc/named.conf配置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;};
配置 demo.com 域名的解析
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";
增加正解(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.130ns1.demo.com. IN A 192.168.136.130master.demo.com. IN A 192.168.136.130. IN A 192.168.136.130mail.demo.com. IN A 192.168.136.126slave.demo.com. IN A 192.168.136.127;设置p.demo.com的别名为 . IN CNAME .
; named.192.168.136配置文件; 以  为例,越右代表网域越大,.(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.
启动 named
service named start
配置 /etc/resolv.conf
# Generated by NetworkManagersearch localdomainnameserver 192.168.136.130 # 增加自建的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.130ns2.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网络这样理解会更简单(二)

标签: #主机名网络名机构名