




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 1DHCPDHCP規(guī)范和現(xiàn)網(wǎng)案例分析規(guī)范和現(xiàn)網(wǎng)案例分析陳曦2012年6月Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 2本次課題lDHCP簡介簡介l中國電信中國電信DHCP擴展規(guī)范擴展規(guī)范l現(xiàn)網(wǎng)現(xiàn)網(wǎng)DHCP案例分析案例分析Copyright 2012 Shanghai DareGlobal Technologies Co., L
2、td. All rights reserved. 3DHCP簡介 協(xié)議概述 報文格式 報文類型 常用option DHCP報文交互過程 DHCP客戶端更新租約 DHCP client狀態(tài)機 DHCP中繼工作過程 處理DHCP中繼報文 Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 4協(xié)議概述DHCP動態(tài)主機配置協(xié)議(Dynamic Host Configuration Protocol)為網(wǎng)絡(luò)客戶機分配動態(tài)的IP地址提供安全、可靠的TCP/IP網(wǎng)絡(luò)配置保證IP地址不發(fā)生沖突,減少了在T
3、CP/IP網(wǎng)絡(luò)上增添、移動和配置計算機的管理負擔(dān),使IP地址管理自動化。動態(tài)分配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開始獲得地址或地址續(xù)借后所使用了的秒數(shù)。Seconds由DHCP Client選擇的一個隨機數(shù),被DHCP Server和DHCP Client用來在它們之間交流messages和responses。由客戶設(shè)置并由DHCP Server返回的32 bit整數(shù)??蛻粲盟鼘φ埱蠛蛻?yīng)答進行匹配。Transaction IDD
5、HCP Client設(shè)置為0,也能被一個代理服務(wù)器設(shè)置hopshardware address length,6字節(jié)。hlenhardware address type,1表示以太網(wǎng),這和ARP請求或應(yīng)答中同名字段表示的含義相同。htypemessage op code / message type“1“代表BOOTREQUEST ”2“代表 BOOTREPLYop含義字段Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 7報文字段含義(續(xù))包含報文的類型、有效租期、DNS(Domain
6、 Name System,域名系統(tǒng))服務(wù)器的 IP 地址等配置信息,RFC 2132中介紹了全部的option的定義optionsBoot file name,是一個空值終止串。DISCOVER中是“generic”名字或空字符, OFFER提供有效的目錄路徑全名。file“服務(wù)器主機名”字段是一個空值終止串,由服務(wù)器填寫。snameClient hardware addresschaddrDHCP Relay代理的IP地址。giaddrbootstrap中,下一個Server的IP地址。siaddryour(Client)IP addressyiaddrClient IP address,只
7、有DHCP Client已經(jīng)獲得IP地址,并且能響應(yīng)ARP requests時,才能被填充。ciaddr含義字段Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 8報文類型報文類型主要功能DHCP-DISCOVERDHCP客戶端廣播發(fā)送的,用來查找網(wǎng)絡(luò)中可用的DHCP服務(wù)器DHCP-OFFERDHCP服務(wù)器用來響應(yīng)客戶端的DHCP-DISCOVER請求,并為客戶端指定相應(yīng)配置參數(shù)DHCP-REQUESTDHCP客戶端廣播發(fā)送給DHCP服務(wù)器,用來請求配置參數(shù)或者續(xù)借租期DHCP-ACKD
8、HCP服務(wù)器通知客戶端可以使用分配的IP地址和配置參數(shù)DHCP-NAKDHCP服務(wù)器通知客戶端地址請求不正確或者租期已過期DHCP-RELEASEDHCP客戶端主動向DHCP服務(wù)器發(fā)送,告知服務(wù)器該客戶端不再需要分配的IP地址DHCP-DECLINEDHCP客戶端發(fā)現(xiàn)地址沖突或由于其它原因?qū)е碌刂凡荒苁褂茫瑒t發(fā)送DHCP-DECLINE報文,通知服務(wù)器所分配的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服務(wù)器分配給客戶端的服務(wù)器分配給客戶端的IP地址有一定地址有一定的租借期限,當(dāng)租借期滿后服務(wù)器會收回該的租借期限,當(dāng)租借期滿后服務(wù)器會收回該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狀態(tài)機Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 14DHCP中繼工作過程 由于DHCP請求報文采用廣播方式發(fā)送報文,因此當(dāng)DHCP客戶端和DHCP服務(wù)器處于不同子網(wǎng)時,必須要通過DHCP中繼進行通信,最終獲取到IP地址。這樣,多個網(wǎng)絡(luò)上的DHCP客戶端可以使用同一個DHCP服務(wù)器,既節(jié)省了成本,又便于進行集中管理。Copyr
15、ight 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 15處理DHCP中繼報文 DHCP中繼代理收到DHCP報文后首先識別該報文,再進行相應(yīng)處理。 如果DHCP報文的UDP目的端口號為67,且BOOTP報文頭中的“op”字段是BOOTREQUEST(1),即表示該報文是DHCP客戶機發(fā)給服務(wù)器的請求報文。DHCP中繼代理會檢查報文的“giaddr”字段,如果其值為0.0.0.0,則DHCP中繼代理設(shè)備用接受該報文的接口的IP地址填充此字段后,發(fā)送報文到指定的DHCP服務(wù)器組內(nèi)的所有DHCP服務(wù)器。 如
16、果DHCP報文的UDP目的端口號為67,且BOOTP報文頭中的“op”字段是BOOTREPLY(2),即表示該報文是DHCP服務(wù)器希望通過中繼代理轉(zhuǎn)發(fā)給DHCP客戶端的回應(yīng)報文。DHCP中繼代理會將該報文從“giaddr”字段所屬的接口發(fā)送到指定的DHCP客戶端。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 16中國電信DHCP擴展規(guī)范 發(fā)送discover報文的時間間隔 續(xù)租機制 終端ARP探測流程(福建電信地方規(guī)范) Option 60擴展 Option 125擴展Copyrig
17、ht 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 17發(fā)送discover報文的時間間隔 如第一次 DHCP 的請求,未收到來自DHCP 服務(wù)器的響應(yīng)后,需按照協(xié)議棧的要求在第 4 秒、第 8 秒、第 16 秒、第 32 秒、第 64 秒、第124秒、第184秒第304秒分別發(fā)起地址請求,且每次只發(fā)送一個請求報文。如第秒仍未收到服務(wù)器響應(yīng),則重啟會話,重復(fù)上述過程。其中福建電信要求: seconds elapse字段需記錄本次流程中所發(fā)送的累計時間,以秒為單位。 設(shè)備上電后,第一個DHCP Disco
18、ver包要在060秒之間隨機時延一段后發(fā)出。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 18discover報文的時間間隔實例Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 19續(xù)租機制 上圖中T1.5(68.75%, 5.5/8, 11/16)和T2.5(93.75%,7.5/8, 15/16)是中國電信的對標(biāo)準(zhǔn)規(guī)范的擴展。Copyright 2012 Shanghai
19、DareGlobal Technologies Co., Ltd. All rights reserved. 20續(xù)租未響應(yīng)的抓包Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 21在T1期間總是得到響應(yīng)的抓包Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 22在T2期間才得到響應(yīng)的抓包Copyright 2012 Shanghai DareGlobal Technologie
20、s Co., Ltd. All rights reserved. 23終端ARP探測 (福建電信規(guī)范)Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 24ARP探測流程 1)家庭網(wǎng)關(guān)正常獲取后,ARP探測機制開始探測。探測周期為每四分鐘一次,探測包為全廣播包,探測三層地址為本接口網(wǎng)關(guān)地址。2)探測包發(fā)送后,等待超時時間為五秒。若五秒內(nèi)收到ARP回復(fù),本次探測結(jié)束。若五秒超時未收到ARP回復(fù),則:發(fā)送以廣播形式發(fā)送Request發(fā)(包中攜帶本接口之前正常獲取的地址)續(xù)租。3)若未收到 s
21、erver回應(yīng)的ACK報文。重復(fù)本過程發(fā)送Request報文(重復(fù)發(fā)送間隔為)。任何一次收到ACK報文后,本次探測結(jié)束。若)中三次Request續(xù)租報文均無回應(yīng),則重啟會話。(如同重新開機流程)Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 25ARP鏈路檢測總是正常的抓包Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 26ARP探測異常發(fā)request抓包Copyright
22、2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 27ARP探測異常且無法恢復(fù)抓包Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 28Option 60字段名長度內(nèi)容Code8固定值,60Length8整個報文長度Enterprise Code16企業(yè)代碼(參照e8規(guī)范)Field type8擴展屬性,固定值31Field Length8擴展域的長度Field Value認(rèn)證加密信息 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字段鑒權(quán)規(guī)劃參照中國電信“我的e家”技術(shù)規(guī)范e家終端(e8)文中標(biāo)準(zhǔn)設(shè)計。 擴充Filed Type 31 - 60 為 IPTV 機頂盒專用,其中Field Type 31定義為IPTV機頂盒DHCP認(rèn)證的鑒權(quán)信息(具體為:接入層用戶名、密碼等信息加密后的密文,加密算法見本文相關(guān)內(nèi)容)。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 30Option 60加密算法 在家庭網(wǎng)關(guān)啟動后,如果FLASH中沒有儲存VOIP用戶名和密
25、碼信息,則OPTION 60相關(guān)信息如下:Type為34;Value為24位家庭網(wǎng)關(guān)序列號+默認(rèn)VOIP賬號字符串(固定為”admin/admin”)。如果VOIP賬號已保存到家庭網(wǎng)關(guān)的FLASH中, Option 60字段相關(guān)信息如下:Type值為34,Value值為24位家庭網(wǎng)關(guān)序列號+VoIP賬號的加密字符串 DHCP平臺對網(wǎng)關(guān)OPTION 60字段進行驗證,對驗證通過的返回OFFER報文,沒有通過的丟棄該報文不做任何處理。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 31Op
26、tion 60加密算法家庭網(wǎng)關(guān)從FLASH中讀取出VoIP/IPTV賬號信息:用戶名(UserID)、密碼(Password)家庭網(wǎng)關(guān)生成隨機數(shù)R,R長度為64bit ,8字節(jié)。家庭網(wǎng)關(guān)生成時間戳TS,TS定義為距離格林威志時間1970年0點秒數(shù)的64bit 整型,強制轉(zhuǎn)換8字節(jié)長整型,如位數(shù)不夠高位補0。家庭網(wǎng)關(guān)生成密文C = EnCry(R+TS+64Bit, UserID), 例如C的長度為128bit,UserID為120bit(15字符),EnCry為3DES對稱加密算法,密鑰為R+TS后用64位0補足192bit。家庭網(wǎng)關(guān)生成密鑰Key = Hash(R+Password+TS),
27、其中Key為128bit,Hash()為哈希算法,這里定義為MD5;R+Password+TS就是Byte的直接拼接。家庭網(wǎng)關(guān)生成發(fā)送消息Message = O+R+TS+Key+C,其中O描述使用的對稱加密算法8bit,O=1:表示為上述描述的加密算法,O=其他數(shù)字:保留。 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)加密計算:隨機數(shù):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 功能是對標(biāo)準(zhǔn)DHCP協(xié)議一個補充標(biāo)準(zhǔn),
30、該功能的標(biāo)準(zhǔn)定義在RFC 3925中。 DHCP服務(wù)器在完成驗證將客戶端的IP地址等信息封裝成DHCP OFFER包的時候,將OPTION 125信息封裝進DHCP OFFER包中再發(fā)送給客戶端。 DHCP 服務(wù)器在收到Request包后,同樣也會在回給機頂盒的ACK包中添加OPTION125的信息。 客戶端收到OFFER/ACK包以后,首先查看該OFFER/ACK包中OPTION 125中的約定的信息,并與預(yù)先存儲的信息進行比對。比對結(jié)果為相同則使用此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 服務(wù)器廠商自定義 Enterprise-number1=DHCP 服務(wù)器廠商自定義 data-len1=16 vendor-class-data1=SHCTCIPTVDHCPAAACopyright 2012 Shanghai
32、DareGlobal Technologies Co., Ltd. All rights reserved. 36中國電信Option 125擴展功能Option125特定字段內(nèi)容定義 enterprise-number1:待定,暫用0。 option-data1:DHCP SERVER特定信息(根據(jù)需要添加,總字節(jié)數(shù)不可超過250) Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 37Option125 擴展字段定義 subopt-codesubopt-lensub-option-d
33、ataDescription of sub-option-data11-32設(shè)備的生產(chǎn)廠商名稱字符串格式,建議使用英文或拼音21-32DHCP server的設(shè)備種類或分類字符串格式,如: HGW-CT STB DHCP SERVER DHCP SERVER No.531-32DHCP server 的設(shè)備型號字符串格式,如DS-8000102上網(wǎng)類業(yè)務(wù)的VLAN ID2個字節(jié)十六進制數(shù)(高字節(jié)在前),值0 x2000表示untag112IPTV業(yè)務(wù)的VLAN ID2個字節(jié)十六進制數(shù)(高字節(jié)在前),值0 x2000表示untag122IMS業(yè)務(wù)的VLAN ID2個字節(jié)十六進制數(shù)(高字節(jié)在前),
34、值0 x2000表示untag132VOICE業(yè)務(wù)的VLAN ID2個字節(jié)十六進制數(shù)(高字節(jié)在前),值0 x2000表示untag1360(預(yù)留)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業(yè)務(wù)的VLAN ID=10
36、0)Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 39現(xiàn)網(wǎng)DHCP案例分析福州語音問題通過option 60實現(xiàn)對A/B業(yè)務(wù)平面的訪問 Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 40福州語音問題現(xiàn)網(wǎng)現(xiàn)象描述 接福建大亞現(xiàn)場技術(shù)支持工程師(FAE)黃紅慈報道,SVN:5571的軟件版本,在福州幾個本地網(wǎng)多出現(xiàn)語音不能使用,到現(xiàn)場看了一下,發(fā)現(xiàn)PING SBC地址無法通,查
37、看路由表有IP存在,局方數(shù)據(jù)查詢說該ONU無發(fā)續(xù)約包過來,導(dǎo)致半個小時后語音不能正常使用,但在現(xiàn)場發(fā)現(xiàn)是有IP地址的。另外只要重新設(shè)置一下WAN口連接(就是點擊一下VLAN:45 按確認(rèn)后)設(shè)備在上報IP請求,IP就可以通了。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 41現(xiàn)網(wǎng)現(xiàn)象初步分析和定位 初步分析:可能是續(xù)租包沒有發(fā)出來,目前網(wǎng)關(guān)在續(xù)租到期未續(xù)租成功的情況下,IP地址可繼續(xù)使用(符合前面的“查看路由表有IP存在”),但無法ping通SBC(因為地址已經(jīng)被回收)。另外重新設(shè)置
38、一下WAN口連接,這是會重新開始DISCOVER的過程,就又能拿到server分配的IP了(符合前面的“IP就可以通了”)。 通過大亞FAE在現(xiàn)場的抓包,確實沒有發(fā)現(xiàn)發(fā)續(xù)租包,包括單播和廣播續(xù)租包。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 42在公司內(nèi)的驗證 升級為同樣的版本,同樣的組網(wǎng)環(huán)境,在公司內(nèi)驗證,發(fā)現(xiàn)DHCP所有過程一切正常,包括續(xù)租過程。DHCP續(xù)租包總是在租約期的一半時間向DHCP server準(zhǔn)時發(fā)出。Copyright 2012 Shanghai DareGlo
39、bal Technologies Co., Ltd. All rights reserved. 43初步懷疑方向 因為是在VOIP WAN連接上發(fā)生了DHCP無法續(xù)租成功,而VOIP WAN連接是使用的獨立的路由表(與INTERNET路由表不一樣)。根據(jù)以往的經(jīng)驗,DHCP 單播續(xù)租包無法發(fā)出的一種可能是路由表不正確,導(dǎo)致單播包無法找到路由而發(fā)送失敗。根據(jù)負責(zé)組網(wǎng)模塊的工程師說法,福建那邊有一個特殊需求,從offer包提供的網(wǎng)關(guān)地址和網(wǎng)段掩碼,無論掩碼長度為多少,都加一個8位地址的掩碼的路由。根據(jù)為福建電信定制功能而寫的代碼,例如會添加了一條以下的路由:ip route add to 10.8
40、.0.0/8 dev eth4.46_1 table t31實際上這條路由添加是不會成功的,經(jīng)過路由表查看,這樣的路由沒有添加成功的,因為子網(wǎng)和掩碼長度不匹配,需要修改成以下這樣的路由才能添加成功。ip route add to 10.0.0.0/8 dev eth4.46_1 table t31因此懷疑路由沒有添加成功導(dǎo)致單播DHCP續(xù)租包未能成功發(fā)出,經(jīng)過修改代碼,修正了以上的bug,發(fā)送版本給前方驗證。 Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 44對初步懷疑的驗證 經(jīng)過前
41、方驗證,故障依舊,雖然前面bug得到了修正,但DHCP的問題與此bug無關(guān)。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 45再次分析驗證(1) 因為在公司環(huán)境里測試一切正常,在福建現(xiàn)網(wǎng)環(huán)境不正常,因此懷疑與網(wǎng)絡(luò)環(huán)境是有很大關(guān)系的。查看DHCP模塊代碼的歷史修訂記錄,在今年2月份時未福建電信增加了DHCP ARP 探測的功能,是否與此有關(guān)? 因為ARP探測功能可以單獨關(guān)閉,不啟用ARP探測功能,經(jīng)前方驗證,問題依舊。 把DHCP模塊的代碼倒退到2月份之前的版本,重新編譯,發(fā)給前方驗證
42、,問題消失。 看來是ARP探測功能加入后引入的bug。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 46再次分析驗證(2) 為了證明推論,關(guān)掉NTP服務(wù),重啟設(shè)備,續(xù)租包能夠正常發(fā)出,證明確實與NTP服務(wù)有關(guān)。并進一步分析出以下過程:1) 開機DHCP首先拿到地址,根據(jù)當(dāng)前的系統(tǒng)時間+租期/2得到開始發(fā)續(xù)租包的時間(在2000年)2) NTP在WAN口得到地址后開始啟動,更新系統(tǒng)時間到2012年3) DHCP進程檢查發(fā)續(xù)租包的時間永遠無法滿足,由于時間坐標(biāo)系不一致,續(xù)租時間是按200
43、0年為基準(zhǔn),當(dāng)前時間按NTP更新后的時間2012年為基準(zhǔn),導(dǎo)致發(fā)續(xù)租包的時間條件不滿足,永遠發(fā)不出續(xù)租包。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 47再次分析驗證(3) 需要在代碼中加入debug信息,看為何到了租期的一半時間DHCP續(xù)租為何不能發(fā)出。根據(jù)實現(xiàn)的原理,需要有兩個定時器,一個定時器檢查租期是否過半,一個檢查ARP探測定時器是否到時間,這兩個定時器每秒鐘分別檢查一次。 定時器的檢查是基于系統(tǒng)時間秒數(shù),以1970年1月1日0時0秒為基準(zhǔn)點,取當(dāng)前時間距基準(zhǔn)點的秒數(shù),與
44、預(yù)計租期到一半的時間點進行比較,如果等于這個時間點,續(xù)租包就發(fā)出。 經(jīng)過分析debug信息,發(fā)現(xiàn)續(xù)租時間和當(dāng)前時間差別巨大,差值在12年左右。因為續(xù)租時間是在當(dāng)前時間+租期/2上得出的,不會差別這么大,推測與NTP服務(wù)開啟有關(guān),系統(tǒng)默認(rèn)時間是2000年,NTP更新后在2012年,正好差別12年。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 48再次分析驗證(4) 通過以上分析,需要在NTP更新時間后,調(diào)整以前續(xù)租時間的坐標(biāo)系才能校準(zhǔn)時間,滿足發(fā)續(xù)租包的時間條件。 修改代碼,在檢查到續(xù)
45、租時間和當(dāng)前時間差值大于一個租期時(這種情況只有NTP修改時間才可能發(fā)生),立刻調(diào)整續(xù)租時間為當(dāng)前時間。通過驗證,能夠解決此問題。 根據(jù)代碼修改記錄,同樣可以解釋SVN 5399的版本無問題, SVN 5711版本存在此問題。在此兩個版本之間,增加了DHCP模塊每4分鐘ARP檢查的功能,修 改了有關(guān)定時器的機制,以同時滿足定時器對續(xù)租和ARP檢查兩個功能的同時支持,定時器在正常情況下本身無問題,但沒有考慮到NTP服務(wù)刷新系統(tǒng)時間帶來的影響,導(dǎo)致 了這個差別。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights
46、reserved. 49再次分析驗證(5) 根據(jù)代碼修改記錄,同樣可以解釋SVN 5399的版本無問題, SVN 5711版本存在此問題。 在此兩個版本之間,增加了DHCP模塊每4分鐘ARP檢查的功能,修 改了有關(guān)定時器的機制,以同時滿足定時器對續(xù)租和ARP檢查兩個功能的同時支持 定時器在正常情況下本身無問題,但沒有考慮到NTP服務(wù)刷新系統(tǒng)時間帶來的影響,導(dǎo)致 了這個差別。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 50多定時器實現(xiàn)機制Copyright 2012 Shanghai
47、 DareGlobal Technologies Co., Ltd. All rights reserved. 51現(xiàn)網(wǎng)問題的解決方法 針對前面出現(xiàn)的問題,解決現(xiàn)網(wǎng)存在問題的方法有如下幾種: 1) 升級到最新版本2) 退回到版本5399,但此版本無ARP檢查的功能3) 關(guān)閉NTP的功能,重啟設(shè)備?;蛘咦岆娦抨P(guān)掉NTP服務(wù)器Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 52更優(yōu)化的解決方案 經(jīng)過前面的分析,此問題的實質(zhì)是因為系統(tǒng)時間發(fā)生漂移,導(dǎo)致定時器無法按預(yù)期時間點觸發(fā)原定任務(wù)的處理
48、,雖然前面的解決辦法可以在偵測到故障發(fā)生時能夠自行恢復(fù),但畢竟屬于事后補救的方法,能否做到徹底解決呢? 考慮到系統(tǒng)啟動后先設(shè)置系統(tǒng)默認(rèn)時間(例如2010年1月1日0時0分),然后DHCP獲得地址后,再通過SNTP服務(wù)取得當(dāng)前的實際時間,實際時間與系統(tǒng)默認(rèn)時間肯定是不同的。這幾個過程的時序都是固定的,無法在此基礎(chǔ)上做任何改進。 后來想到了取系統(tǒng)自上電以來的秒數(shù)(uptime),這個應(yīng)該與系統(tǒng)時間無直接關(guān)系,并且在修改系統(tǒng)時間后,理論上也不會發(fā)生任何突變。經(jīng)過驗證,的確如此。 以系統(tǒng)上電的時間作為參考點,取當(dāng)前的uptime作為時間比較點,經(jīng)過驗證,可以徹底解決此問題。Copyright 2012
49、 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 53更優(yōu)化的解決方案之關(guān)鍵代碼在系統(tǒng)頭文件中的定義struct sysinfo long uptime;/* Seconds since boot */*封裝了一個函數(shù),能夠返回系統(tǒng)自啟動以來的秒數(shù)*/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一些經(jīng)驗教訓(xùn) 研發(fā)寫代碼時需要仔細考慮各種情況下代碼的邏輯是否正確。本案例中因為忽略了系統(tǒng)時間可能變化,導(dǎo)致基準(zhǔn)時間變化,導(dǎo)致定時器不準(zhǔn)。概率雖然看似很小,但一旦條件滿足,就百分之百地出現(xiàn)故障。不完整的測試會放過一些bug在本案例中,因為以前的每次測試(包括自測,測試人員測試,現(xiàn)網(wǎng)測試,發(fā)行測試),都未能開啟SNTP服務(wù),導(dǎo)致無法測試出此bug。而且即使開啟SNTP服務(wù)
51、,普通的測試無法測試出此bug。要測試出此bug,還需要滿足以下條件: 1)測試時間足夠長,要大于租期的一半時間以上 2)局端設(shè)備(OLT,DHCP server等)要對未續(xù)租成功的設(shè)備回收IP地址,取消到此設(shè)備的路由因此,需要包括研發(fā),測試,F(xiàn)AE在內(nèi)的人都需要提高警覺,每個環(huán)節(jié)都不能放松。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 55一些技巧總結(jié) 為了快速測試,可以把DHCP租期時間盡量設(shè)置短一些,以便盡早完成整個測試過程。在現(xiàn)網(wǎng)中,由于無法修改局端的DHCP server的
52、租期,可以在代碼中修改,例如在現(xiàn)網(wǎng)中DHCP租期時間是30分鐘,在代碼中把租期時間直接修改為100秒,不影響此問題的本質(zhì)。在過50秒沒有發(fā)出續(xù)租包,即可認(rèn)為存在問題。 可以通過使用更改系統(tǒng)時間的命令來模擬SNTP服務(wù)的效果,這樣可以簡化和加快自測的效果。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 56通過DHCP實現(xiàn)對A/B平面的訪問 應(yīng)用背景 方案設(shè)計 方案驗證結(jié)果 個別現(xiàn)網(wǎng)問題的解決 方案進一步優(yōu)化LAN側(cè)VLAN綁定Copyright 2012 Shanghai DareGl
53、obal Technologies Co., Ltd. All rights reserved. 57應(yīng)用背景 在2009年底,上海電信欲推出一種新集上網(wǎng),看IPTV業(yè)務(wù)于一體的無線終端設(shè)備-魔屏,此設(shè)備的特點是能夠同時訪問A/B平面。所謂的A平面是指INTERNET網(wǎng)絡(luò),B平面是IPTV平面,B平面與A平面不能互相訪問,完全由中國電信經(jīng)營維護,完全獨立的IP地址空間。 以往通過家庭網(wǎng)關(guān)接入的設(shè)備,由端口綁定決定這個設(shè)備要么只能訪問A平面,要么只能訪問B平面,無法同時訪問A/B平面。訪問A平面相當(dāng)于PC的行為,訪問B平面相當(dāng)于IPTV機頂盒的行為。Copyright 2012 Shanghai
54、 DareGlobal Technologies Co., Ltd. All rights reserved. 58A/B平面組網(wǎng)示意圖Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 59方案設(shè)計(初步)為了使魔屏使用簡單,魔屏是使用DHCP方式獲得地址。研究了B平面DHCP的電信規(guī)范,發(fā)現(xiàn)B平面對DHCP有特殊要求,其中一個要求是在option 60中可以識別IPTV機頂盒,即在option 60中有IPTV機頂盒的特征字段。因為A/B平面IP地址空間是獨立的,要同時訪問這兩個平面一
55、定需要兩個獨立的IP地址,對于魔屏而言,需要在兩個平面分別DHCP獲取IP。由于端口綁定的原因,在正常情況下,哪怕發(fā)出兩次不同的DHCP請求,只能獲得一個平面的地址。按常規(guī)的做法是,網(wǎng)關(guān)開啟兩個SSID, 一個綁定在A平面,另外一個綁定在B平面。魔屏分別連接兩個SSID,這樣就可以同時訪問A/B平面了。這種做法在理論上可行,但從成本上和管理維護上是不可行的,因為要連接上兩個SSID,魔屏或許需要兩個WiFi芯片,成本要增加,而且兩個SSID的連接即使從用戶使用角度看也是非常麻煩的。最好能從一個SSID連接上就能同時訪問A/B平面。Copyright 2012 Shanghai DareGlobal Technologies Co., Ltd. All rights reserved. 60方案設(shè)計(優(yōu)化) 使用一個SSID同時訪問A/B平面 默認(rèn)訪問A平面,默認(rèn)從
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年礦業(yè)工程師職業(yè)資格考試試卷及答案
- 2025年建筑工程管理專業(yè)考研試題及解答
- 2025年宏觀經(jīng)濟學(xué)基礎(chǔ)知識與應(yīng)用考試試題及答案
- 2025年公共關(guān)系與廣告?zhèn)鞑タ荚囋囶}及答案
- 2025年中國郵政集團有限公司甘肅省分公司校園招聘筆試模擬試題含答案詳解
- 2025年中國電信集團有限公司北京分公司招聘筆試模擬試題含答案詳解
- 物管公司客戶管理制度
- 特殊學(xué)校老師管理制度
- 特種專業(yè)車輛管理制度
- 特色餐飲加盟管理制度
- 全過程咨詢項目管理
- 2024年廣東省廣州市白云山風(fēng)景名勝區(qū)管理局分支機構(gòu)第一次公開招聘考試真題及答案
- DB65T 8020-2024 房屋建筑與市政基礎(chǔ)設(shè)施工程施工現(xiàn)場從業(yè)人員配備標(biāo)準(zhǔn)
- 2024年江西省水利投資集團有限公司招聘考試真題
- 2024年貴州省普通高校招生信息表(普通類本科批-物理組合)
- 2025年個人與企業(yè)投資合同模板
- 《中南大學(xué)》課件
- 幼兒園教師考核評價量化表
- 醫(yī)院反腐倡廉廉潔行醫(yī)專題黨課宣講課件
- 2025版《VOCs廢氣處理設(shè)施安全檢查表》(全)
- 遼寧省本溪市(2024年-2025年小學(xué)六年級語文)統(tǒng)編版期末考試((上下)學(xué)期)試卷及答案
評論
0/150
提交評論