硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2141|回复: 1
收起左侧

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

[复制链接]

740

主题

1326

回帖

3546

积分

管理员

春暖花开

Rank: 9Rank: 9Rank: 9

积分
3546
QQ
发表于 2017-11-20 14:22:01 | 显示全部楼层 |阅读模式
第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协议基础知识:
1、RFC2131地址 : ftp://ftp.rfc-editor.org/in-notes/rfc2131.txt
2、wiki百科中文版:地址链接(这个是超链接)
3、wiki百科英文版:地址链接(这个是超链接)
4、百度百科:地址链接(这个是超链接)
对于初学者来说,学习上面四个参考资料就够了。如果大家有网络方面的书籍,比如《TCP/IP详解》,也可以直接看书籍。

努力打造安富莱高质量微信公众号:点击扫描图片关注
回复

使用道具 举报

740

主题

1326

回帖

3546

积分

管理员

春暖花开

Rank: 9Rank: 9Rank: 9

积分
3546
QQ
 楼主| 发表于 2017-11-20 14:22:49 | 显示全部楼层
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地址:
        (1)自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
        (2)动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
        (3)手工分配方式(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中继。
DHCP客户端
        在支持DHCP功能的网络设备上将指定的端口作为DHCP Client,通过DHCP协议从DHCP Server动态获取IP地址等信息,来实现设备的集中管理。一般应用于网络设备的网络管理接口上。DHCP客户端可以带来如下好处:
(1)降低了配置和部署设备时间。
(2)降低了发生配置错误的可能性。
(3)可以集中化管理设备的IP地址分配。
DHCP服务器
        DHCP服务器指的是由服务器控制一段IP地址范围,客户端登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。
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的报文格式如下:
25.1.png

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冲突。
25.2.png

第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的相关知识需要大家查阅相关书籍进行学习,或者网上搜索相关资料进行学习。
努力打造安富莱高质量微信公众号:点击扫描图片关注
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-11-1 06:59 , Processed in 0.207548 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表