DNS学习(一)
DNS学习实践
原理简介
当前TCP/IP网络中的设备之间进行通信,是利用和依赖于IP地址实现的。但数字形式的IP地址是很难记忆的。我们可以给每个网络设备起一个友好的名称,如:www.baidu.com,这种由文字组成的名称,显而易见要更容易记忆。但是计算机不会理解这种名称的,我们可以利用一种名字解析服务将名称转化成(解析)成IP地址。从而我们就可以利用名称来直接访问网络中设备了。
DNS:Domain Name System 域名系统,应用层协议,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网
基于C/S架构,服务器端:53/udp, 53/tcp
BIND:Bekerley Internet Name Domain,由 ISC (www.isc.org)提供的DNS软件实现
域名结构系统
- 根域
- 一级域名:Top Level Domain: tld
com, edu, mil, gov, net, org, int,arpa
三类:组织域、国家域(.cn, .ca, .hk, .tw)、反向域 - 二级域名:magedu.com
- 三级域名:study.magedu.com
- 最多可达到127级域名
DNS服务器工作原理
DNS服务器查询:
1.迭代查询客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。(让你自己去问,例如代理服务器和不同级的域名服务器)
2.递归查询:客户端只发一次请求,要求对方给出最终结果。(帮你去问,例如主机和代理服务器)
查询流程:主机-->host文件--> DNS缓存-->DNS 服务器-->DNS服务器缓存-->DNS服务器(迭代查询)-->根-->顶级域名-->二级域名DNS...
Linux host文件:/etc/hosts
windows:%WINDIR%/system32/drivers/etc/hosts
解析类型
- FQDN (Fully Qualified Domain Name)–> IP 正向解析
- IP –> FQDN 反向解析