自学内容网 自学内容网

DNS:domain name system服务部署

域名解析系统 域名解析到ip正向 ip解析到域名(反向解析)

网络通信ip地址不好记忆  所以开发出一套系统给人使用

dig +trace xinjiapo.sanchuangedu.cn   找出域名的完整DNS解析路径,直到获取其IP地址。


dns域名解析过程:以www..baidu.com为例 迭代查询

1.客户机向本地dns服务器发起dns请求,要求解析域名www.baidu.com的ip

2.本地的dns服务器会在缓存里查找对应的域名,如果有,里面返回给客户机ip地址,如果没有,就问根域名服务器要www.baidu.com对应的ip

3.根域名服务器返回com.的ip地址,告诉本地dns服务器,问com.服务器www.baidu.com的ip

4.本地dns服务器向com服务器发起请求,com服务器返回baidu.com域名对应的dns服务器的地址

5.本地dns服务器向baidu.com服务器发起请求,baidu.com 域名服务器返回www.baidu.com域名对应的ip地址

6.本地dns服务器缓存www.baidu.com对应的ip,然后告诉客户机

7.客户机去访问www.baidu.com对应的ip服务器


缓存:

       浏览器缓存 .操作系统缓存  本地dns服务器里的缓存


DNS的记录类型

       www    192.168.205.1

A  地址解析记录  address   将域名解析到ip             ipv4

NS  域名服务器记录 name   server  一个域名里有多台专门负责域名解析的服务器的ip

AAAA 记录(IPv6 Address Record)

MX 记录(Mail Exchanger Record): 指明哪些邮件服务器负责处理发往该域名的电子邮件。MX记录包含优先级字段,用于确定邮件的路由顺序。

CNAME 记录(Canonical Name Record): 定义一个域名是另一个域名的别名。CNAME记录用于将一个域名映射到另一个域名上,而不是直接指向IP地址。


  1. 浏览器请求 当你在浏览器地址栏输入一个URL并按下回车键时,解析过程开始。
  2. 查询缓存 浏览器首先检查自身缓存中是否已经有该域名的IP地址记录。如果没有,它将询问操作系统,操作系统的缓存或hosts文件中也可能保存有记录。
  3. 请求本地DNS服务器 如果上述缓存中没有找到记录,浏览器将请求本地DNS服务器(通常是ISP提供的DNS服务器)来解析域名。这个请求是通过DNS协议发送的。
  4. 本地DNS服务器查询 本地DNS服务器也会先检查自己的缓存。如果缓存中有记录,则直接返回;如没有,它将作为DNS递归查询的起点,向上级DNS服务器请求解析。
  5. 递归和迭代查询 本地DNS服务器将首先询问根域名服务器(Root DNS Server)。根域名服务器不会直接提供IP地址,而是告诉本地DNS服务器应该询问哪一个顶级域名(TLD)服务器,如.com、.org等。
  6. 顶级域名服务器查询 本地DNS服务器随后查询相应的顶级域名服务器,顶级域名服务器再指引它去询问具体的权威域名服务器。
  7. 权威域名服务器响应 权威域名服务器(Authority DNS Server)是直接管理特定域名的服务器,它会返回所请求域名的A记录(IPv4地址)或AAAA记录(IPv6地址)。
  8. CNAME重定向 在某些情况下,权威域名服务器可能返回一个CNAME记录,指示域名实际上是另一个域名的别名,这时需要对新的域名进行额外的查询。
  9. 返回结果 最终,本地DNS服务器会获得IP地址,并将其返回给最初发起请求的浏览器。同时,本地DNS服务器会缓存这个结果,以便后续相同的请求可以直接从缓存中读取。
  10. 建立连接 浏览器收到IP地址后,将使用此IP地址与目标服务器建立TCP/IP连接,并请求所需的网页或其他资源。

缓存域名服务器  --》路由器

       也称为 唯高速缓存服务器

       通过向其他域名服务器查询获得域名->IP地址记录

       将域名查询结果缓存到本地,提高重复查询时的速度

主域名服务器 --》qq.com   163.com  jd.com didi.com  --》可以写入的

       特定DNS区域的官方服务器,具有唯一性,权威性

       负责维护该区域内所有域名->IP地址的映射记录

从域名服务器 --->负责读数据,不能写数据

       也称为 辅助域名服务器

       其维护的 域名->IP地址记录 来源于主域名服务器

安装DNS服务器

  1. 安装软件bind,bind是历史非常悠久,而且性能非常好的dns域名系统的软件

[root@nfs-ansible-prom prom]# yum install bind  bind-utils  -y

启动named服务

[root@nfs-ansible-prom prom]# service named restart

Redirecting to /bin/systemctl restart named.service

设置named服务开机启动

[root@nfs-ansible-prom prom]# systemctl enable named

Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

[root@nfs-ansible-prom prom]# ps aux|grep named  查看进程

named     14125  0.1  1.4 242032 57676 ?        Ssl  16:34   0:00 /usr/sbin/named -u named -c /etc/named.conf

root      14151  0.0  0.0 112824   976 pts/0    S+   16:35   0:00 grep --color=auto named

[root@nfs-ansible-prom prom]# netstat -anplut|grep named 查看开放udp  53号端口

tcp        0      0 127.0.0.1:53    0.0.0.0:*               LISTEN      14125/named        

tcp       0   0 127.0.0.1:953       0.0.0.0:*               LISTEN      14125/named        

tcp6       0      0 ::1:53       :::*                    LISTEN      14125/named        

tcp6       0      0 ::1:953         :::*                LISTEN      14125/named        

udp        0     0 127.0.0.1:53   0.0.0.0:*                           14125/named        

udp6    0     0 ::1:53           :::*                                14125/named    

域名解析时用的upd访问dns服务器 速度快效率高 (tcp是面向可靠连接)

测试DNS服务能否使用:把/etc/resolv.conf 文件改成127.0.0.1 默认情况下dns只给自己解析 不允许其他  nslookup www.baidu.com

Server:           127.0.0.1

Address: 127.0.0.1#53

  1. 修改配置文件,重启服务器允许其他电脑能过来查询dns域名

[root@nfs-ansible-prom prom]# vim /etc/named.conf

options {

        listen-on port 53 { any; };  #修改

        listen-on-v6 port 53 { any; }; #修改

        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; };  #修改

重新启动named服务

[root@nfs-ansible-prom prom]# service named restart

Redirecting to /bin/systemctl restart named.service

在其他机器上测试DNS服务器

修改本机和其他机器的dns服务器为自己搭建的dns服务器ip,添加2个DNS服务器地址,第1个DNS服务器地址优先级高

[root@nfs-ansible-prom prom]# vim /etc/resolv.conf

# Generated by NetworkManager

nameserver 192.168.159.138

#nameserver 114.114.114.114

在web1服务器上修改DNS服务器的地址

[root@web1 ~]# vim /etc/resolv.conf

[root@web1 ~]# cat /etc/resolv.conf

# Generated by NetworkManager

#nameserver 114.114.114.114

nameserver 192.168.159.138

使用nslookup和ping、dig命令进行dns域名查询的测试

[root@nfs-ansible-prom prom]# nslookup  www.baidu.com

Server:           192.168.159.138

Address: 192.168.159.138#53

Non-authoritative answer:

www.baidu.com    canonical name = www.a.shifen.com.

Name:    www.a.shifen.com

Address: 183.2.172.42

[root@web1 ~]# ping www.baidu.com

PING www.a.shifen.com (183.2.172.185) 56(84) bytes of data.

64 bytes from 183.2.172.185 (183.2.172.185): icmp_seq=1 ttl=128 time=25.2 ms

64 bytes from 183.2.172.185 (183.2.172.185): icmp_seq=2 ttl=128 time=25.2 ms

^C

在web1和db服务器上安装bind-utils工具包,可以获得nslookup和dig命令

增加自己项目的zone文件

给自己的web集群项目提供域名解析,我们使用scweb.com这个域名

1.修改配置文件,告诉named为scweb.com提供域名解析 /etc/named.conf(主要配置)

[root@nfs-ansible-prom prom]# vim /etc/named.rfc1912.zones(次要配置文件)

//添加下面的配置,增加一个scweb.com的域名

zone "scweb.com" IN {

        type master;

        file "scweb.com.zone";

        allow-update { none; };

};

2./var/named/ 存放dns域名解析的数据文件scweb.com.zone  创建scweb.com的数据文件

[root@nfs-ansible-prom prom]# cd /var/named/

[root@nfs-ansible-prom named]# cp -a  named.localhost  scweb.com.zone

修改scweb.com.zone文件,添加我们自己的相关服务的A记录和别名记录

[root@nfs-ansible-prom named]# vim scweb.com.zone

[root@nfs-ansible-prom named]# cat scweb.com.zone

$TTL 1D

@    IN SOA   ns1.scweb.com. rname.invalid. (

                                   0     ; serial

                                   1D   ; refresh

                                   1H   ; retry

                                   1W  ; expire

                                   3H ) ; minimum

       NS   ns1.scweb.com.

       A       192.168.159.138

        AAAA    ::1

www A 192.168.205.188

nfs A 192.168.159.136

web CNAME www

luobiao CNAME nfs

* A 192.168.205.188

刷新named服务,让新的配置生效

[root@nfs-ansible-prom named]# service named restart

Redirecting to /bin/systemctl restart named.service

检查数据文件是否有错误

[root@nameserver data]# named-checkzone scweb.com  /var/named/scweb.com.zone 

zone sc.com/IN: loaded serial 0

OK

[root@nameserver data]# named-checkconf /etc/named.rfc1912.zones  检查配置文件

测试DNS服务器记录

在其他的服务器上进行测试,我们添加的A记录和别名记录,*泛域名解析记录 @本域名记录(scweb.com)

[root@web1 ~]# nslookup  www.scweb.com

Server:           192.168.159.138

Address: 192.168.159.138#53

Name:    www.scweb.com

Address: 192.168.205.188

[root@web1 ~]# nslookup  nfs.swebc.com

Server:           192.168.159.138

Address: 192.168.159.138#53

[root@web1 ~]# nslookup  web.sc.com

Server:           192.168.203.145

Address: 192.168.203.145#53

web.sc.com   canonical name = www.sc.com.

Name:    www.sc.com

Address: 192.168.203.144

[root@web1 ~]# dig NS scweb.com

;scweb.com.                IN    NS

;; ANSWER SECTION:

scweb.com.          86400     IN    NS   ns1.scweb.com.

;; ADDITIONAL SECTION:

ns1.scweb.com.           86400     IN    A     192.168.205.188

[root@lb-1 conf]# nslookup  luobiao.scweb.com

Server:           192.168.205.134

Address: 192.168.205.134#53

[root@lb-1 conf]# nslookup   zhouqiang.scweb.com   (*任意)

Server:           192.168.205.134

Address: 192.168.205.134#53

[root@lb-1 conf]# dig +short  NS scweb.com

ns1.scweb.com.

问题:

       hosts文件里的域名解析优先级比DNS服务器高

       能解析出来不能ping通,不关dns服务器的事,是网络的问题或者相关服务器的问题

       别名记录的作用,可以将流量导入到其他的地方---》CDN

当服务启动不了的时候,如何排错?

1.看日志 tail -f /var/log/messages

2.使用检测工具:检测配置文件和数据文件


原文地址:https://blog.csdn.net/weixin_70278423/article/details/140536225

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!