DNS域名解析过程以及DNS服务器搭建

DNS域名解析

DNS是什么?有什么作用?

域名系统(英文:Domain Name System,缩写:DNS;也可以翻译为Domain Name Service)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

作用:进行域名解析

DNS服务器的工作原理及其类型

DNS的解析过程

1、客户机先查看本机的hosts文件是否有对应的域名。

2、浏览器有缓存,查看浏览器缓存里是否有对应的dns域名解析或者本及里是否有dns缓存
–> 浏览器缓存和客户机缓存,都可以缓存dns域名解析。

到底是先看hosts文件,还是dns缓存?
先看dns缓存(先看浏览器dns缓存,再看操作系统OS缓存,然后再看主机hosts文件,最后去访问dns域名解析服务器)。

3、如果缓存里都没有,hosts文件里也没有对应的域名解析记录,如果都没有就向本地dns服务器发起域名解析的请求(递归查询)。

4、本地dns服务器如果里没有域名解析记录,则会去问根dns服务器要,向根dns服务器发起域名解析的请求。

5、根域名服务器获得了本地dns服务器需要查询的域名www.baidu.com后,再告诉本地dns域名服务器下一级的域名服务器.com.的ip地址,然后我们的本地服务器就会访问.com服务器,查询www.baidu.com域名,.com服务器然后查询出baidu.com这个域名对应的dns服务器的ip地址,然后告诉本地dns服务器,本地dns服务器又去访问baidu.com.域名服务器,查询www对应的ip,然后本机dns服务器获取到www.baidu.com对应的ip后,马上添加到缓存里,接着告诉客户机www.baidu.com域名的ip地址。
//本地dns服务器在根dns中查询,从一级域名开始查找,一直到三级域名(机器名)(迭代查询)

6、客户机然后去访问www.baidu.com域名对应的ip地址的服务器。

DNS域名解析过程以及DNS服务器搭建_第1张图片

DNS服务器的类型

缓存域名服务器:也称为 唯高速缓存服务器,通过向其他域名服务器查询获得 域名->IP 地址记录,将域名查询结果缓存到本地,提高重复查询时的速度。

主域名服务器:特定DNS区域的官方服务器,具有唯一性,权威性,负责维护该区域内所有的 域名->IP地址 的映射记录。

从域名服务器:也称为 辅助域名服务器,其维护的 域名->IP 地址记录,来源于主域名服务器。

DNS服务器的搭建

搭建前的准备

搭建DNS服务器需要准备好一台安装好centos7的Linux操作系统。

并且还需了解一些查询域名解析的命令

nslookup是一个域名查询的命令
host
ping
dig

开始搭建

1、关闭防火墙设置,以及selinux
# 临时关闭
systemctl stop firewalld
# 永久关闭
systemctl disabled firewalld
# 临时关闭
setenforce 0
# 永久关闭
sed -i '/^SELINUX=/ s/disabled/enforcing/' /etc/selinux/config
2、下载bind包
yum install bind* -y
3、启动DNS服务
systemctl start named
# 设为开机启动
systemctl enable named
4、查看named进程是否启动成功
[root@node-3 ~]# ps aux | grep named
named      6166  0.1  3.0 168300 57308 ?        Ssl  21:27   0:00 /usr/sbin/named -u named -c /etc/named.conf
root       6199  0.0  0.0 112808   968 pts/0    S+   21:27   0:00 grep --color=auto named
[root@node-3 ~]# netstat -anplut | grep named
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      6166/named          
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      6166/named          
tcp6       0      0 ::1:53                  :::*                    LISTEN      6166/named          
tcp6       0      0 ::1:953                 :::*                    LISTEN      6166/named          
udp        0      0 127.0.0.1:53            0.0.0.0:*                           6166/named          
udp6       0      0 ::1:53                  :::*                                6166/named        
5、修改/etc/resolv.conf文件,既修改本机的dns解析文件,增加我们自己的dns服务器地址
[root@node-3 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
#nameserver 114.114.114.114
nameserver 127.0.0.1
#(将dns服务地址设为本机主机地址)
6、nslookup测试
[root@node-3 ~]# nslookup qq.com
Server:		127.0.0.1
Address:	127.0.0.1#53

Non-authoritative answer:
Name:	qq.com
Address: 123.151.137.18
Name:	qq.com
Address: 183.3.226.35
Name:	qq.com
Address: 61.129.7.47
# DNS搭建成功,实验完成!!!!!!!!!

开放dns服务器让其他服务器也能使用

# 修改dns服务器里的named.conf配置(缓存域名服务器,必须要能上网才能使用)
options {
        listen-on port 53 { any; };   //ipv4  any所有人都能访问
        listen-on-v6 port 53 { any; };   //ipv6 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; };   //any 允许任何人访问

拓展

追踪域名解析命令

[root@node-3 ~]# dig +trace www.qq.com

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.13 <<>> +trace www.qq.com
;; global options: +cmd
.			517808	IN	NS	j.root-servers.net.
.			517808	IN	NS	d.root-servers.net.
.			517808	IN	NS	m.root-servers.net.
.			517808	IN	NS	b.root-servers.net.
.			517808	IN	NS	c.root-servers.net.
.			517808	IN	NS	k.root-servers.net.
.			517808	IN	NS	g.root-servers.net.
.			517808	IN	NS	i.root-servers.net.
.			517808	IN	NS	a.root-servers.net.
.			517808	IN	NS	h.root-servers.net.
.			517808	IN	NS	l.root-servers.net.
.			517808	IN	NS	f.root-servers.net.
.			517808	IN	NS	e.root-servers.net.
.			517808	IN	RRSIG	NS 8 0 518400 20230509170000 20230426160000 60955 . GNvaE0rly4vy5Hokht851mCI1RmKvUGXl+5f0bCdejoerEMCcRmTdHDK Fqo3Yc07elZSX+VW2MWxqiTiT6KnUTb4Z4A2KZGL/iQ9ezvYhO0BJ/50 1lM52lbctdr6PLZ9FaAj3EMgb1XqgpZ2k4Ndg99vcFU0zsBg8vEEgOQ9 Wi1XfnHEJFpjWidDDdJjxdF5slPZHE/laIAr88h9uPUkflSsW3wDTBja 9aifEYdj03znbco6NKRnSN/dj6rM3a21Mb1lgZnsONt+DlUIZJ9jdo42 565/SeTcoKjkMqhGIl5exzH9J/jtODZe+O/tZmltXSlVIcAKY5hYWktO grqEkg==
;; Received 1097 bytes from 192.168.220.107#53(192.168.220.107) in 0 ms

com.			172800	IN	NS	a.gtld-servers.net.
com.			172800	IN	NS	b.gtld-servers.net.
com.			172800	IN	NS	c.gtld-servers.net.
com.			172800	IN	NS	d.gtld-servers.net.
com.			172800	IN	NS	e.gtld-servers.net.
com.			172800	IN	NS	f.gtld-servers.net.
com.			172800	IN	NS	g.gtld-servers.net.
com.			172800	IN	NS	h.gtld-servers.net.
com.			172800	IN	NS	i.gtld-servers.net.
com.			172800	IN	NS	j.gtld-servers.net.
com.			172800	IN	NS	k.gtld-servers.net.
com.			172800	IN	NS	l.gtld-servers.net.
com.			172800	IN	NS	m.gtld-servers.net.
com.			86400	IN	DS	30909 8 2 E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.			86400	IN	RRSIG	DS 8 1 86400 20230509170000 20230426160000 60955 . MBvGquMrj0faSCX5tEzm4IO1NTEaLFqzseShrjMHh1Vouc1P0V/BqNGI 0XcLTSfF3Cm4b9V1GjNNpd5WFChf7c2JaBNZCI2esc1h1RaFx35cvshL QsENi53asbDO9aEOOOzagvkNG92inhtivu6ZiWN7Bo27gXAovAW+BP/a X4TN+Ltobj8vD7EjwtUIAOXQ2QVS0ksedk45k8LuNsO3g1tk4mUwbtPT R942eYV8hFXF3/E/8x7/+tml+SYIPQvhfMHWJTO6Drgwr4Xmn6NUT29Z xFrxT4zsrxYSQoVcdbO6OeQzb7DGhFs1MAdluGolEqp3a994KSWsLO2Y yFWylg==
;; Received 1170 bytes from 192.58.128.30#53(j.root-servers.net) in 56 ms

qq.com.			172800	IN	NS	ns1.qq.com.
qq.com.			172800	IN	NS	ns2.qq.com.
qq.com.			172800	IN	NS	ns3.qq.com.
qq.com.			172800	IN	NS	ns4.qq.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q2D6NI4I7EQH8NA30NS61O48UL8G5 NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20230502042301 20230425031301 46551 com. KODJ+WHULgP2JCWf088sIUaJv6o4P23OOPZzKQy8abRa2BJisUeYFqnN GFG7VLm/mE0xY1uiHOdGrKl3ZTcT762R8ntpdh93ZScBIr01vU2izRbU tAy7FSpHw8OTlv0aA/h90z/Ty5lM6jOynXV+kW9w+mrC74C7SvHDADBh BsJnrFbQPWq7QxctL4m/hGrLKP6c8rY5a3Nzbo4A4TQAWg==
J976NFATTQBBQVJN3D1JJ5I441I469H9.com. 86400 IN NSEC3 1 1 0 - J976OD03R4N6J9DIGTL6KBBOKM1RRSGC NS DS RRSIG
J976NFATTQBBQVJN3D1JJ5I441I469H9.com. 86400 IN RRSIG NSEC3 8 2 86400 20230502053054 20230425042054 46551 com. F05MgmV10615SeLVZMPT1GBZqR7qKQcgHt2Dn6PYsvrie484h39S02mK DyhqVhTf8fV+y4xu8rrkSzcv5gyqA6ggeos7DLZdZOneWygtctpIYp/Z q4AN4zxm3eVG9RHF/JPmOP1zSlhw828P5ENt4rIEynhK5XJvtOjaWLIt Vy6x9vVz4J1/d/5dCKRddEIqnl/rlPZ4BpU8n1gf43w0zw==
;; Received 956 bytes from 192.31.80.30#53(d.gtld-servers.net) in 111 ms

www.qq.com.		86400	IN	NS	ns-tel1.qq.com.
www.qq.com.		86400	IN	NS	ns-tel2.qq.com.
;; Received 191 bytes from 59.36.132.142#53(ns4.qq.com) in 35 ms

www.qq.com.		300	IN	CNAME	ins-r23tsuuf.ias.tencent-cloud.net.
;; Received 87 bytes from 58.60.10.100#53(ns-tel1.qq.com) in 28 ms

DNS主域名服务器搭建

一些DNS的配置文件以及重要信息:

主配置文件:/etc/named.conf

次要配置文件: /etc/named.rfc1912.zones

主进程名字:named

named.ca 记录13台根域名服务器地址的文件

监听的端口:53 tcp/udp

数据文件:

	A:一个名字对应一个ip address
	   AAAA
	NS:某个域名里的dns server 服务器 name server
	CNAME:别名记录,一个域名指向另外一个域名
	MX:执行本公司的邮件服务器 mail exchange

DNS域名解析过程以及DNS服务器搭建_第2张图片

1、修改次要配置文件/etc/named.rfc1912.zones(在localhost后面添加)
zone "sc.com" IN {
	type master;
	file "sc.com.zone";
	allow-update { none; };
};
2、在/var/named复制数据文件named.localhost命名为sc.com.zone
[root@node-3 named]# cp -a named.localhost sc.com.zone
# -a 将文件完美复制,包括权限
3、修改数据文件sc.com.zone
[root@node-3 named]# vim sc.com.zone 

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
# 邮件域名
    IN  MX      10 mail.sc.com
        A       192.168.220.107
# 使用多个同名的A记录可以实现负载均衡
www IN A 192.168.220.107
www IN A 192.168.220.108
www IN A 192.168.220.109
www IN A 192.168.220.110
# 邮件域名
mail IN A 192.168.220.107
vue IN A 192.168.220.88
ftp IN A 192.168.220.120
tongtong IN A 192.168.220.136
zjx IN A 112.1.1.1
#CNAME记录
zwp IN CNAME zjx
# 泛域名解析记录(*)
* IN A 192.168.220.107

# 刷新服务
[root@node-3 named]# service named restart
Redirecting to /bin/systemctl restart named.service
[root@node-3 named]# /bin/systemctl restart named.service
4、实验成功测试
[root@node-3 named]# nslookup www.sc.com
Server:		192.168.220.107
Address:	192.168.220.107#53

Name:	www.sc.com
Address: 192.168.220.107

[root@node-3 named]# nslookup zwp.sc.com
Server:		192.168.220.107
Address:	192.168.220.107#53

zwp.sc.com	canonical name = zjx.sc.com.
Name:	zjx.sc.com
Address: 112.1.1.1
5、扩展知识

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

1、看日志

2、使用检测工具:

检测配置文件和数据文件
/var/log/messages 日志文件
[root@nameserver data]# tail -f /var/log/messages

[root@node-3 named]# named-checkzone sc.com /var/named/sc.com.zone  --> 检查数据文件是否有错误
zone sc.com/IN: loaded serial 0
OK

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

你可能感兴趣的:(服务器,运维,网络)