DHCP规范和现网案例分析_第1页
DHCP规范和现网案例分析_第2页
DHCP规范和现网案例分析_第3页
DHCP规范和现网案例分析_第4页
DHCP规范和现网案例分析_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 1DHCPDHCP规范和现网案例分析规范和现网案例分析陈曦2012年6月Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 2本次课题lDHCP简介简介l中国电信中国电信DHCP扩展规范扩展规范l现网现网DHCP案例分析案例分析Copyright 2012 Shanghai DareGlobal Technologies Co., L

2、td. All rights reserved. 3DHCP简介 协议概述 报文格式 报文类型 常用option DHCP报文交互过程 DHCP客户端更新租约 DHCP client状态机 DHCP中继工作过程 处理DHCP中继报文 Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 4协议概述DHCP动态主机配置协议(Dynamic Host Configuration Protocol)为网络客户机分配动态的IP地址提供安全、可靠的TCP/IP网络配置保证IP地址不发生冲突,减少了在T

3、CP/IP网络上增添、移动和配置计算机的管理负担,使IP地址管理自动化。动态分配IP地址在某些情况下还可以解决IP不够用的问题。 Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 5报文格式OP(1)Htype(1)Hlen(1)Hops(1)Transaction ID(4)Seconds(2)Flags(2)Ciaddr(4)Yiaddr(4)Siaddr(4)Giaddr(4)Chaddr(16)Sname(64)File(128)Options(variable)Copyrigh

4、t 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 6报文字段含义最左边的bit位,0代表广播,1代表单播。其余bit尚未使用flags由DHCP Client填充,从DHCP Client开始获得地址或地址续借后所使用了的秒数。Seconds由DHCP Client选择的一个随机数,被DHCP Server和DHCP Client用来在它们之间交流messages和responses。由客户设置并由DHCP Server返回的32 bit整数。客户用它对请求和应答进行匹配。Transaction IDD

5、HCP Client设置为0,也能被一个代理服务器设置hopshardware address length,6字节。hlenhardware address type,1表示以太网,这和ARP请求或应答中同名字段表示的含义相同。htypemessage op code / message type“1“代表BOOTREQUEST ”2“代表 BOOTREPLYop含义字段Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 7报文字段含义(续)包含报文的类型、有效租期、DNS(Domain

6、 Name System,域名系统)服务器的 IP 地址等配置信息,RFC 2132中介绍了全部的option的定义optionsBoot file name,是一个空值终止串。DISCOVER中是“generic”名字或空字符, OFFER提供有效的目录路径全名。file“服务器主机名”字段是一个空值终止串,由服务器填写。snameClient hardware addresschaddrDHCP Relay代理的IP地址。giaddrbootstrap中,下一个Server的IP地址。siaddryour(Client)IP addressyiaddrClient IP address,只

7、有DHCP Client已经获得IP地址,并且能响应ARP requests时,才能被填充。ciaddr含义字段Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 8报文类型报文类型主要功能DHCP-DISCOVERDHCP客户端广播发送的,用来查找网络中可用的DHCP服务器DHCP-OFFERDHCP服务器用来响应客户端的DHCP-DISCOVER请求,并为客户端指定相应配置参数DHCP-REQUESTDHCP客户端广播发送给DHCP服务器,用来请求配置参数或者续借租期DHCP-ACKD

8、HCP服务器通知客户端可以使用分配的IP地址和配置参数DHCP-NAKDHCP服务器通知客户端地址请求不正确或者租期已过期DHCP-RELEASEDHCP客户端主动向DHCP服务器发送,告知服务器该客户端不再需要分配的IP地址DHCP-DECLINEDHCP客户端发现地址冲突或由于其它原因导致地址不能使用,则发送DHCP-DECLINE报文,通知服务器所分配的IP地址不可用Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 9常用optionOptionNameDescription1Su

9、bnet maskSpecifies subnet mask for the client3GatewaysA list of routers, in preferential order, for the client to use.6Domain Name serversA list of Domain Name servers in preferential order. A Domain Name server enables the client to locate other computers on the network by name.50Requested IP Addre

10、ssThis option is used in a client request (DHCP-DISCOVER) to allow the client to request that a particular IP address be assigned. 53DHCP Message TypeUsed to convey the type of the DHCP message.55Parameter Request ListUsed by a DHCP client to request values for specified configuration parameters.60V

11、endor class identifierUsed by DHCP clients to optionally identify the type and configuration of DHCP client.82DHCP Relay Agent Information OptionThe option is inserted by the DHCP relay agent when forwarding client-originated DHCP packets to a DHCP server, it include a circuit ID and a remote ID .12

12、5Vendor-Identifying Vendor OptionsDHCP clients and servers may use this option to exchange vendor- specific information. Either party may send this option, as needed.Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 10DHCP报文交互过程Copyright 2012 Shanghai DareGlobal Technolo

13、gies Co., Ltd. All rights reserved. 11DHCP客户端更新租约 l DHCP服务器分配给客户端的服务器分配给客户端的IP地址有一定地址有一定的租借期限,当租借期满后服务器会收回该的租借期限,当租借期满后服务器会收回该IP地址。地址。l 为了延长为了延长DHCP客户端使用该地址的期限,客户端使用该地址的期限,需要更新需要更新IP地址租约。地址租约。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 12DHCP客户端更新租约包交互Copyright 201

14、2 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 13DHCP client状态机Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 14DHCP中继工作过程 由于DHCP请求报文采用广播方式发送报文,因此当DHCP客户端和DHCP服务器处于不同子网时,必须要通过DHCP中继进行通信,最终获取到IP地址。这样,多个网络上的DHCP客户端可以使用同一个DHCP服务器,既节省了成本,又便于进行集中管理。Copyr

15、ight 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 15处理DHCP中继报文 DHCP中继代理收到DHCP报文后首先识别该报文,再进行相应处理。 如果DHCP报文的UDP目的端口号为67,且BOOTP报文头中的“op”字段是BOOTREQUEST(1),即表示该报文是DHCP客户机发给服务器的请求报文。DHCP中继代理会检查报文的“giaddr”字段,如果其值为0.0.0.0,则DHCP中继代理设备用接受该报文的接口的IP地址填充此字段后,发送报文到指定的DHCP服务器组内的所有DHCP服务器。 如

16、果DHCP报文的UDP目的端口号为67,且BOOTP报文头中的“op”字段是BOOTREPLY(2),即表示该报文是DHCP服务器希望通过中继代理转发给DHCP客户端的回应报文。DHCP中继代理会将该报文从“giaddr”字段所属的接口发送到指定的DHCP客户端。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 16中国电信DHCP扩展规范 发送discover报文的时间间隔 续租机制 终端ARP探测流程(福建电信地方规范) Option 60扩展 Option 125扩展Copyrig

17、ht 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 17发送discover报文的时间间隔 如第一次 DHCP 的请求,未收到来自DHCP 服务器的响应后,需按照协议栈的要求在第 4 秒、第 8 秒、第 16 秒、第 32 秒、第 64 秒、第124秒、第184秒第304秒分别发起地址请求,且每次只发送一个请求报文。如第秒仍未收到服务器响应,则重启会话,重复上述过程。其中福建电信要求: seconds elapse字段需记录本次流程中所发送的累计时间,以秒为单位。 设备上电后,第一个DHCP Disco

18、ver包要在060秒之间随机时延一段后发出。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 18discover报文的时间间隔实例Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 19续租机制 上图中T1.5(68.75%, 5.5/8, 11/16)和T2.5(93.75%,7.5/8, 15/16)是中国电信的对标准规范的扩展。Copyright 2012 Shanghai

19、DareGlobal Technologies Co., Ltd. All rights reserved. 20续租未响应的抓包Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 21在T1期间总是得到响应的抓包Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 22在T2期间才得到响应的抓包Copyright 2012 Shanghai DareGlobal Technologie

20、s Co., Ltd. All rights reserved. 23终端ARP探测 (福建电信规范)Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 24ARP探测流程 1)家庭网关正常获取后,ARP探测机制开始探测。探测周期为每四分钟一次,探测包为全广播包,探测三层地址为本接口网关地址。2)探测包发送后,等待超时时间为五秒。若五秒内收到ARP回复,本次探测结束。若五秒超时未收到ARP回复,则:发送以广播形式发送Request发(包中携带本接口之前正常获取的地址)续租。3)若未收到 s

21、erver回应的ACK报文。重复本过程发送Request报文(重复发送间隔为)。任何一次收到ACK报文后,本次探测结束。若)中三次Request续租报文均无回应,则重启会话。(如同重新开机流程)Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 25ARP链路检测总是正常的抓包Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 26ARP探测异常发request抓包Copyright

22、2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 27ARP探测异常且无法恢复抓包Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 28Option 60字段名长度内容Code8固定值,60Length8整个报文长度Enterprise Code16企业代码(参照e8规范)Field type8扩展属性,固定值31Field Length8扩展域的长度Field Value认证加密信息 0 1 2 3

23、 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | code (60) | Length | Enterprise Code | +-+-+-+-+ | Field type | Field Length | Field Value | +-+-+Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights

24、reserved. 29Option 60 Option60字段鉴权规划参照中国电信“我的e家”技术规范e家终端(e8)文中标准设计。 扩充Filed Type 31 - 60 为 IPTV 机顶盒专用,其中Field Type 31定义为IPTV机顶盒DHCP认证的鉴权信息(具体为:接入层用户名、密码等信息加密后的密文,加密算法见本文相关内容)。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 30Option 60加密算法 在家庭网关启动后,如果FLASH中没有储存VOIP用户名和密

25、码信息,则OPTION 60相关信息如下:Type为34;Value为24位家庭网关序列号+默认VOIP账号字符串(固定为”admin/admin”)。如果VOIP账号已保存到家庭网关的FLASH中, Option 60字段相关信息如下:Type值为34,Value值为24位家庭网关序列号+VoIP账号的加密字符串 DHCP平台对网关OPTION 60字段进行验证,对验证通过的返回OFFER报文,没有通过的丢弃该报文不做任何处理。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 31Op

26、tion 60加密算法家庭网关从FLASH中读取出VoIP/IPTV账号信息:用户名(UserID)、密码(Password)家庭网关生成随机数R,R长度为64bit ,8字节。家庭网关生成时间戳TS,TS定义为距离格林威志时间1970年0点秒数的64bit 整型,强制转换8字节长整型,如位数不够高位补0。家庭网关生成密文C = EnCry(R+TS+64Bit, UserID), 例如C的长度为128bit,UserID为120bit(15字符),EnCry为3DES对称加密算法,密钥为R+TS后用64位0补足192bit。家庭网关生成密钥Key = Hash(R+Password+TS),

27、其中Key为128bit,Hash()为哈希算法,这里定义为MD5;R+Password+TS就是Byte的直接拼接。家庭网关生成发送消息Message = O+R+TS+Key+C,其中O描述使用的对称加密算法8bit,O=1:表示为上述描述的加密算法,O=其他数字:保留。 Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 32Option 60字段举例CT option 60 全字段(UserIdad66133512iptv Password123456)3C 35 00 00 1F

28、 31 01 0A DA A1 3C 13 0D 33 6A 0E00 00 00 00 00 00 00 53 BE 31 31 0F 1F 5F C8 538E 67 70 77 32 19 DE A4 ED BA BF 98 50 1E D1 6CBF DE 0D 0E A5 0F F9 Type. . . . . . : 60(0 x3C) Length. . . . . : 53(0 x35) Enterprise Code : 0(0 x00 0 x00) Field type. . . : 31(0 x1F) Field Length. . : 49(0 x31) 加密方式. .

29、 . . : 1(0 x01)加密计算:随机数:0A DA A1 3C 13 0D 33 6A时间戳:0E 00 00 00 00 00 00 00密钥Key:53 BE 31 31 0F 1F 5F C8 53 8E 67 70 77 32 19 DE密文C:A4 ED BA BF 98 50 1E D1 6C BF DE 0D 0E A5 0F F9Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 33Option 125 OPTION 125 功能是对标准DHCP协议一个补充标准,

30、该功能的标准定义在RFC 3925中。 DHCP服务器在完成验证将客户端的IP地址等信息封装成DHCP OFFER包的时候,将OPTION 125信息封装进DHCP OFFER包中再发送给客户端。 DHCP 服务器在收到Request包后,同样也会在回给机顶盒的ACK包中添加OPTION125的信息。 客户端收到OFFER/ACK包以后,首先查看该OFFER/ACK包中OPTION 125中的约定的信息,并与预先存储的信息进行比对。比对结果为相同则使用此OFFER/ACK,如果比对信息不同则将此OFFER/ACK丢弃。Copyright 2012 Shanghai DareGlobal Tec

31、hnologies Co., Ltd. All rights reserved. 34Option 125 格式 Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 35Option 125举例举例: Option-code=125 Option-len=DHCP 服务器厂商自定义 Enterprise-number1=DHCP 服务器厂商自定义 data-len1=16 vendor-class-data1=SHCTCIPTVDHCPAAACopyright 2012 Shanghai

32、DareGlobal Technologies Co., Ltd. All rights reserved. 36中国电信Option 125扩展功能Option125特定字段内容定义 enterprise-number1:待定,暂用0。 option-data1:DHCP SERVER特定信息(根据需要添加,总字节数不可超过250) Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 37Option125 扩展字段定义 subopt-codesubopt-lensub-option-d

33、ataDescription of sub-option-data11-32设备的生产厂商名称字符串格式,建议使用英文或拼音21-32DHCP server的设备种类或分类字符串格式,如: HGW-CT STB DHCP SERVER DHCP SERVER No.531-32DHCP server 的设备型号字符串格式,如DS-8000102上网类业务的VLAN ID2个字节十六进制数(高字节在前),值0 x2000表示untag112IPTV业务的VLAN ID2个字节十六进制数(高字节在前),值0 x2000表示untag122IMS业务的VLAN ID2个字节十六进制数(高字节在前),

34、值0 x2000表示untag132VOICE业务的VLAN ID2个字节十六进制数(高字节在前),值0 x2000表示untag1360(预留)83保留原有IPTV通道DHCP server专用其它(待定)Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 38Option125 举例说明0000 7d 1c 00 00 00 00 17 02 06 48 47 57 2d 43 54 03 .HGW-CT.0010 09 44 50 36 30 37 2d 47 56 39 0b 02

35、 00 64 .DP607-GV9.d7d (option 125)1c (length 28)00 00 00 00 (enterprise-number1:待定,暂用0)17 (data-len1 = 23)02 (subopt-code 2) 06 (subopt-len) 48 47 57 2d 43 54 (HGW-CT)03 (subopt-code 3) 09 (subopt-len) 44 50 36 30 37 2d 47 56 39 (DP607-GV9)0b (subopt-code 11) 02 (subopt-len) 00 64 (IPTV业务的VLAN ID=10

36、0)Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 39现网DHCP案例分析福州语音问题通过option 60实现对A/B业务平面的访问 Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 40福州语音问题现网现象描述 接福建大亚现场技术支持工程师(FAE)黄红慈报道,SVN:5571的软件版本,在福州几个本地网多出现语音不能使用,到现场看了一下,发现PING SBC地址无法通,查

37、看路由表有IP存在,局方数据查询说该ONU无发续约包过来,导致半个小时后语音不能正常使用,但在现场发现是有IP地址的。另外只要重新设置一下WAN口连接(就是点击一下VLAN:45 按确认后)设备在上报IP请求,IP就可以通了。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 41现网现象初步分析和定位 初步分析:可能是续租包没有发出来,目前网关在续租到期未续租成功的情况下,IP地址可继续使用(符合前面的“查看路由表有IP存在”),但无法ping通SBC(因为地址已经被回收)。另外重新设置

38、一下WAN口连接,这是会重新开始DISCOVER的过程,就又能拿到server分配的IP了(符合前面的“IP就可以通了”)。 通过大亚FAE在现场的抓包,确实没有发现发续租包,包括单播和广播续租包。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 42在公司内的验证 升级为同样的版本,同样的组网环境,在公司内验证,发现DHCP所有过程一切正常,包括续租过程。DHCP续租包总是在租约期的一半时间向DHCP server准时发出。Copyright 2012 Shanghai DareGlo

39、bal Technologies Co., Ltd. All rights reserved. 43初步怀疑方向 因为是在VOIP WAN连接上发生了DHCP无法续租成功,而VOIP WAN连接是使用的独立的路由表(与INTERNET路由表不一样)。根据以往的经验,DHCP 单播续租包无法发出的一种可能是路由表不正确,导致单播包无法找到路由而发送失败。根据负责组网模块的工程师说法,福建那边有一个特殊需求,从offer包提供的网关地址和网段掩码,无论掩码长度为多少,都加一个8位地址的掩码的路由。根据为福建电信定制功能而写的代码,例如会添加了一条以下的路由:ip route add to 10.8

40、.0.0/8 dev eth4.46_1 table t31实际上这条路由添加是不会成功的,经过路由表查看,这样的路由没有添加成功的,因为子网和掩码长度不匹配,需要修改成以下这样的路由才能添加成功。ip route add to 10.0.0.0/8 dev eth4.46_1 table t31因此怀疑路由没有添加成功导致单播DHCP续租包未能成功发出,经过修改代码,修正了以上的bug,发送版本给前方验证。 Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 44对初步怀疑的验证 经过前

41、方验证,故障依旧,虽然前面bug得到了修正,但DHCP的问题与此bug无关。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 45再次分析验证(1) 因为在公司环境里测试一切正常,在福建现网环境不正常,因此怀疑与网络环境是有很大关系的。查看DHCP模块代码的历史修订记录,在今年2月份时未福建电信增加了DHCP ARP 探测的功能,是否与此有关? 因为ARP探测功能可以单独关闭,不启用ARP探测功能,经前方验证,问题依旧。 把DHCP模块的代码倒退到2月份之前的版本,重新编译,发给前方验证

42、,问题消失。 看来是ARP探测功能加入后引入的bug。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 46再次分析验证(2) 为了证明推论,关掉NTP服务,重启设备,续租包能够正常发出,证明确实与NTP服务有关。并进一步分析出以下过程:1) 开机DHCP首先拿到地址,根据当前的系统时间+租期/2得到开始发续租包的时间(在2000年)2) NTP在WAN口得到地址后开始启动,更新系统时间到2012年3) DHCP进程检查发续租包的时间永远无法满足,由于时间坐标系不一致,续租时间是按200

43、0年为基准,当前时间按NTP更新后的时间2012年为基准,导致发续租包的时间条件不满足,永远发不出续租包。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 47再次分析验证(3) 需要在代码中加入debug信息,看为何到了租期的一半时间DHCP续租为何不能发出。根据实现的原理,需要有两个定时器,一个定时器检查租期是否过半,一个检查ARP探测定时器是否到时间,这两个定时器每秒钟分别检查一次。 定时器的检查是基于系统时间秒数,以1970年1月1日0时0秒为基准点,取当前时间距基准点的秒数,与

44、预计租期到一半的时间点进行比较,如果等于这个时间点,续租包就发出。 经过分析debug信息,发现续租时间和当前时间差别巨大,差值在12年左右。因为续租时间是在当前时间+租期/2上得出的,不会差别这么大,推测与NTP服务开启有关,系统默认时间是2000年,NTP更新后在2012年,正好差别12年。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 48再次分析验证(4) 通过以上分析,需要在NTP更新时间后,调整以前续租时间的坐标系才能校准时间,满足发续租包的时间条件。 修改代码,在检查到续

45、租时间和当前时间差值大于一个租期时(这种情况只有NTP修改时间才可能发生),立刻调整续租时间为当前时间。通过验证,能够解决此问题。 根据代码修改记录,同样可以解释SVN 5399的版本无问题, SVN 5711版本存在此问题。在此两个版本之间,增加了DHCP模块每4分钟ARP检查的功能,修 改了有关定时器的机制,以同时满足定时器对续租和ARP检查两个功能的同时支持,定时器在正常情况下本身无问题,但没有考虑到NTP服务刷新系统时间带来的影响,导致 了这个差别。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights

46、reserved. 49再次分析验证(5) 根据代码修改记录,同样可以解释SVN 5399的版本无问题, SVN 5711版本存在此问题。 在此两个版本之间,增加了DHCP模块每4分钟ARP检查的功能,修 改了有关定时器的机制,以同时满足定时器对续租和ARP检查两个功能的同时支持 定时器在正常情况下本身无问题,但没有考虑到NTP服务刷新系统时间带来的影响,导致 了这个差别。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 50多定时器实现机制Copyright 2012 Shanghai

47、 DareGlobal Technologies Co., Ltd. All rights reserved. 51现网问题的解决方法 针对前面出现的问题,解决现网存在问题的方法有如下几种: 1) 升级到最新版本2) 退回到版本5399,但此版本无ARP检查的功能3) 关闭NTP的功能,重启设备。或者让电信关掉NTP服务器Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 52更优化的解决方案 经过前面的分析,此问题的实质是因为系统时间发生漂移,导致定时器无法按预期时间点触发原定任务的处理

48、,虽然前面的解决办法可以在侦测到故障发生时能够自行恢复,但毕竟属于事后补救的方法,能否做到彻底解决呢? 考虑到系统启动后先设置系统默认时间(例如2010年1月1日0时0分),然后DHCP获得地址后,再通过SNTP服务取得当前的实际时间,实际时间与系统默认时间肯定是不同的。这几个过程的时序都是固定的,无法在此基础上做任何改进。 后来想到了取系统自上电以来的秒数(uptime),这个应该与系统时间无直接关系,并且在修改系统时间后,理论上也不会发生任何突变。经过验证,的确如此。 以系统上电的时间作为参考点,取当前的uptime作为时间比较点,经过验证,可以彻底解决此问题。Copyright 2012

49、 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 53更优化的解决方案之关键代码在系统头文件中的定义struct sysinfo long uptime;/* Seconds since boot */*封装了一个函数,能够返回系统自启动以来的秒数*/long get_uptime()struct sysinfo s_info;int error;error = sysinfo(&s_info);if(error != 0) printf(get_uptime code error = %dn, error

50、);return 0;return s_info.uptime; Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 54一些经验教训 研发写代码时需要仔细考虑各种情况下代码的逻辑是否正确。本案例中因为忽略了系统时间可能变化,导致基准时间变化,导致定时器不准。概率虽然看似很小,但一旦条件满足,就百分之百地出现故障。不完整的测试会放过一些bug在本案例中,因为以前的每次测试(包括自测,测试人员测试,现网测试,发行测试),都未能开启SNTP服务,导致无法测试出此bug。而且即使开启SNTP服务

51、,普通的测试无法测试出此bug。要测试出此bug,还需要满足以下条件: 1)测试时间足够长,要大于租期的一半时间以上 2)局端设备(OLT,DHCP server等)要对未续租成功的设备回收IP地址,取消到此设备的路由因此,需要包括研发,测试,FAE在内的人都需要提高警觉,每个环节都不能放松。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 55一些技巧总结 为了快速测试,可以把DHCP租期时间尽量设置短一些,以便尽早完成整个测试过程。在现网中,由于无法修改局端的DHCP server的

52、租期,可以在代码中修改,例如在现网中DHCP租期时间是30分钟,在代码中把租期时间直接修改为100秒,不影响此问题的本质。在过50秒没有发出续租包,即可认为存在问题。 可以通过使用更改系统时间的命令来模拟SNTP服务的效果,这样可以简化和加快自测的效果。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 56通过DHCP实现对A/B平面的访问 应用背景 方案设计 方案验证结果 个别现网问题的解决 方案进一步优化LAN侧VLAN绑定Copyright 2012 Shanghai DareGl

53、obal Technologies Co., Ltd. All rights reserved. 57应用背景 在2009年底,上海电信欲推出一种新集上网,看IPTV业务于一体的无线终端设备-魔屏,此设备的特点是能够同时访问A/B平面。所谓的A平面是指INTERNET网络,B平面是IPTV平面,B平面与A平面不能互相访问,完全由中国电信经营维护,完全独立的IP地址空间。 以往通过家庭网关接入的设备,由端口绑定决定这个设备要么只能访问A平面,要么只能访问B平面,无法同时访问A/B平面。访问A平面相当于PC的行为,访问B平面相当于IPTV机顶盒的行为。Copyright 2012 Shanghai

54、 DareGlobal Technologies Co., Ltd. All rights reserved. 58A/B平面组网示意图Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 59方案设计(初步)为了使魔屏使用简单,魔屏是使用DHCP方式获得地址。研究了B平面DHCP的电信规范,发现B平面对DHCP有特殊要求,其中一个要求是在option 60中可以识别IPTV机顶盒,即在option 60中有IPTV机顶盒的特征字段。因为A/B平面IP地址空间是独立的,要同时访问这两个平面一

55、定需要两个独立的IP地址,对于魔屏而言,需要在两个平面分别DHCP获取IP。由于端口绑定的原因,在正常情况下,哪怕发出两次不同的DHCP请求,只能获得一个平面的地址。按常规的做法是,网关开启两个SSID, 一个绑定在A平面,另外一个绑定在B平面。魔屏分别连接两个SSID,这样就可以同时访问A/B平面了。这种做法在理论上可行,但从成本上和管理维护上是不可行的,因为要连接上两个SSID,魔屏或许需要两个WiFi芯片,成本要增加,而且两个SSID的连接即使从用户使用角度看也是非常麻烦的。最好能从一个SSID连接上就能同时访问A/B平面。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 60方案设计(优化) 使用一个SSID同时访问A/B平面 默认访问A平面,默认从

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论