前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【RL-TCPnet网络教程】第25章 DHCP动态主机配置协议基础知识

【RL-TCPnet网络教程】第25章 DHCP动态主机配置协议基础知识

作者头像
Simon223
发布2018-09-04 10:48:46
7160
发布2018-09-04 10:48:46
举报

第25章      DHCP动态主机配置协议基础知识

本章节为大家讲解DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),通过前面章节对TCP和UDP的学习,需要大家对DHCP也有个基础的认识。

(本章的知识点主要整理自网络)

25.1  初学者重要提示

25.2  DHCP基础知识参考资料

25.3  DHCP基础知识点

25.4  DHCP函数

25.5  总结

25.1  初学者重要提示

通过前面几个章节对TCP和UDP的学习,需要初学者对DHCP的基础知识点也有个认识。

25.2  DHCP基础知识参考资料

为了对TCP和UDP有更全面的认识,需要对DHCP协议的一些基础知识有个了解。大家可以从以下地址获得DHCP协议基础知识:

对于初学者来说,学习上面四个参考资料就够了。如果大家有网络方面的书籍,比如《TCP/IP详解》,也可以直接看书籍。

25.3  DHCP基础知识点

(这里的知识点整理自上面的参考资料地址)

教程这里也对DHCP的基础知识点做个介绍,方便大家先有个大概的认识。

25.3.1 DHCP简要说明

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议。使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址;给用户或者内部网络管理员对所有计算机作中央管理的手段,在RFC 2131中有详细的描述。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。

25.3.2 DHCP功能

DHCP通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。DHCP具有以下功能:

  1. 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
  2. DHCP应当可以给用户分配永久固定的IP地址。
  3. DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
  4. DHCP服务器应当向现有的BOOTP客户端提供服务。
  5. DHCP有三种机制分配IP地址:
    • 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
    • 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
    • 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

       三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。

DHCP消息的格式是基于BOOTP(Bootstrap Protocol)消息格式的,这就要求设备具有BOOTP中继代理的功能,并能够与BOOTP客户端和DHCP服务器实现交互。BOOTP中继代理的功能,使得没有必要在每个物理网络都部署一个DHCP服务器。RFC 951和RFC 1542对BOOTP协议进行了详细描述。

25.3.3 DHCP类别

主要分为DHCP服务器,DHCP客户端和DHCP中继。

1、DHCP客户端

在支持DHCP功能的网络设备上将指定的端口作为DHCP Client,通过DHCP协议从DHCP Server动态获取IP地址等信息,来实现设备的集中管理。一般应用于网络设备的网络管理接口上。DHCP客户端可以带来如下好处:

  • 降低了配置和部署设备时间。
  • 降低了发生配置错误的可能性。
  • 可以集中化管理设备的IP地址分配。

2、DHCP服务器

DHCP服务器指的是由服务器控制一段IP地址范围,客户端登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。

3、DHCP中继代理

DHCPRelay(DHCPR)DHCP中继,也叫做DHCP中继代理。DHCP中继代理,就是在DHCP服务器和客户端之间转发DHCP数据包。当DHCP客户端与服务器不在同一个子网上,就必须有DHCP中继代理来转发DHCP请求和应答消息。DHCP中继代理的数据转发,与通常路由转发是不同的,通常的路由转发相对来说是透明传输的,设备一般不会修改IP包内容。而DHCP中继代理接收到DHCP消息后,重新生成一个DHCP消息,然后转发出去。

在DHCP客户端看来,DHCP中继代理就像DHCP服务器;在DHCP服务器看来,DHCP中继代理就像DHCP客户端。

25.3.4 DHCP报文格式

DHCP的报文格式如下:

  • Op

消息操作代码,既可以是引导请求(BOOTREQUEST)也可以是引导答复(BOOTREPLY)。若是客户端送给服务器的封包,设为1,反向为2。

  • Htype

硬件类别,Ethernet为1。

  • Hlen

硬件地址长度,Ethernet为6。

  • Hops

若封包需经过路由传送,每站加1,若在同一网内,为0。

  • Xid:

DHCP REQUEST时产生的数值,以作DHCPREPLY时的依据。

  • Secs:

从获取到IP地址或者续约过程开始到现在所消耗的时间。

  • Flags:

从0到15共16 bits,最左一bit为1时表示服务器将以广播方式传送封包给客户端,其余尚未使用。

  • Ciaddr:

要是客户端想继续使用之前取得的IP地址,则填写到此选项中。

  • Yiaddr:

从服务器送回客户端的DHCP OFFER 与DHCPACK封包中,此栏填写分配给客户端的IP地址。

  • Siaddr:

若客户端需要透过网络开机,从服务器发出的DHCP OFFER、DHCPACK、DHCPNACK封包中,此栏填写开机程序代码所在服务器的地址。

  • Giaddr:

若需跨网域进行DHCP发放,此栏为relay agent 的地址,否则为0。

  • Chaddr:

Client的硬件地址。

  • Sname:

服务器名称字符串,以0x00结尾。

  • File:

若客户端需要透过网络开机,此栏将指出开机程序名称,稍后以TFTP传送。

  • Options:

可选参数字段,允许厂商定议选项(Vendor-Specific Area),以提供更多的设定信息(如:Netmask、Gateway、DNS等等)。其长度可变,同时可携带多个选项,每一选项的第一个字节为信息代码,其后一个字节为该项数据长度,最后为项目内容。

25.3.5 DHCP工作原理

DHCP统一使用两个IANA分配的端口作为BOOTP:服务器端使用UDP67,客户端使用UDP68。DHCP运行分为四个基本过程,分别为请求IP租约、提供IP租约、选择IP租约和确认IP租约。客户在获得了一个IP地址以后,就可以发送一个ARP请求来避免由于DHCP服务器地址池重叠而引发的IP冲突。

  • 第1步:DHCP Discovery

客户在物理子网上发送广播来寻找可用的服务器。网络管理员可以配置一个本地路由来转发DHCP包给另一个子网上的DHCP服务器。该客户实现生成一个目的地址为255.255.255.255或者一个子网广播地址的UDP包。

客户也可以申请他使用的最后一个IP地址。如果该客户所在的网络中此IP仍然可用,服务器就可以准许该申请。否则,就要看该服务器是授权的还是非授权的。授权服务器会拒绝请求,使得客户立刻申请一个新的IP。非授权服务器仅仅忽略掉请求,导致一个客户端请求的超时,于是客户端就会放弃此请求而去申请一个新的IP地址。

  • 第2步:DHCP Offer

当DHCP服务器收到一个来自客户的IP租约请求时,它会提供一个IP租约。DHCP为客户保留一个IP地址,然后通过网络单播一个DHCPOFFER消息给客户。该消息包含客户的MAC地址、服务器提供的IP地址、子网掩码、租期以及提供IP的DHCP服务器的IP。

  • 第3步:DHCP Request

当客户PC收到一个IP租约提供时,它必须告诉所有其他的DHCP服务器它已经接受了一个租约提供。因此,该客户会发送一个DHCPREQUEST消息,其中包含提供租约的服务器IP。当其他DHCP服务器收到了该消息后,它们会收回所有可能已提供给客户的租约。然后它们把曾经给客户保留的那个地址重新放回到可用地址池中,这样,它们就可以为其他计算机分配这个地址。任意数量的DHCP服务器都可以响应同一个IP租约请求,但是每一个客户网卡只能接受一个租约提供。

  • 第4步:DHCP Acknowledge

当DHCP服务器收到来自客户的REQUEST消息后,它就开始了配置过程的最后阶段。这个响应阶段包括发送一个DHCPACK包给客户。这个包包含租期和客户可能请求的其他所有配置信息。这时候,TCP/IP配置过程就完成了。该服务器响应请求并发送响应给客户。整个系统期望客户根据选项来配置其网卡。

25.4 总结

本章节就为大家讲解这么多,更多DHCP的相关知识需要大家查阅相关书籍进行学习,或者网上搜索相关资料进行学习。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-08-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第25章      DHCP动态主机配置协议基础知识
    • 25.1  初学者重要提示
      • 25.2  DHCP基础知识参考资料
        • 25.3  DHCP基础知识点
          • 25.3.1 DHCP简要说明
          • 25.3.2 DHCP功能
          • 25.3.3 DHCP类别
          • 25.3.4 DHCP报文格式
          • 25.3.5 DHCP工作原理
        • 25.4 总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档