目录
为什么要域名
十六进制 的MAC地址-->十进制的4位数字,IP地址-->好记的名字,域名
1 域名的形式
- 有层次的结构,是一串用“.”分隔的多个单词
- 最右边的被称为“顶级域名”,然后是“二级域名”,层级关系向左依次降低。
- 最左边的是主机名,通常用来表明主机的用途,比如“www”表示提供万维网服务、“mail”表示提供邮件服务
- 名字的关键是要让我们容易记忆
- DNS 会把域名转换为相应的IP地址
- 域名的本质:名字空间系统
- 使用多级域名就可以划分出不同的国家、地区、组织、公司、部门,每个域名都是独一无二的,可以作为一种身份的标识。
- XML 里使用URI作为名字空间,也是间接使用里域名
2 域名的解析
- 域名解析:域名转换为IP地址的过程,叫做域名解析
- DNS,域名解析系统
- DNS 是一个三层、树状、分布式服务
- 根域名服务器(Root DNS Server):管理顶级域名服务器,返回“com”“net”“cn”等顶级域名服务器的 IP 地址,有13组。
- 顶级域名服务器(Top-level DNS Server):管理各自域名下的权威域名服务器,比如 com 顶级域名服务器可以返回 apple.com 域名服务器的 IP 地址
- 权威域名服务器(Authoritative DNS Server):管理自己域名下主机的 IP 地址,比如 apple.com 权威域名服务器可以返回 www.apple.com 的 IP 地址。
- 如何查询:自顶向下查询,域名从右到左
举例:访问“www.apple.com”进行的三次查询- 访问根域名服务器,它会告诉你“com”顶级域名服务器的地址;
- 访问“com”顶级域名服务器,它再告诉你“apple.com”域名服务器的地址;
- 最后访问“apple.com”域名服务器,就得到了“www.apple.com”的地址
- 如何减轻域名解析的压力--缓存
- 方法1:大公司、网络运营商建立自己的DNS服务器(非权威域名服务器),作为用户DNS查询的代理,代替用户访问核心DNS系统。缓存之前的查询结果,无需再次向跟服务器发起查询。
- 方法2:操作系统对DNS解析结果做缓存。
- 方法3:操作系统的“主机映射文件”,如 “/etc/hosts”,如果操作系统在缓存中找不到DNS记录就会找这个文件
3 域名的新玩法
-
玩法1:重定向
- 对外服务的域名不变,IP地址随意变动,如果主机需要迁移直接更改DNS的记录,使得域名指向其他机器。
-
玩法2:搭建内部使用的DNS作为名字服务器
- 开发的内部服务使用域名标记,发起网络通信是不必写IP地址,直接使用域名。
-
玩法3:基于域名实现负载均衡
- 域名解析可以返回多个IP地址,所以一个域名可以对应多台主机,客户端收到多个IP地址后,自己使用轮询算法依次向服务器发起请求,实现负载均衡。
- 域名解析可以配置内部使用的策略,返回离客户端最近的主机,或者返回当前服务质量最好的主机,这样DNS端把请求分发到不同的服务器,实现负载均衡。
-
不好的玩法4:域名屏蔽和域名劫持
- 域名屏蔽:对域名直接不解析,返回错误
- 域名劫持:访问A,DNS给了B
4 注意事项
- 域名总长度在 253个字符内,每一级域名长度不超过 63个字符
- 域名大小写不敏感
- 域名过长或层级过多,与初衷违背,难记
5 问题
1 如果在浏览器地址栏随便输入一个不存在的域名,它的DNS 解析过程是什么样的?
- 检查本地dns缓存是否存在解析"www.不存在.com"域名的ip
- 如果没有找到,继续查找本地 hosts 文件内是否有对应的固定记录
- 如果hosts中还是没有那就根据本地网卡被分配的 dns server ip 来进行解析,dns server ip 一般是“非官方”的ip,比如谷歌的“8.8.8.8”,本身它也会对查找的域名解析结果进行缓存,如果它没有缓存或者缓存失效,则先去顶级域名服务器“com”去查找“不存在.com”的域名服务器ip,结果发现不存在,于是直接返回告诉浏览器域名解析错误,当然这两次查找过程是基于udp协议。
总结:浏览器缓存-》操作系统缓存-》hosts-》dns
2 如果因为某些原因,DNS失效或者出错,会出现什么后果?
访问不了,客户度直接报错“Failed host lookup”。