深入理解 DNS
深入理解 DNS
简介
DNS(Domain Name System)域名系统,它是一个将域名和 IP 地址相互映射的一个分布式数据库,把容易记忆的主机名转换成主机 IP 地址。
DNS使用 TCP 和 UDP 端口 53。当前,对于每一级域名长度的限制是 63 个字符,域名总长度则不能超过 253 个字符。
DNS备份
为防止服务中断和网络攻击,全球共有13台根DNS服务器,严格意义上来说不是13台,而是13个服务集群,为什么是13?
专有名词
- FQDN:完整合法域名,也就是根域(绝对域名)
- NS:权威域名服务器
- 顶级域:用来指示某个国家 / 地区或组织使用的名称的类型名称,例如 .com
- 二级域:个人或组织在因特网上使用的注册名称,例如 google.com
- 子域:已注册的二级域名派生的域名,一般就是网站名,例如 www.google.com
- 主机名:标识网络上的特定计算机,例如 h1.www.google.com
DNS的基本解析流程
- 以客户端浏览器访问
www.lbinin.com域名为例,首先,它会去检查当前浏览器缓存,如果有,就直接响应,如果没有,就继续往下找 - 接着,操作系统会去检查自己的 host 文件,如果从中没找到对应关系,会再到系统 DNS 缓存中查,如果缓存中有,就直接返回该域名所对应的 IP
- 如果缓存中没有,则会向我们事先设置好的 DNS 服务器 [ 一般有两个, 主 & 备 ] 去请求,即所谓的
递归查询,DNS 服务器首先会到自身解析数据库中去查 - 如果 DNS 服务器在自己的解析库中也没找到,它就会自动帮我们向根发送询问请求
- 此时,根看到要请求的是
com的后缀,就会把com所在的 ns 服务器告诉我们的 DNS - 然后,我们的 DNS 服务器就会去请求
com所在的 ns 服务器(权威域名服务器) - 当请求到达
comns 服务器时,com一看域名是在lbinin这个域下的,就会把lbinin所在的 ns 服务器再告诉我们的 DNS 服务器 - 再然后,我们的 DNS 服务器就会去请求
lbinin这个域的 ns 服务器 lbinin这个域的 ns 服务器一看是要访问www就直接找到了www对应的「A记录」的 IP,并把它丢给我们的 DNS,上面逐个询问的过程,即迭代查询- 最后,我们的 DNS 再把最终解析到的这个 IP 丢给我们的客户端,然后客户端就直接拿着去访问了。
流程总结
浏览器缓存
深入理解 DNS的更多相关文章
- 理解DNS
理解DNS 写在前面: 目前,我们大部分的网络通信都是基于TCP/IP协议的,而TCP/IP又基于IP地址作为唯一标识进行通信,随着需要记忆的IP地址数量的增多,肯定会超出我们的记忆能力范围,但如果使 ...
- 简单理解DNS解析流程(一)
0x0 简单理解dns DNS服务器里存着一张表 表中放着域名和IP地址,域名和IP地址以映射关系保存,即一对一 浏览器访问某个域名,实际上是访问它的ip地址 所以浏览器需要知道域名对应的ip地址 如 ...
- 不为人知的网络编程(九):理论联系实际,全方位深入理解DNS
本文原作者:selfboot,博客地址:selfboot.cn,Github地址:github.com/selfboot,感谢原作者的技术分享. 1.引言 对于 DNS(Domain Name Sys ...
- dig理解DNS的解析过程 - 阿权的书房
关于DNS的常识,可以阅读附录的一些参考资料.本文旨在尝试举例用dig命令理解这个过程,并非权威知识,仅供参考.测试域名为阿权的书房的域名 www.aslibra.com 和 www.163.com. ...
- dig理解dns主备 - 阿权的书房
dns的解析一般都授权两个以上,防止单点故障. 比如阿权的书房的域名 www.aslibra.com,授权两台ns.aslibra.com 和 ns2.aslibra.com,如果单点故障会怎么样呢? ...
- DNS 原理入门
导读 DNS 是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识.本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作.我的目标是,读完此文后,你就能完全理解DNS. 一 ...
- 在Debian上用Bind 配置DNS服务器
1 什么是DNS 初学者可能不理解DNS到底是什么,干什么用.我是在1998年大学毕业时才听说这个词的.那时我在聊天室碰到潍坊信息港的一个网管,我恬不知耻地说我也是个网管,他说也维护DNS吗?我说,D ...
- DNS原理
DNS 是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识. 本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作.我的目标是,读完此文后,你就能完全理解DNS. 一.D ...
- 浅入DNS
1.DNS是怎么工作的 首先我们可以很简单的理解DNS协议,它就是一个将域名与ip地址进行双向转换的协议,而消息类型只有查询和回应2种类型.那客户端查询域名,是要请求谁呢?答案是域名服务器,现在域名服 ...
随机推荐
- 设置Linux支持中文
1.首先在command输入locale,可以看到Linux下默认的系统语言的是英文 2.vim ~/.bashrc打开这个文件,该文件夹相当于系统配置文件 3.打开后,将后三行命令输入到文档中,最后 ...
- Ubuntu 安装中文
系统环境:
- 经验分享:程序员如何快速定位问题(BUG)
让我掉下眼泪的 不止内存泄漏 让我夜夜不眠的 不止你的需求 明天还要改多久 你攥着我的手 让我感到为难的 是善变的需求 发布总是在半夜 回滚是永远的愁 错误(Bug)随时的暴漏 困扰着我心头 作为程序 ...
- Cocos2d-x 学习笔记(11.6) Sequence
1. Sequence 动作序列.动作按参数顺序执行,动作总时长为每个动作的时长之和. 1.1 成员变量 FiniteTimeAction *_actions[]; float _split; // ...
- MacOS访达增强工具-TotalFinder
TotalFinder 是Mac上最好用的Finder增强工具,TotalFinder 提供了多标签式浏览.拷贝路径.剪切文件.显示隐藏文件.双栏窗口模式.彩色标签等功能 彩色的标签 将彩色带回El ...
- win10下安装openssl
1.下载运行工具:ActivePerl-5.22.1.2201-MSWin32-x64-299574.msi, 安装. 2.执行:perl example.pl,若显示“Hello from Acti ...
- QCustomplot使用分享(九) 绘制图表-多功能游标
目录 一.概述 二.效果图 三.源码讲解 1.源码结构 2.头文件 3.添加游标 4.监测移动 5.移动游标 6.其他函数 四.测试方式 1.测试工程 2.测试文件 3.测试代码 五.相关文章 六.总 ...
- 玩转OneNET物联网平台之简介
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- 百万年薪python之路 -- 软件的开发规范
一. 软件的开发规范 什么是开发规范?为什么要有开发规范呢? 你现在包括之前写的一些程序,所谓的'项目',都是在一个py文件下完成的,代码量撑死也就几百行,你认为没问题,挺好.但是真正的后端开发的项目 ...
- 小房子配置开发实例-IT资产管理(资产类管理)--开发设计过程
小房子(Houselet)作为一个集开发和应用为一体的管理软件平台,通过数据库配置开发的方式来开发管理系统:目的在于辅助企业低成本快速建设管理系统.且系统为开放的,随时可以维护升级的,随企业管理的需要 ...