1. 域名系统DNS

1.1 主机名和域名的关系

(1)完全限定域名(Fully Qualified Domain Name, FQDN) = 主机名 + 域名

  ①一个域名下可以有多个服务器/主机(如上图中有3台服务器/主机)。

  ②主机名更多的代表一个服务或应用,它物理服务器并有没有一一对应的关系。如www、blog、bbs三个服务网站位于同一台服务器,而edu在一个独立的服务器上。

  ③通常所说的网站域名,严格来说是完全限定域名

(2)域名的层次结构

  ①所有的域名都是以英文“.”开始,是域名的根,根下面是顶级域名,然后依次是二级、三级域名、…。如www.cctv.com.(注意com后面有一个“.”,代表根域名,可以省略)

  ②企业申请域名后,可以在该域名下添加多个主机名,也可以根据需要创建子域名,子域名下又可以有多个主机名。

1.2 域名的解析过程

(1)域名服务器

  ①每台域名服务器并不知道其上一级DNS是谁?但他们都知道根域名服务器

  ②DNS服务器可以创建委派,将其下的某个子域名委派给其他DNS服务器来解析

(2)解析过程(以Client1查询www.sohu.com为例)

  ①Client1向DNS服务器(13.2.1.2)发送域名解析请求

  ②B服务器只负责net域名解析,并不知道哪个DNS服务器负责com域名解析,但它知道根DNS服务器,于是将域名解析的请求转发给根DNS服务器

  ③根DNS服务器返回查询结果,告诉B去查询C服务器

  ④B服务器将域名解析请求转发到C服务器

  ⑤C服务器只负责com名称解析,但sohu.com名称解析委派给了E服务器,于是C服务器告诉B去查询E服务器

  ⑥B服务器将域名解析请求转发到了E服务器。

  ⑦E服务器上有sohu.com域名下的www主机记录,于是www.sohu.com的IP返回给B服务器

  ⑧B服务器将费尽周析查找到的结果缓存一份到本地将解析到的www.sohu.com的IP地址返回给Client1。这个查询结果是B服务器从其他服务器查询得到的(非权威应答)缓存解析的结果。

  ⑨Client2的DNS也指向了13.2.1.2,现在Client2也需要解析www.sohu.com的地址,将域名解析请求发送给B服务器。

  ⑩B服务器将刚刚缓存www.sohu.com的查询结果直接返回给Client2。

(3)其它

  ①权威应答和非权威应答:当Client1向B服务器查询www.inhe.net时,由于B服务器本身存在这条主机记录,这时它向Client1返回的结果被称为权威应答。否则,如果B服务器对域名的解析是从其他服务器查询到的,则为非权威应答(如client查询sohu网站的过程)

  ②client3向E服务器查询www.xueit.com域名时,由于E服务器不存在这条主机记录,因此会向根服务器查询(不是C服务器)。因为对于E来说他只知道根服务器,而并不知道其上一级(C)服务器的存在!

1.3 实战:在Win2003系统上搭建DNS服务器

(1)网络拓扑图

(2)测试环境的搭建

  ①将xp主机和Win2003服务器放入VMNnet8网络。xp的DNS服务器设置192.168.80.20。

  Win2003服务器的“首选的DNS服务器”也设置为192.168.80.20,即Win2003服务器除了为局域网内的其他主机提供DNS解析,本身所需要的DNS解析也由自己提供

  ②创建DNS正向查找区域:如www.abc.com→192.168.80.10→www.abc.com(注意:要选启用DNS服务:“控制面板”→“管理工具”→“服务”→启动“DNS Server”)

    A.正向查找区域:“新建区域”→输入区域名称“abc.com”→选择“创建新文件”(一个区域用一个文件记录),然后一直next。

    B.新建主机:右键“abc.com” →“新建主机”→在主机名中填入“www”,IP为192.168.80.10。

  ③创建DNS反向查找区域:(如192.168.80.10→www.abc.com)

    A.反向查找区域:“新建区域”→“主要区域”→在“网络ID”填入“192.168.80” →选择“创建新文件”。

    B.“新建指针(ptr)” →在主机IP号中填入“10”,主机名为www。

(3)查看和设置DNS服务器的“根服务器”: DNS管理器中选择服务器名→“属性”→“根提示”

(4)测试域名解析

  ①使用ping命令:如ping www.abc.com

  ②查看缓存中的域名解析结果:ipconfig /displaydns

  ③清空DNS缓存:ipconfig /flushdns

  ④nslookup测试域名解析:如nslookup www.baidu.com。或输入nslookup,然后在交互模式下输入想要查询的域名,exit退出。

【测试结果】

  1. C:\Documents and Settings\Administrator>nslookup
  2. *** Can't find server name for address 192.1
  3. *** Default servers are not available
  4. Default Server: UnKnown
  5. Address: 192.168.80.20
  6.  
  7. > www.abc.com //正向查找
  8. Server: UnKnown
  9. Address: 192.168.80.20
  10.  
  11. Name: www.abc.com
  12. Address: 192.168.80.10
  13.  
  14. > 192.168.80.10 //反向查找
  15. Server: UnKnown
  16. Address: 192.168.80.20
  17.  
  18. Name: www
  19. Address: 192.168.80.10
  20.  
  21. > www.baidu.com //查找外网的baidu
  22. Server: UnKnown
  23. Address: 192.168.80.20
  24.  
  25. Non-authoritative answer:
  26. Name: www.a.shifen.com
  27. Addresses: 163.177.151.110, 163.177.151.109
  28. Aliases: www.baidu.com
  29.  
  30. >exit

1.4 实战:抓包分析域名解析过程

(1)在Win2003上运行抓包工具,然后在XP主机ping www.51cto.com

(2)Internet上DNS返回的结果

  ①DNS解析的4种数据包:域名解析请求(第3个数据包)、域名解析请求转发(第4个数据包)、转发包的应答(第7个数据包)及最终查询结果(第9个数据包)

  ②Authoritative nameservers字段中列举了负责解析51cto.com的DNS服务器域名,其IP在Additional record字段中。

(3)返回给客户端的域名解析最终结果

第9章 应用层(1)_域名系统DNS的更多相关文章

  1. [A Top-Down Approach][第二章 应用层]

    [A Top-Down Approach][第二章 应用层] 标签(空格分隔): 未分类 网络应用是计算机网络存在的理由 首先从定义几个关键的应用层概念开始 应用程序所需要的网络服务,客户和服务器,进 ...

  2. 关于域名系统DNS解析IP地址的一些总结

    关于域名系统DNS(Domain Name System) 从域名中解析出IP地址. DNS主要由3部分组成: ① 名称解析器(resolver) ② 域名空间(domain name space) ...

  3. 套接字和域名系统DNS

    套接字产生的原因: 当应用进程通过传输层进行通信时 ,TCP和 UDP将面临同时为多个应用进程提供并行通信的问题.多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据. 为了区别每 ...

  4. 计算机网络之域名系统DNS

    域名系统DNS 域名系统DNS(Domai NameSystem)是因特网使用的命名系统,用于把便于人们使用的机器名字转换为IP地址. 许多应用层软件经常直接使用域名系统,但计算机的用户只是间接而不是 ...

  5. 域名系统-DNS

    域名系统DNS 域名系统DNS(Domain Name System)是互联网使用的命名系统,用来把便于人们使用的机器名转化为IP地址,域名系统就是名字系统. 很多应用层的软件经常直接使用DNS.DN ...

  6. 域名系统DNS和FTP

    域名系统概述 域名系统DNS(Domain Name System)是英特网使用的命名系统,用于把便于人们使用机器名字转化为IP地址. 为什么机器在处理IP数据报时要使用IP地址而不使用域名呢?IP地 ...

  7. 域名系统DNS

    一.域名系统是什么 域名系统其实就是一个把主机名解析为IP地址的名字系统. 因特网使用层次树状结构的命名方法,并使用分布式的域名系统DNS.因特网的域名系统DNS被设计成一个联机分布式数据库系统,并采 ...

  8. 带你简单了解域名系统DNS

    带你简单了解域名系统DNS 一.域名简介 1.1.DNS服务的作用 负责解析域名,将域名解析成IP地址. 1.2.域名系统概述 由于32位的IP地址并不容易记忆,人们往往喜欢记忆网站的域名.所以当我们 ...

  9. 第六章 应用层(DNS和http协议详解)

    序言 这是计算机网络基础的最后一篇博文了,大体的从物理层到最上层的应用层做了一个大概的了解,花了也有快1个月的时间了,在本章结尾会给你们我学习该课程的视频资料,我希望能帮到所有想学习想提高自己技术的同 ...

随机推荐

  1. Winform里面的缓存,MemoryCache使用

    缓存在很多情况下需要用到,合理利用缓存可以一方面可以提高程序的响应速度,同时可以减少对特定资源访问的压力.本文主要针对自己在Winform方面的缓存使用做一个引导性的介绍,希望大家能够从中了解一些缓存 ...

  2. 学习笔记:Javascript 变量 包装对象

    学习笔记:Javascript 变量 包装对象 如下代码,可以输出字符的长度. var str = "Tony"; str.length; 这时再试试以下代码,返回是 undefi ...

  3. async await 的 实质 本质

    async await  的 实质 就是 用 “状态机” 来 取代 函数层层调用 . async await  的 本质 是 语法糖,  和 提高性能 什么的 没什么关系 . 为了避免理解歧义, 我把 ...

  4. spring-boot-dependencies jar 不完整的问题

    集成 springboot 有两种方式. 1 直接 父项目指向  springboot <parent> <groupId>org.springframework.boot&l ...

  5. Spring Cloud(Dalston.SR5)--Hystrix 监控

    在服务调用者加入 Actuator ,可以对服务调用者的健康情况进行实时监控,例如,断路器是否打开.当前负载情况等. 服务调用者 需要增加 actuator依赖, 修改 POM.xml 中增加以下依赖 ...

  6. 分布式超级账本Hyperledger为什么选择使用kafka引擎实现共识方案

    使用kafka集群配置的原因也很简单,为orderer共识及排序服务提供足够的容错空间,当我们向peer节点提交Transaction的时候,peer节点会得到或返回(基于SDK)一个读写集结果,该结 ...

  7. Java序列化的理解与学习

    1.什么是Java序列化 Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比 JVM的生命周期更长.但在现实应 ...

  8. .NET使用HttpRuntime.Cache设置程序定时缓存

    第一步:判断读取缓存数据 #region 缓存读取 if (HttpRuntime.Cache["App"] != null) { return HttpRuntime.Cache ...

  9. python selenium 模拟登陆百度账号

    代码: from selenium import webdriver url = 'https://passport.baidu.com/v2/?login' username = 'your_use ...

  10. 峰Redis学习(5)Redis 数据结构(Set的操作)

    第五节:Redis 数据结构之Set 类型 存储Set,这里的Set是无序的:  和List类型不同的是,Set集合中不允许出现重复的元素  Set可包含的最大元素数量是4294967295   存储 ...