域名系统(英文:Domain Name System,缩写:DNS;也可以翻译为Domain Name Service)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
作用:进行域名解析
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地址的服务器。
缓存域名服务器:也称为 唯高速缓存服务器,通过向其他域名服务器查询获得 域名->IP 地址记录,将域名查询结果缓存到本地,提高重复查询时的速度。
主域名服务器:特定DNS区域的官方服务器,具有唯一性,权威性,负责维护该区域内所有的 域名->IP地址 的映射记录。
从域名服务器:也称为 辅助域名服务器,其维护的 域名->IP 地址记录,来源于主域名服务器。
搭建DNS服务器需要准备好一台安装好centos7的Linux操作系统。
并且还需了解一些查询域名解析的命令
nslookup是一个域名查询的命令
host
ping
dig
# 临时关闭
systemctl stop firewalld
# 永久关闭
systemctl disabled firewalld
# 临时关闭
setenforce 0
# 永久关闭
sed -i '/^SELINUX=/ s/disabled/enforcing/' /etc/selinux/config
yum install bind* -y
systemctl start named
# 设为开机启动
systemctl enable 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
[root@node-3 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
#nameserver 114.114.114.114
nameserver 127.0.0.1
#(将dns服务地址设为本机主机地址)
[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服务器里的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的配置文件以及重要信息:
主配置文件:/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
zone "sc.com" IN {
type master;
file "sc.com.zone";
allow-update { none; };
};
[root@node-3 named]# cp -a named.localhost sc.com.zone
# -a 将文件完美复制,包括权限
[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
[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
当服务启动不了的时候,如何排错?
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 --> 检查配置文件是否出错