大家好我是云计算磊哥从业20年的IT老鸟。运维培训15年总结了一套从入门到精通的全运维开发宝典手册。准备用300天时间写一套博文手把手从安装软件讲起从行业到产品从过去到未来从理论到操作从视频到文档工具一站式。从零基础入门到20k运维开发工程师岗位诸多就业问题。多方位全方面的给你讲清楚云计算这个行业该如何做。关注我。后续更精彩。本文介绍了 DNS 域名系统的核心概念、解析流程与查询方式并讲解了在 Linux 下搭建缓存 DNS、主 DNS 服务器的具体配置以及域名申请与备案的基本步骤。域名系统DNS1 简介1.1 前言互联网的访问依靠IP地址。但IP地址不好记。所以使用域名服务DNS好记名来替代访问的地址。1.2 基本概念hosts文件老的作用 实现名字解析主要为本地主机名、集群节点提供快速解析数据库 平面式结构集中式数据库缺点不便于查询更新NetBios(windows)DNSDNSDomain Name System域名系统分布式层次性作用 实现名字解析例如将主机名解析为IPFQDNFQDN(Fully Qualified Domain Name)完全合格域名/全称域名主机名.二级域.顶级域.根域命名空间命名空间name space 用于给互联网上的主机命名的一种机制DNS区域文件DNS服务器存储某个命名空间的域名记录文件。域名记录IP 和 域名的对应关系。权威名称服务器权威名称服务器 存储并提供某个区域的实际数据例如126.com的DNS服务器记录了126.com域中所有主机的记录如www.126.com. x.x.x.xftp.126.com. y.y.y.y非权威名称服务器非权威名称服务器 不存储某个区域的实际数据仅缓存DNS服务器虽然可以提供查询但查询的内容不具有权威性DNS解析流程例如客户端解析 www.126.com客户端查询自己的缓存包含hosts中的记录如果没有将查询发送/etc/resolv.conf中的DNS服务器如果本地DNS服务器对于请求的信息具有权威性会将权威答案发送到客户端。否则不具有权威性如果DNS服务器在其缓存中有请求信息则将非权威答案发送到客户端如果缓存中没有该查询信息DNS服务器将搜索权威DNS服务器以查找信息a. 从根区域开始按照DNS层次结构向下搜索直至对于信息具有权威的名称服务器为客户端获答案DNS服务器将信息传递给客户端 并在自己的缓存中保留一个副本以备以后查找。b. 转发到其它DNS服务器递归/迭代1递归查询递归查询是一种DNS 服务器的查询模式在该模式下DNS 服务器接收到客户机请求必须使用一个准确的查询结果回复客户机。如果DNS 服务器本地没有存储查询DNS 信息那么该服务器会询问其他服务器并将返回的查询结果提交给客户机。2迭代查询DNS 服务器另外一种查询方式为迭代查询DNS 服务器会向客户机提供其他能够解析查询请求的DNS 服务器地址当客户机发送查询请求时DNS服务器并不直接回复查询结果而是告诉客户机另一台DNS 服务器地址客户机再向这台DNS 服务器提交请求依次循环直到返回查询的结果为止。服务器类型缓存服务器主服务器正向/反向从服务器不维护区域文件转发服务器正向解析/反向解析DNS服务主要起到两个作用1可以把相对应的域名解析为对应的IP地址这叫正向解析。2可以把相对应的IP地址解析为对应的域名这叫反向解析。反垃圾邮件2 配置-缓存DNS2.1 环境DNS服务器1:10.18.41.251DNS客户机:10.18.41.82.2 部署DNS服务器1安装伯克利域名服务[rootlocalhost ~]# yum -y install bind bind-chroot[rootlocalhost ~]# yum list | grep bindbind.x86_6432:9.9.4-61.el7 base2观察域名服务设置启动查询功能[rootlocalhost ~]# vim /etc/named.confoptions{listen-on port53{any;};//改或者删除 listen-on-v6 port53{any;};//改或者删除 allow-query{any;};//改或者删除3启动DNS服务器[rootlocalhost ~]# systemctl start named[rootlocalhost ~]# systemctl enable named4观察是否启动DNS查询到DNS53号端口即开启成功否则失败。[rootaliyun ~]# ss -tuln |grep :53 |column -t //以列规整显示udp UNCONN00:::53 :::* tcp LISTEN010:::53 :::*5防火墙firewalld[rootlocalhost ~]# firewall-cmd --permanent --add-servicedns[rootlocalhost ~]# firewall-cmd --reload2.3 客户端测试DNS解析11. 客户端测试DNS解析[rootlocalhost ~]#cat /etc/resolv.confnameserver 上一台服务器的IP地址2.DNS服务器正常提供服务后[rootlocalhost ~]#dig www.baidu.com;;ANSWER SECTION: www.baidu.com.1055IN CNAME www.a.shifen.com. www.a.shifen.com.155IN A111.13.100.92 //目标主机的IP地址;;SERVER: 上一台服务器的IP#53(上一台服务器的IP)3进行通信[rootlocalhost ~]#ping www.baidu.comPING www.a.shifen.com(111.13.100.92)56(84)bytes of data.64bytes from111.13.100.92:icmp_seq1ttl52time15.4ms64bytes from111.13.100.92:icmp_seq2ttl52time14.5ms2.4 解析原理查看DNS服务主配置文件[rootlocalhost ~]# vim /etc/named.conf 根提示区域 [默认] zone . IN { type hiny; file named.ca };3 配置-主DNS3.1 功能正向区 提供正向解析即将域名解析为IP反向区 提供反向解析即将IP解析为域名 [了解]3.2 环境10.18.43.210–DNS服务器10.18.43.183-DNS客户机3.3 案例增加xulei.com1. 主配置文件[rootlocalhost ~]# vim /etc/named.confzonexulei.com{typemaster;filexulei.com.zone;};2. 数据库文件(区域文件)[rootlocalhost ~]# vim /var/named/xulei.com.zone$TTL600 IN SOA root(20170331001H 15M 1W 1D)IN NS dns //注意域名的位置是空的可以写也可以空。 dns IN A114.215.71.214 www IN A1.1.1.1 //地址是多少不重要。 bbs IN A1.1.1.2 oa IN A1.1.1.33.4 注释数据库文件 表示当前域名 www.xulei.com.www 第一个字段继承 SOA: 起始授权记录 强制 NS: DNS服务器记录 强制 A: 主机记录 CNAME: 别名记录3.5 客户端查询1.客户端指定本地DNS[rootlocalhost ~]# cat /etc/resolv.confnameserver192.168.2.1152.客户端解析域名[rootlocalhost ~]# dig www.baidu.com[rootlocalhost ~]# nslookup www.baidu.com[rootlocalhost ~]# host www.baidu.com[rootlocalhost ~]# host -t A www.baidu.com //正向解析查询A记录[rootlocalhost ~]# host 192.168.5.100 //反向解析查询PTR记录[rootlocalhost ~]# host www.baidu.com 192.168.5.240 //使用DNS服务器192.168.5.240解析3.6 权威服务器[rootlocalhost ~]# dig www.126.com //使用/etc/resolv.conf设置的DNSflagsqr rd ra 非权威答案 flagsqr aa rd 权威答案4 ISP域名申请1.搜索万网或域名注册访问阿里云网站。2.登录阿里云网站。3.通过控制台找到域名注册服务。4.输入新域名根据需要选购合适域名。5.选择购买。6.选择绑定支付宝账号。7.邮箱验证。8.支付。9.返回域名控制面板绑定IP地址。10.域名备案。配套视频https://edu.csdn.net/course/detail/40861