目前大多数网络通信都是采用TCP/IP协议,而TCP/IP协议的基础就是IP地址,因此计算机在网络中通信时只能识别纯数字组成的IP地址。但在实际工作生活中,我们只需要在浏览器地址栏中输入一串容易记住的域名,就可以访问相应的网站。DNS在这个过程中起着重要作用。接下来我们就来简单介绍一下DNS的原理和解析过程。
1.什么是 DNS
DNS 是名称
DNS是“ Name ”的缩写,中文意思为“域名系统”。DNS是互联网中的一项核心服务,是一个用于映射域名和IP地址的分布式数据库,将简单明了的域名翻译成计算机可以识别的IP地址,让用户更加快捷方便地访问互联网。
互联网连接着全球资源,单一的域名服务器不足以支撑所有的地址转换操作,因此全球范围内存在多个域名服务器协同工作。早在1983年,互联网就开始采用分层树形结构的命名方式,使用分布式域名系统进行解析操作。这样不仅提高了域名解析的效率,还保证了域名解析的稳定性,系统中如果单个域名服务器发生故障,不会对整个DNS系统的正常运行造成太大影响。
2. 域名结构
互联网采用分层树状的命名方式,任何接入互联网的主机或路由器都有一个唯一的分层名称,即域名。
域名的结构由一系列用点分隔的数字组成。它看起来像这样:“….三级域名.二级域名.顶级域名”
各级域名均由其上一级的域名管理机构进行管理,最高级别的顶级域名由ICANN进行管理。
3.域名服务器
互联网上的DNS域名服务器也是分等级的,每个域名服务器只管辖域名体系的一部分。根据域名服务器所扮演的角色,域名服务器可以分为四种不同的类型:
根 DNS 服务器:根 DNS 服务器是最高级别的 DNS 服务器,也是最重要的 DNS 服务器。根 DNS 服务器知道域名和
IP地址。如果本地域名服务器无法解析域名,则会首先转向根域名服务器。
顶级域名服务器:顶级域名服务器负责管理该服务器上注册的所有子域名。
当收到查询请求时,给出相应的答案(可能是最终的结果,也可能是下一步需要查询的域名服务器的IP地址)。
权威域名服务器:
这就是上面提到的负责某个区域的域名服务器。当权威域名服务器无法给出最终的查询答案时,它会告诉发出查询请求的 DNS 客户端下一步该去寻找哪个权威域名服务器。
本地域名服务器:
本地域名服务器不属于下图树形结构中的DNS域名服务器,但对域名系统来说却非常重要。当主机发送DNS查询请求时,查询请求消息被发送到本地域名服务器。每个互联网服务提供商ISP都可以拥有一个本地域名服务器。
每个域在每一级都有自己的域名服务器,而每一级域名服务器都知道其下一级所有域名服务器的 IP 地址。因此,它们从根域名服务器开始以树形结构相互连接。由于所有域名服务器都知道根域名服务器的 IP 地址,因此如果从根开始按照顺序,就可以访问全球所有域名服务器的地址。
4.DNS查询步骤
域名解析一般采用递归查询的方式,完整的DNS解析过程有以下步骤:
(1)检查浏览器缓存
当用户通过浏览器访问某个域名时,浏览器首先会查找自己的缓存,看是否有该域名对应的IP地址(如果该域名以前被访问过,并且没有清除过缓存,那么就会存在)。
(2)检查系统缓存
当浏览器缓存中没有该域名对应的IP时,会自动检查用户计算机系统DNS缓存中的Hosts文件中是否有该域名对应的IP。
(3)检查路由器缓存
当浏览器和系统缓存中都没有该IP对应的域名时,就进入路由器缓存中查看。以上三步都是客户端的DNS缓存。
(4)检查 ISP DNS 缓存
当在用户客户端上找不到该域名对应的IP地址时,就会进入ISP的DNS缓存中进行查询。比如你使用的是电信网络,就会进入电信DNS缓存服务器进行查找。
(5)查询根域名服务器
如果以上没有完成,请输入根服务器进行查询。全球只有13个根域名服务器,1个主根域名服务器,其余12个
它是二级根域名服务器,根域名收到请求后会检查区域文件记录,如果没有记录,就会告诉本地DNS服务器自己管辖的顶级域名(如.com、.cn等)的服务器IP。
(6)查询顶级域名服务器
顶级域名服务器收到请求后,检查区域文件记录,如果没有记录,则告知本地DNS服务器其管辖范围内的权威域名服务器的IP地址。
(7)查询权威域名(主域名)服务器
权威域名服务器收到请求后,会查询自己的缓存,如果没有找到该记录,就会到下一级域名服务器去查找,并重复此步骤,直到找到正确的记录。
(8)将结果保存到缓存中
本地域名服务器将返回结果保存到缓存中,以便下次使用,并将结果反馈给客户端。客户端使用此IP
通过搜索DNS递归查询地址即可访问目标Web服务器。
DNS系统起着将域名解析为IP地址的重要作用,是实现计算机之间访问和互联互通的关键和基础。因此DNS解析的安全对于维护网络稳定运行至关重要。企业管理者和运营者一定要做好域名和域名解析的安全防护工作,定期进行数据扫描分析,全方位进行DNS风险监控,实时关注DNS运行状况,做好应急备份准备。一旦发现问题或发生故障,尽快响应解决,将DNS故障风险和带来的损失降到最低。
5. 常见记录类型
通过设置不同的解析记录,可以对主机名实现不同的解析效果,从而满足不同场景下的域名解析需求。常见的域名解析记录主要有以下几种。
一个记录
A()记录用于指定主机名(或域名)对应的IP地址记录,用户可以将域名下的网站服务器指向自己的网站
还可以设置域名的子域名,简单来说A记录就是指定域名对应的IP地址,比如我们添加一条A记录,将www主机指向IP192.168.1.1,那么你访问www主机的时候就会解析到192.168.1.1这个IP。
CNAME 记录
通常叫别名解析,是主机名到主机名的映射。当你需要将一个域名指向另一个域名,然后另一个域名提供 IP 地址时,就需要添加 CNAME 记录。
CNAME的场景包括CDN、企业邮箱、全局流量管理等。与A记录不同的是,CNAME别名记录中设置的值不是一个固定的IP地址,而是主机的别名地址。
别名解析可以提供更大的灵活性,方便统一管理。例如当主机因为某些因素需要更换IP地址时,如果给域名做了CNAME记录,那么可以同时更新别名的解析方向,而不需要重新进行解析操作。
NS 记录
如果需要将子域名交给其他DNS服务商解析,需要添加NS记录(名称
NS记录即域名服务器记录,用于指定使用哪个DNS服务器来解析域名。NS记录中的IP即为DNS服务器的IP地址。大部分域名注册商默认使用自己的NS服务器来解析用户的DNS记录。DNS服务器NS记录地址一般以如下形式出现: 等。
SOA 记录
SOA,即授权记录起始,指示众多 NS 记录中的哪一个是主服务器。在任何 DNS 记录文件中,SOA(
) 记录。SOA 资源记录表示此 DNS 名称服务器是此 DNS 域中数据的最佳信息来源。
SOA记录与NS记录的区别:NS记录表示域名服务器记录,用来指定该域名由哪个DNS服务器来解析;SOA记录设置了一些数据的版本以及更新和过期时间信息。
AAAA 记录
AAAA 记录 (AAAA)
)是用于将域名解析到IPv6地址的DNS记录。用户可以将域名解析到IPv6地址,也可以将子域名解析到IPv6地址。国内大部分IDC都不支持AAAA记录的解析,所以如果要进行AAAA记录解析,需要找一些专业的域名NS记录的域名解析服务商,他们会提供AAAA记录的设置。中科三方云解析支持IPv6环境下的AAAA记录解析。
TXT 记录
TXT 记录一般指主机名或域名的标识和描述。例如:admin IN TXT “管理员,电话:”,mail IN TXT
“邮件主机,存储在 xxx,由:AAA 管理”,Jim IN TXT “:
”,也就是通过设置TXT记录内容,方便别人联系你。TXT记录也常用于做SPF
SSL 证书的日志记录(反垃圾邮件)和 DNS 验证等。
MX 记录
MX(邮箱
)记录是邮件交换记录,主要用于邮箱解析。邮件系统在发送邮件时,根据收件人的地址后缀来定位邮件服务器。MX记录允许设置优先级,当有多台邮件服务器时,会根据此值来确定投递邮件的服务器。
MX记录的权重对于Mail服务来说非常重要,在发送邮件时,Mail服务器首先解析域名,查找MX记录,首先找到权重最小的服务器(例如,
10),如果可以连通,则将邮件发送给该服务器;如果无法连通MX记录10的服务器,则将邮件发送给权重更高的邮件服务器。
PTR 记录
PTR是“反向DNS”的缩写。
可以粗略理解为DNS的逆向,是用于将IP地址映射到对应主机名的指针记录,也可以看成A记录的逆向,即通过IP来访问域名。
SRV 记录
即服务位置(SRV)资源记录用于定义提供特定服务的服务器的位置,比如主机()、端口(port)等。
URL 转发
URL转发是指通过服务器的特殊设置,将当前访问的域名重定向到另一个指定的网络地址。根据目标地址是否隐藏,URL转发可分为显式URL和隐式URL。
显式URL:将域名指向一个http(s)协议地址,访问该域名时会自动跳转到目标地址,地址栏显示目标网站地址。
隐式URL:与显式URL类似,但是隐式转发会隐藏真实的目标地址,地址栏仍然会显示之前输入的地址。
学习网络安全技术的途径有三种:
第一类是报考网络安全专业,现在叫网络空间安全专业。主要专业课程有:程序设计、计算机组成原理、数据结构、操作系统原理、数据库系统、计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习、多媒体技术、信息检索、舆情分析等。
第二种是自学,就是在网上找资源和教程,或者想办法认识一些大佬,抱住他们的大腿。但是这种方法很耗时,而且学习没有计划,你可能会感觉学了很久都没有进步,很容易灰心丧气。
如果你对网络安全入门感兴趣,那么有需要的话可以点击这里查看网络安全大福利:免费分享入门、进阶全套282G学习资源包!
第三个选择是寻求培训。
接下来我会教大家如何从零基础开始快速入门网络安全。
学习网络安全应该先学编程还是先学计算机基础?这是一个有争议的问题。有人建议先学编程,也有人建议先学计算机基础。其实两者都是必须的,而且对于学习网络安全来说,两者都很重要。但是,对于没有基础知识的人,或者急于转行的人来说,学习编程或计算机基础很难,而且耗时太长。
第一阶段:基础准备4至6周
这一阶段是所有准备进入安防行业的人必学的部分,俗话说:不打基础,地动山摇。
第二阶段:网络渗透
学习基础时间:1周~2周:
①了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马等)为后续的WEB渗透测试打下基础。
② 多看看论坛上的网络渗透案例,了解案例背后的思路。每个网站都不一样,所以思路最重要。
③学会提问的艺术。遇到不懂的地方,要善于提问。
配置渗透环境时间:3周~4周:
①了解渗透测试的常用工具,如(AWVS、NMAP、BURP、 等)。
② 下载这些工具的无后门版本并安装到您的计算机上。
③了解这些工具的使用场景,知道基本的使用方法,建议多去网上搜索。
实际渗透操作时间:约6周:
① 在网上查找实际渗透案例,深入了解SQL注入、文件上传、解析漏洞等实际用途。
②搭建自己的漏洞环境测试,推荐使用DWVA、SQLi-labs、-labs、bWAPP。
③了解渗透测试的各个阶段,以及每个阶段需要采取什么行动:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过WAF的方法,并创建自己的脚本。
⑤研究文件上传的原理,如何截断、双后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、、)等,参考:上传攻击框架。
⑥了解XSS的形成原理和类型,在DWVA中进行实践,使用有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马程序,并尝试编写一句话木马程序。
⑧ Linux提权研究,关键词:提权
扫一扫在手机端查看
-
Tags : dns解析
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。