这两天有人问我DNS,熟悉又陌生,思绪突然回到了两年前,现在翻开之前的ppt突然对自己有了崇拜感。
整理下DNS基础知识,让PM也速度了解什么是DNS。
1、DNS怎么来的
20世纪70年代世界上第一个网络ARPAnet诞生,此时需要解决一个问题,我不可能记住每一个ip地址去访问你的服务/主机,于是我需要一个,主机名字-地址的映射表,只需要访问主机名就可以访问你的服务。于是出现了HOSTS.TXT文件。
因为每天都有更新的内容,于是HOSTS.TXT也需要每天更新,并且同步给其他主机,每个主机保存一份最新的文件。随着ip地址增多,用户的增多,出现了如下问题:
1、流量和负载:由于分发文件所引起的网络流量和处理器负载使得当时线路变得不堪重负。
2、名字冲突:在HOSTS.TXT文件中任何两台主机都不能重名。虽然NIC能以某种方式在分配地址时保证惟一性,但是它对主机命名是没有权利过问的。如果有人添加了重名的主机,打乱整个设计,系统也无能为力
3、一致性:在不断扩张的网络上,要想维持HOSTS.TXT文件的一致性变得越来越难。新的HOSTS.TXT文件还没有到达庞大的ARPAnet最边缘时,网络另一端的主机地址已经改变,或是又有用户要添加新主机了。
怎么办?
好吧!创造一个系统——DNS系统(1984,Paul Mockapetris)
2、DNS作用
作用:解决1中存在的问题。
定义:DNS,域名系统(Domain Name System)
DNS是计算机域名系统或域名解析服务器(Domain Name System 或Domain NameService) 的缩写。因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。
3、DNS结构
最终目的:提供所有互联网主机的信息。
3.3:DNS的分布式数据库是以域名为索引,每个域名是一棵逆向树中的路径,这棵逆向树就是域名空间(domainname space)
3.2域名:每个节点有一个可长达63个字符的文本标号。标识它在数据库中的位置。
3.3域(domain):域名空间中的一棵子树,域的名字就是这棵子树的顶端节点的域名。
备注:完整域名,从该节点到根的路径上所有节点标号的顺序连接。从节点向根方向读,用“.”分隔路径。绝对域名,相对于根而言的,唯一确定一个节点在层次结构中的位置。
3.4授权(delegation):实现DNS数据的分散管理,对域进行授权,就是将子域的管理责任授予另一个组织。
3.5名字服务器和区:存储关于域名空间的信息的程序为名字服务器(nameserver)它含有域名空间的一部分完整信息,这一部分就是区(zone)
3.6区和域的区别:
区edu :只包含edu 中的数据
域edu :不仅包含edu中的数据还包含berkeley.edu/nwu.edu/purdue.edu中的数据,这些数据可能主要是指授权子域的指针
3.7资源记录RR(resource record):存放与域名相关的数据
3.8区数据文件:大部分条目称为DNS资源记录
SOA——定义一个DNS区
NS ——表示区的服务器,授权子域
A ——名字到地址的转化
AAAA ——名字到IPV6地址的转化
PTR ——地址到名字的转换
MX ——控制邮件的路由
DS ——签发子区的秘钥的秘钥散列
DNSKEY DNS——名称的公钥
NSEC 和DNSSEC一起使用,用于否定回答
RRSIG ——带签名,经过身份验证的资源记录集
CNAME ——主机的昵称或者别名
LOC ——地理位置和范围
SRV ——提供知名服务的位置
TXT ——注释或者非键入的信息
3.9DNS查询
•递归查询
一般客户机和服务器之间属递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机;
•迭代查询
一般DNS服务器之间属迭代查询,如:若DNS2不能响应DNS1的请求,则它会将DNS3的IP给DNS1,以便其再向DNS3发出请求;
举例:比如学生问老师一个问题,王老师告诉他答案这之间的叫递归查询。这期间也许王老师也不会,这时王老师问张老师,这之间的查询叫迭代查询!
4、产品工作中
产品开发后,测试阶段,总要链接测试机,这个时候要么绑定代理,要么绑定host,其实最终结果都是在测试机上访问数据。
这个时候只需要找到电脑host文件,更改 主机-ip 记录就行。其实就是用的dns相关知识。
领取专属 10元无门槛券
私享最新 技术干货