1.DNS
DNS是一整套从域名映射到IP的系统
1.1 DNS背景
TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序,但是IP地址不方便记忆,例如我们想访问百度就会在浏览器中输入baidu.com而不是百度的IP地址。于是人们发明了一种叫主机名的东西, 是一个字符串, 并且使用hosts文件来描述主机名和IP地址的关系。
最初, 通过互连网信息中心(SRI-NIC)来管理这个hosts文件的.
- 如果一个新计算机要接入网络, 或者某个计算机IP变更, 都需要到信息中心申请变更hosts文件.
- 其他计算机也需要定期下载更新新版本的hosts文件才能正确上网
这样就太麻烦了, 于是产生了DNS系统.
- 一个组织的系统管理机构, 维护系统内的每个主机的IP和主机名的对应关系
- 如果新计算机接入网络, 将这个信息注册到数据库中;
- 用户输入域名的时候, 会自动查询DNS服务器, 由DNS服务器检索数据库, 得到对应的IP地址.
至今, 我们的计算机上仍然保留了hosts文件. 在域名解析的过程中仍然会优先查找hosts文件的内容
我们可以使用cat /etc/hosts命令来查看我们的hosts文件
1.2 域名简介
主域名是用来识别主机名称和主机所属的组织机构的一种分层结构的名称例如www.baidu.com
- com: 一级域名. 表示这是一个企业域名. 同级的还有 "net"(网络提供商), "org"(非盈利组织) 等.
- baidu: 二级域名, 公司名.
- www: 只是一种习惯用法. 之前人们在使用域名时, 往往命名成类似于ftp.xxx.xxx/www.xxx.xxx这样的格式, 来表示主机支持的协议.
1.3 域名解析过程
当我们使用浏览器输入一个url时,如何完成域名解析的过程。
- 1.本地电脑会检查浏览器的DNS缓存中是否有这个url对应的IP地址,如果有整个解析过程结束。
- 2.当浏览器中DNS缓存中没有找到,计算机就会到操作系统的DNS缓存(如内存中的DNS缓存或本地的hosts文件)中去找,如果能找到,整个解析过程结束。
- 3.浏览器向本地配置的域名解析服务器发送查询请求。域名解析服务器一般由运营商提供,如果本地域名解析服务器中能找到,整个解析过程结束。本地域名解析服务器的地址通常通过DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)或手动设置获得。
- 4.如果本地的域名解析服务器没有找到,那么就向根域名服务器发起查询请求。根域名服务器虽然不存储每个域名的具体信息,但它知道每个顶级域名(如.com, .net, .org等)的权威DNS服务器的地址。
- 5.根DNS服务器会告诉本地DNS顶级域名服务器的IP地址。
- 6.本地域名解析服务器根据根域名服务器返回的顶级域名服务器的地址,继续查询该顶级域名服务器。
- 7.顶级域名服务器会返回该域名对应的权威DNS服务器的地址。
- 8.本地域名解析服务器再向权威DNS服务器发起查询。
- 9.得到该域名的IP地址。
- 10.本地域名解析服务器将查询到的IP地址返回给操作系统,并同时缓存该结果,以便下次快速查询。操作系统将IP地址返回给浏览器,浏览器