DHCP和DNS是如何工作的?两者之间有什么区别?

举报
DevFeng 发表于 2021/10/18 14:42:21 2021/10/18
【摘要】 DHCP(动态主机配置协议)和DNS(域名系统)的出现是为了让我们能够轻松使用网络或互联网,在实际应用中DHCP和DNS是两种完全不同的技术。DHCP动态主机设置协议(Dynamic Host Configuration Protocol)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理...

DHCP(动态主机配置协议)和DNS(域名系统)的出现是为了让我们能够轻松使用网络或互联网,在实际应用中DHCP和DNS是两种完全不同的技术。

DHCP动态主机设置协议(Dynamic Host Configuration Protocol)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。

DNS是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务,可以简单地理解为将URL转换为IP地址。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,在Internet上域名与IP地址之间是一一对应的,DNS就是进行域名解析的服务器。DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。

DHCP的工作原理

  1. 客户机通过将搜索消息广播到本地子网上的有限广播地址 (255.255.255.255) 来搜索 DHCP 服务器。如果存在路由器并已将其配置为充当 BOOTP 中继代理的角色,请求便会传送到不同子网上的其他 DHCP 服务器。客户机的广播包括其唯一的 ID,在 Oracle Solaris 中的 DHCP 实现中,此 ID 由客户机的介质访问控制 (Media Access Control, MAC) 地址派生而来。在以太网上,MAC 地址与以太网地址相同。

    接收搜索消息的 DHCP 服务器可以通过查看以下信息来确定客户机的网络:

    • 请求来自哪个网络接口?服务器会确定客户机是位于通过接口连接的网络上,还是正在使用连接到该网络的 BOOTP 中继代理。

    • 请求中包含 BOOTP 中继代理的 IP 地址吗?当请求通过中继代理时,中继代理会将其地址插入到请求标头中。当服务器检测到中继代理地址时,服务器知道该地址的网络部分表示客户机的网络地址,这是因为中继代理必须连接到客户机的网络。

    • 客户机的网络有子网吗?服务器会查看 netmasks 表,来查找由中继代理地址或接收请求的网络接口地址指定的网络使用的子网掩码。服务器一旦知道了所用的子网掩码,就可以确定网络地址的哪一部分表示主机地址,然后可以选择适用于客户机的 IP 地址。有关 netmasks 的信息,请参见 netmasks(4) 手册页。

  2. 在 DHCP 服务器确定客户机的网络之后,便会选择相应的 IP 地址并确认该地址尚未使用。然后,DHCP 服务器通过广播一条提供消息来响应客户机。该提供消息中包含选定的 IP 地址以及有关可为客户机配置的服务的信息。每台服务器都会暂时保留所提供的 IP 地址,直到客户机确定是否使用该 IP 地址为止。

  3. 客户机会根据所提供的服务的数量和类型来选择最佳内容。客户机会广播一条请求来指定提供最佳内容的服务器的 IP 地址。该广播确保所有发出响应的 DHCP 服务器都知道客户机已经选择了一台服务器。未被选中的服务器会取消对之前提供的 IP 地址的保留。

  4. 被选中的服务器会为客户机分配 IP 地址,并将信息存储到 DHCP 数据存储中。该服务器还会向客户机发送一条确认消息 (acknowledgement message, ACK)。确认消息包含客户机的网络配置参数。客户机使用 ping 实用程序测试此 IP 地址,以确保它没有被其他系统使用。然后,客户机会继续引导以加入网络。

  5. 客户机会监视租用时间。当设定的时间段过去时,客户机会向所选的服务器发送一条新消息来延长租用时间。

  6. 接收请求的 DHCP 服务器会延长租用时间,前提是租用仍然遵循由管理员设置的本地租用策略。如果服务器在 20 秒内没有响应,客户机便会广播一条请求,以便其他 DHCP 服务器之一可以延长租用期。

  7. 当客户机不再需要 IP 地址时,便会通知服务器已释放了 IP 地址。此通知可以在正常关机时发送,也可以手动发送。

DNS的工作原理

        假定域名为m.xyz.com的主机想知道另一个主机y.abc.com的IP地址。例如,主机m.xyz.com打算发送邮件给y.abc.com。这时就必须知道主机y.abc.com的IP地址。下面是上图a的几个查询步骤:

        1、主机m.abc.com先向本地服务器dns.xyz.com进行递归查询。

        2、本地服务器采用迭代查询。它先向一个根域名服务器查询。

        3、根域名服务器告诉本地服务器,下一次应查询的顶级域名服务器dns.com的IP地址。

        4、本地域名服务器向顶级域名服务器dns.com进行查询。

        5、顶级域名服务器dns.com告诉本地域名服务器,下一步应查询的权限服务器dns.abc.com的IP地址。

        6、本地域名服务器向权限域名服务器dns.abc.com进行查询。

        7、权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的IP地址。

        8、本地域名服务器最后把查询结果告诉m.xyz.com。

        整个查询过程共用到了8个UDP报文。

        为了提高DNS查询效率,并减轻服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛使用了高速缓存,用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

        例如,在上面的查询过程中,如果在m.xyz.com的主机上不久前已经有用户查询过y.abc.com的IP地址,那么本地域名服务器就不必向根域名服务器重新查询y.abc.com的IP地址,而是直接把告诉缓存中存放的上次查询结果(即y.abc.com的IP地址)告诉用户。

        由于名字到地址的绑定并不经常改变,为保持告诉缓存中的内容正确,域名服务器应为每项内容设置计时器并处理超过合理时间的项(例如每个项目两天)。当域名服务器已从缓存中删去某项信息后又被请求查询该项信息,就必须重新到授权管理该项的域名服务器绑定信息。当权限服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名解析的正确性。

        不仅在本地域名服务器中需要高速缓存,在主机中也需要。许多主机在启动时从本地服务器下载名字和地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到名字时才使用域名服务器。维护本地域名服务器数据库的主机应当定期地检查域名服务器以获取新的映射信息,而且主机必须从缓存中删除无效的项。由于域名改动并不频繁,大多数网点不需花精力就能维护数据库的一致性。

DHCP与DNS之间有什么区别?

从上述介绍中可看出,虽然DHCP和DNS都与IP地址相关,但它们扮演着完全不同的角色。为了能让您更加清楚了解DHCP和DNS的区别在哪里,请看下列图表:

总结

总而言之,DHCP服务器将IP地址分配给客户端计算机,而DNS服务器则是解析它们。DHCP和DNS是为了让我们能更加方便使用网络或互联网而研发的两种必不可少的技术,同时也是网络管理员用来管理公司网络上所有IP设备的必不可少的“工具”。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。