一次设备DHCPC退出的现象问题追踪笔记(2)

接上,某网关团队提供了如下图,坚持说他们网关遵循集团规范:

一次设备DHCPC退出的现象问题追踪笔记(2)_第1张图片 标题

 继续分析,拿出论据,不是自己的锅我们不背^_^:

1.下面引用网关方提供的截图(红色字体是为进一步阐述加了些批注):

一次设备DHCPC退出的现象问题追踪笔记(2)_第2张图片

       2.下面从DHCP相关的RFC3925官方规范着手,分析的option125报文格式:                           

一次设备DHCPC退出的现象问题追踪笔记(2)_第3张图片

上面这张图是一张宏观上的总概括图,规范里面总体的格式是如下:

                                      ---Option125

                                     l

                                        --Option len

                                     l

                                     ----Enterprise Number

                                     l 

                                      ---Data len

                                     l

                                     ----Option data

 

到这里,除了绿色的选项数据格式和内容还不清楚怎么组织,其它格式都已经明确下来了,需要知道选项数据内容,再根据提示需要往下看,继续往下看到的内容:

一次设备DHCPC退出的现象问题追踪笔记(2)_第4张图片 标题

   到这里所有的数据格式都明确了,option的数据就是上图中所说到的子选项,如下:

一次设备DHCPC退出的现象问题追踪笔记(2)_第5张图片

                                                                                                                                                                                                                                                                                                                                                                                                                                                        完整报文的格式如下:

                                      ---Option125

                                     l

                                        --Option len

                                     l

                                     ----Enterprise Number

                                     l 

                                      ---Data len

                                     l

                                          ----suboption1 code

                                         l 

                                          ---suboption1 len

                                         l

                                           ----Suboption1 data

                                        ……

                                          ----Suboption_n code

                                         l 

                                          ---Suboption_n len

                                         l

                                           ----Suboption_n data

3.下面将抓包的数据和规范定义的格式结合起来分析:

一次设备DHCPC退出的现象问题追踪笔记(2)_第6张图片 标题

                   

上图左边的为标准定义的报文格式,蓝色的为网关的报文,绿色的是标准的DHCP125的报文

由以上的分析可知:

网关端DHCP125报文数据段存在的问题:

a.子选项没有按照C-L-V这种格式来组织数据,

b.一个小的选项带一个数据,看网关的报文放了多个数据,并且子选项数据项里面又放子选项(没有这种定义方式),子选项与子选项之间应该是平行的关系。

c.选项字段的长度计算也不正确,

d.第二个enterprise没带数据,如果添加类似如下表格的数据,应该都放到子选项去处理才对                         

4.一点个人的思考:   

虽然根本原因是网关的DHCP报文没有按照规范来做造成的,但是以后处理代码的时候可以多考虑一些列外情况的处理,正常的流程处理后,加入一些可能出现的列外处理,特别是一些核心的代码,除了能够处理正常的数据之外,还要能应对可能出现的一些不规范的数据做一些规避,使代码更健壮。                              

你可能感兴趣的:(linux进程)