DHCP报文分析

              在三级网络技术中,有一道考察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服务器则更加快捷方便,只有得心应手的运用这些工具,才能大大提高效率。


        个人理解,知识有限,如何有错误或是不足之处,希望大牛们批评指正!



  • 29
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 26
    评论
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值