关于CWMP基础(三)----(TR111)DHCP

DHCP协议

1.概述

协议
定义DHCP:Dynamic Host Configuration Protocol,动态主机配置协议,是一个用于局域网的网络协议,位于OSI模型的应用层,使用UDP协议工作,主要有两个用途:
作用动态分配IP地址,过程自动化,终端无需一一手工配置,配置信息统一管理(DNS,网关),IP地址有限、需要大量配置IP地址、经常移动终端。
适用性DHCP用一台或一组DHCP服务器来管理网络参数的分配,这种方案具有容错性。甚至对于那些很少改变地址的服务器来说,DHCP仍然被建议用来设置它们的地址。如果服务器需要被重新分配地址(RFC 2071)的时候,就尽可能不去做更改。对于一些设备,如路由器和防火墙,则不应使用DHCP。把TFTP或SSH服务器放在同一台运行DHCP的机器上也是有用的,目的是为了集中管理。
分配IP方式(1)手工配置方式:通过网络管理员手工配置某台客户端特定的IP地址,当客户端请求分配时,DHCP服务器就将手动配置的IP地址分配给客户端。(2)自动配置方式:当DHCP客户端第一次想服务端租用到第一个IP地址后,就将这个IP地址永久分配给客户端使用。(3)动态配置方式:服务器暂时分配一个IP地址给客户端,根据租约到期或者续约租期的方式来管理分配的IP地址。

2.原理

动态主机设置协议 DHCP是一种使网络管理员能够集中管理和自动分配IP网络地址的通信协议。在IP网络中,每个连接Internet的设备都需要分配唯一的IP地址。DHCP使网络管理员能从中心结点监控和分配IP地址。当某台计算机移到网络中的其它位置时,能自动收到新的IP地址。

DHCP使用了租约的概念,或称为计算机IP地址的有效期。租用时间是不定的,主要取决于用户在某地连接Internet需要多久,这对于教育行业和其它用户频繁改变的环境是很实用的。透过较短的租期,DHCP能够在一个计算机比可用IP地址多的环境中动态地重新配置网络。DHCP支持为计算机分配静态地址,如需要永久性IP地址的Web服务器。

DHCP和另一个网络IP管理协议BOOTP类似。当前两种配置管理协议都得到了普遍使用,其中DHCP更为先进。某些操作系统,如Windows NT/2000,都带有DHCP服务器。DHCP或BOOTP客户端是装在计算机中的一个程序,这样就可以对其进行配置操作。

3.DHCP主要实现阶段

在这里插入图片描述

第一阶段:

发现阶段由Client 发送给 Server 端的 discover请求报文。
注:因为DHCP客户端在请求IP地址时并不知到DHCP服务器的位置,因此DHCP客户端会在本地网络中发送请求报文,来发现服务器。所有收到该请求报文的DHCP服务器都会发送应答报文,让Client知道服务端的地址。

第二阶段:

提供阶段:由Server提供IP地址,并发送一个offer报文给客户端。
注:由DHCP服务器收到的discover报文,作出回应。从尚未出租的ip地址中选择一个分配给DHCP客户端,并向客户端发送一个包含出租ip地址及其他设置额的offer提供信息。

第三阶段:

选择阶段:由Client选择来自多台服务器的IP地址,并以广播的形式发送一个request请求给服务端。
注:如果有多台DHCP服务器向客户端发送offer报文,客户端只接受第一个收到的DHCP offer。

第四阶段

确认阶段:由Server确认所提供的ip地址的阶段。
注:当服务器收到客户端的回答请求后,它便向客户端发送一个包含它提供的ip地址信息和其他设置的DHCP ACK确认信息,告诉客户端它所提供的ip地址。然后客户端便将其TCP/IP协议与其网卡相绑定,除了客户端所选择的服务器ip外,DHCP服务器都将收回曾经提供的IP地址。

第五阶段

重新登陆:以后DHCP客户机每次登陆网络时,就不需要再发送DHCP discover发现信息了。而是直接发送包含前一次所分配IP地址的DHCP resquest请求。当DHCP服务器收到这一信息后,它会尝试让客户机继续使用原来的IP并回答一个DHCP ACK确认信息,如果此IP地址无法分配个原来的DHCP客户机时(比如IP分配给其他DHCP客户机使用) ,则DHCP服务器给DHCP客户机回答一个DHCP NACK 否认消息,当原来的DHCP客户机收到此消息后,它就必须重新发送DHCP discover发现信息重新请求新的IP地址。

第六阶段

更新租约:DHCP服务器向DHCP客户机出租的IP地址一般都由一个租借期限,期满后DHCP服务器会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送其更新租约的信息。

DHCP 释放(RELEASE)

客户端向DHCP服务器发送一个请求来释放DHCP资源,并注销其ip地址。
鉴于客户端更多的时候并不清楚何时用户会将其从网络中移除,此协议不会托管“DHCP释放的发送”。

DHCP NAK
服务器回复客户,客户端要求的网址不能被分配。

4. DHCP报文分析

根据wireshark抓包 ( offer ) 可得:

在这里插入图片描述

  • Op:消息操作代码,2byte,既可以是引导请求(BOOTREQUEST)也可以是引导答复(BOOTREPLY),1为请求报文;2为响应报文。具体的报文类型在option字段中标识。
  • Htype:硬件地址类型,1byte,表示client硬件地址的类型,1表示以太网类型。
  • Hlen:硬件地址长度,1byte,以太网的硬件地址长度为6bytes。
  • Tid:处理ID,1byte,由client端产生的随机数,用于匹配请求和应答报文,就是匹配应答报文是对哪个请求报文做出应答。
  • Secs:从获取到IP地址或者续约过程开始到现在所消耗的时间,2bytes,客户端进入IP地址申请进程的时间或者更新IP地址进程的时间;由客户端软件根据情况设定。目前没有使用,固定为0。
  • Flags:标记,2bytes,16bit中只使用了最高位比特(即最左边的比特),这个个比特是广播响应标识位,用来标识DHCP服务器发出的响应报文是广播还是单播,0是单播,1是广播。其余的比特位保留不用,都为0.
  • Ciaddr:客户机IP地址,4bytes,可以是client自己的IP地址,也可以是server分配给client的IP地址。
  • Yiaddr:“你的”(客户机)IP地址,4bytes,是server分配给client的IP地址。
  • Siaddr:在bootstrap中使用的下一台服务器的IP地址,4bytes,是client端获取IP地址等信息的server端的地址。
  • Giaddr:用于导入的接替代理IP地址,4bytes,是client发出请求报文后经过的第一个中继的IP地址。
  • Chaddr:客户机硬件,16bytes,是client端的硬件地址,在client发出报文时会把自己网卡的硬件地址写进这个字段。
  • Sname:任意服务器主机名称,空终止符,64bytes,是client端获取IP地址等信息的服务器名称。
  • File:DHCP发现协议中的引导文件名、空终止符、属名或者空,DHCP供应协议中的受限目录路径名,
  • Options:可选参数字段。这个字段包含了终端的初始配置信息和网络配置信息,包括报文类型,有效租期,DNS服务器的IP地址等配置信息。

参考资料:https://blog.csdn.net/scanf_linux/article/details/89415965

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值