在三级网络技术中,有一道考察DHCP服务器报文的综合题,考查的题目看似相同,考点比较固定,可是均有侧重,有必要挑出来分析一下。
基本工作原理:
DHCP客户端申请IP租约的4个阶段
租约的发现阶段:DHCP客户端以广播的方式发送DHCPDISCOVER 广播包给DHCP服务器
IP租约的提供阶段:DHCP服务器以广播的方式发送DHCPOFFER包给予应答,并提供DHCP客户端所需的TCP/IP属性的配置参数。配置参数包括:IP地址、子网掩码、缺省网关、域名和域名服务器的IP地址。(因为DHCP客户端目前还没有IP地址,所以DHCP服务器同样使用广播进行通讯:源IP地址为DHCP服务器的IP地址,而目的IP地址为255.255.255.255。同时,DHCP服务器为此客户保留它提供的IP地址,从而不会为其他DHCP客户分配此IP地址。如果有多个DHCP服务器给予此DHCP客户端回复DHCPOFFER消息,则DHCP客户端接受它接收到的第一个DHCPOFFER消息中的IP地址。 )
IP租约请求阶段:DHCP客户端以广播的方式发送DHCPREQUEST包给DHCP服务器,确定与此DHCP服务器建立地址租借关系,并通告其他DHCP服务器。(由于还没有得到DHCP服务器最后确认,DHCP客户端仍然不能使用租约中提供的IP地址,所以在数据包中仍然使用0.0.0.0作为源IP地址,广播地址255.255.255.255作为目的地址。)
IP租约确认阶段:DHCP服务器在接收到一个DHCPREQUEST广播包后,在正常情况下,会以广播的方式发送 DHCPACK包给DHCP客户来确认关系。
ipconfig/all:
DHCP客户机在执行ipconfig/all 时获取的信息分析
ipconfig/renew:
使用命令ipconfig/renew,客户端刷新TCP/IP参数(重新获取)。
由于之前客户端已有IP地址,并指导DHCP服务器的IP地址,所以只需要客户端发送DHCPREQUEST报文和服务器回应DHCPACK报文这两次交互即可,且均为单播发送。
ipconfig/release:
客户端依次使用命令ipconfig/release和ipconfig/renew,客户端释放原本已经获取的TCP/IP参数,然后重新获取TCP/IP参数。相当于地址释放和地址获取的过程累加:
即共有五次交互
请求地址释放:DHCP客户端以单播的方式发送DHCPrequest 给DHCP服务器,请求释放地址。(注意和首次申请IP租约时第三个阶段区分,也有资料显示发送的是DHCPrelease,欢迎大牛指导留言)
其他的过程和上文中基础工作原理的四个阶段一致。(附上截图)
编号6中的内容表示通过wins服务器来管理刚才得到的ip地址的注册,这一行的目的ip地址对题目无用,有兴趣可以自己研究。
续约:
如果采用动态地址分配策略,则DHCP服务器分配给客户端的IP地址有一定的租借期限(默认8天),当租借期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,需要更新IP地址租约。
在DHCP客户端的IP地址租约期限达到一半时间(50%)时,DHCP客户端会向为它分配IP地址的DHCP服务器单播发送DHCP REQUEST报文,以进行IP租约的更新。如果客户端可以继续使用此IP地址,则DHCP服务器回应DHCPACK报文,通知DHCP客户端已经获得新IP租约;如果此IP地址不可以再分配给该客户端,则DHCP服务器回应DHCPNACK报文,通知DHCP客户端不能获得新的租约。(比如这个IP被从作用域中移除,那么DHCP服务器会返回给客户端一个DHCPNACK的数据包)
如果在租约的一半时间进行的续约操作失败,DHCP客户端会在租约期限达到7/8(87.5%)时,以广播发送DHCPREQUEST报文进行续约。如果仍然没有得到DHCP服务器的回复则发起DHCPDISCOVER进程以寻求IP地址。
实例分析:
某客户机使用DHCP获取IP地址等信息,其获取IP地址过程中捕获的4条报文及对第2条报文的分析如下。
编号 报文摘要
1 DHCP:Request, Type:DHCP discover
2 DHCP:Reply, Type:DHCP offer
3 DHCP:Request, Type:DHCP Request
4 DHCP:Reply, Type:DHCP ACK
DLC: ----- DLC Header -----
DLC: Destination =ffffffffffff ‘第二条报文为offer,故目的MAC地址为广播MAC地址ffffffffffff (十六进制)
DLC: Source = 001122334455 ’源MAC地址为DHCP服务器MAC地址
DLC: Ethertype = 0800 (IP)
IP: D =255.255.255.255 ,S = 192.168.0.1 ‘目的地址和源地址,和上下文吻合
UDP: D= 68,S = 67 ’使用UDP协议,目的端口68,源端口67
DHCP: ----- DHCP Header -----
DHCP: Boot record type = 2 (Reply) ‘2(reply),表名是DHCP服务器回复的报文,包括offer和ack
DHCP: Hardware address type = 1 (10M Ethernet) 'Client的网络硬件地址类型,1表示是10MB的以太网类型
DHCP: Hardware address length = 6 bytes ’Client的网络硬件地址长度,6表示长度是6 bytes
DHCP: Hops = 0 '跳数,表示当前的DHCP报文经过DHCPRELAY(中级)的数目
DHCP: Transaction id = 6019121F
DHCP: Elapsed boot time = 0 seconds
DHCP: Flags = 0000
DHCP: 0 = no broadcast
DHCP: Client self-assigned address = [0.0.0.0] ‘当前客户机的IP地址
DHCP: Client address =[192.168.0.180] ’将要分配给客户机client的IP地址(offer报文中已经包含即将分配的ip地址的相关信息)
DHCP: Next Server to use in bootstrap = [0.0.0.0]
DHCP: Relay Agent = [0.0.0.0]
DHCP: Client hardware address = 001234567890 ‘客户机物理地址
DHCP: Host name = ""
DHCP: Boot file name = ""
DHCP: Vendor Information tag = 53825276
DHCP: Message Type = 2 ’message type 为2,表示此为服务器回应的报文offer
DHCP: Address renewel interval = 345600 (seconds)
DHCP: Address rebinding interval = 604800 (seconds)
DHCP: Request IP Address leased time = 691200 (seconds)
DHCP: Sever IP Address = 192.168.0.1 ‘DHCP服务器的ip地址,和上文一致
DHCP: Subnet mask = 255.255.255.0 ’子网掩码
DHCP: Gateway address = [192.168.0.100] ‘ 网关地址
DHCP: Domain Name Server address = [202.106.0.100] ’DNS地址,注意看首拼
扩展:
DHCP Message Type 项表示DHCP的报文格式,共有8种,较为常用的有4种。
DHCP: Message Type = 1 客户机开始申请IP租约的第一个过程 DHCP discover
DHCP: Message Type = 2 服务器的相应报文DHCP offer
DHCP: Message Type = 3 客户机回应第二步发送给服务器的请求报文DHCP request 或者是 客户机续租IP地址租期时发送的报文DHCP request
DHCP: Message Type =5 服务器发出的确认报文DHCP ack,此后客户机才真正获得了IP地址和相关的配置信息。(注意此处值为5)
小结:
笔者只是简单的分析了一些DHCP报文,除了报文以外,DHCP服务器中还有很多其它的内容(如何配置等)有待我们深入学习。相比较与手动配置IP等相关信息,在网络规模比较大或移动客户端时,DHCP服务器则更加快捷方便,只有得心应手的运用这些工具,才能大大提高效率。
个人理解,知识有限,如何有错误或是不足之处,希望大牛们批评指正!