軟件部DDNS培訓(xùn)文檔_第1頁
軟件部DDNS培訓(xùn)文檔_第2頁
軟件部DDNS培訓(xùn)文檔_第3頁
軟件部DDNS培訓(xùn)文檔_第4頁
軟件部DDNS培訓(xùn)文檔_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、DDNS培訓(xùn)文檔軟件部更新日期:2010.12.09oujunhe1、 什么是DDNS?為什么需要DDNS?2、 開源中對DDNS的實(shí)現(xiàn)3、如何添加對一個(gè)新的DDNS服務(wù)提 供商的支持4、 TBS中如何對DDNS進(jìn)行適配研發(fā)人員1小時(shí)1.了解DDNS2.可以DDNS方面的BUG培訓(xùn)目的培訓(xùn)對象培訓(xùn)講師學(xué)習(xí)重點(diǎn)培訓(xùn)課時(shí)1、DNS概念及作用概念: DNS是Domain Name System的縮寫, 中文意思:域名系統(tǒng)作用:根據(jù)域名得到域名所綁定的IP(這里所 綁定的IP都是被買斷的):數(shù)據(jù)包在Internet中穿梭,最終使用的是IP,而不是域名2. DDNS的概念及作用概念:Dynamic DN

2、S,即動(dòng)態(tài)DNS作用:跟DNS一樣(但是DDNS服務(wù)器中域名 所綁定的IP是會(huì)變化的)3. DDNS和DNS的區(qū)別, 8, 54百度買下了這個(gè)IP:8,你任何時(shí)候訪問8都是訪問百度。適合企業(yè)或需要固定IP的用戶使用,相對DDNS來說,花的錢要多的多54只是很偶然的跟綁在一起,下一次就是另一個(gè)IP了,也就是說所綁定的IP是會(huì)變的,這也是為什么叫動(dòng)態(tài)DNS的原因。DNS:DDNS:4 為什么需要DDNS買一個(gè)固定IP,一個(gè)月動(dòng)輒幾千塊錢!注冊一個(gè)普通的域名,由DDNS服務(wù)提供商提供域名-IP查詢,一年也就幾十大洋,多也不超過幾百5. 常見的DDNS服務(wù)提供商 2. 3. 4. 5. 6. 7. 5

3、.1 服務(wù)器:認(rèn)證信息:用戶名/密碼啟動(dòng)命令:inadyn -u -p -a -dyndns_system 認(rèn)證格式(http):(見右上角抓包)認(rèn)證成功的標(biāo)志:HTTP/1.1 200 OKDate: Sat, 11 Dec 2010 02:23:52 GMTServer: ApacheContent-Type: text/plainConnection: closegood 145.2 服務(wù)器:認(rèn)證信息:用戶名/密碼啟動(dòng)命令:inadyn -u -p -a -dyndns_system 認(rèn)證格式(http):(見右上角的抓包)綁定成功的標(biāo)志:HTTP/1.1 200 OKrnServer:

4、 nginxrnDate: Fri, 10 Dec 2010 06:19:58 GMTrnContent-Type: text/plain;charset=UTF-8rnConnection: closernContent-Length: 19rngood 1rn5.3 服務(wù)器:認(rèn)證信息:密碼啟動(dòng)命令:inadyn -a -p -dyndns_system 認(rèn)證格式(http):(見右上角抓包)認(rèn)證成功的標(biāo)志:HTTP/1.1 200 OKrnConnection: closernDate: Fri, 10 Dec 2010 11:22:00 GMTrnServer: Microsoft-II

5、S/6.0rnX-Powered-By: ASP.NETrnContent-Type: text/htmlrnHost now points to 1rn5.4 服務(wù)器:ClusterL認(rèn)證信息:Email地址/密碼認(rèn)證格式(http):例如:5.5 這個(gè)就是花生殼啦(右上角是更新過程抓到的包)這個(gè)DDNS的協(xié)議相對復(fù)雜點(diǎn),并且注冊了專利的,有興趣可以參考下面這個(gè)鏈接:5.6 這個(gè)是有錢人使用的DDNS服務(wù)提供商,不說5.7 服務(wù)器:認(rèn)證信息:hash值啟動(dòng)命令:inadyn -a , -dyndns_system 認(rèn)證格式(http):(見右上角抓包) 認(rèn)證成功的標(biāo)志:(服務(wù)器反饋消息中有W

6、AN口的IP則算成功了)如何獲取hash值:1.用你的注冊的帳號(hào)登錄 2.點(diǎn)擊網(wǎng)頁左邊菜單 Dynamic DNS 3.找到你注冊的域名,點(diǎn)擊相應(yīng)域名所在行的Direct URL超鏈接4.復(fù)制地址欄中?后面的部分:?VEk5b1BVTVRTTUlBQUFSQmNJMDo0OTg1MTg26. 開源怎么實(shí)現(xiàn)DDNS(以inadyn為例)步驟1、2在tcp_initialize函數(shù)中完成步驟3在http_client_transaction函數(shù)中完成步驟4通過函數(shù)指針p_rsp_ok_func調(diào)用相應(yīng)的判斷函數(shù)完成(以上均在do_update_alias_table函數(shù)中完成)7. IP更新的過程

7、(使用開源inadyn完成3322用戶的IP更新請求)DDNS服務(wù)器:用戶名/密碼: tongweitest/12345我注冊的域名: 更新請求命令:inadyn -u tongweitest -p 12613 -a -dyndns_system 7. IP更新的過程(1)(使用開源inadyn完成3322用戶的IP更新請求)inadyn -u tongweitest -p 12613 -a -dyndns_system 根-dyndns_system指定的 在dyndns.c的全局變量dns_system_table中查找對應(yīng)的項(xiàng),最終會(huì)找到 DYNDNS_3322_DYNAMIC所在的項(xiàng)。

8、查找過程在get_dyndns_system_handler中完成7. IP更新的過程(2)(使用開源inadyn完成3322用戶的IP更新請求)找到DYNDNS_3322_DYNAMIC所在的項(xiàng)后,就可以找到HTTP格式構(gòu)造函數(shù)和綁定是否成功的判斷函數(shù):DYNDNS_3322_DYNAMIC, , &dyndns_org_dynamic, (DNS_SYSTEM_SRV_RESPONSE_OK_FUNC)is_dyndns_server_rsp_ok, (DNS_SYSTEM_REQUEST_FUNC) get_req_for_3322org_server, DYNDNS_MY_IP_SER

9、VER, DYNDNS_MY_IP_SERVER_URL, DYNDNS_3322_MY_DNS_SERVER, DYNDNS_3322_MY_DNS_SERVER_URL, NULL ,7. IP更新的過程(3)(使用開源inadyn完成3322用戶的IP更新請求)通過get_req_for_3322org_server函數(shù)來構(gòu)造請求更新所需要的HTTP格式:GET /dyndns/update?system=dyndns&hostname=&myip=1&wildcard=OFF&mx=&backmx=NO&offline=NO HTTP/1.0rnHost: rnAuthorizatio

10、n: Basic dG9uZ3dlaXRlc3Q6MTI2MTM=rnrnUser-Agent: inadyn/1.96 rn其中,Authorization所在行紅色標(biāo)注的部分為經(jīng)過base64編碼后的密碼7. IP更新的過程(4)(使用開源inadyn完成3322用戶的IP更新請求)通過is_dyndns_server_rsp_ok函數(shù)對服務(wù)反饋的結(jié)果判斷綁定操作是否成功對于3322這個(gè)提供商來說,只要反饋的結(jié)果中有文字good或nochg就表示綁定是成功的,否則就是失敗8. 添加對一個(gè)新的DDNS服務(wù)提供商的支持(以在inadyn中加dtdns為例)代碼路徑:版本:207967步驟:1.

11、增加一個(gè)dtdns的枚舉類型 2.把必要的字符串定義成宏 3.定義更新時(shí)需要的HTTP格式 4.聲明HTTP格式構(gòu)造函數(shù)及對反饋進(jìn)行處理的函數(shù) 5.定義HTTP格式構(gòu)造函數(shù) 6.定義對反饋進(jìn)行處理的函數(shù) 7.注冊新服務(wù)8.1 添加對一個(gè)新的DDNS服務(wù)提供商的支持(1)在dyndns.h中增加一個(gè)dtdns的枚舉類型:typedef enum DYNDNS_DYNAMIC, DYNDNS_STATIC, DYNDNS_CUSTOM, DYNDNS_DEFAULT, FREEDNS_AFRAID_ORG_DEFAULT, DYNAMIC_DTDNS, ZONE_EDIT_DEFAULT, CUS

12、TOM_HTTP_BASIC_AUTH, NOIP_DEFAULT, EASYDNS_DEFAULT, DYNDNS_3322_DYNAMIC, LAST_DNS_SYSTEM = -1 DYNDNS_SYSTEM_ID;8.2 添加對一個(gè)新的DDNS服務(wù)提供商的支持(2)在dyndns.h中把必要的字符串定義成宏:/dtdns define#define DTDNS_SCRIPT /api/autodns.cfm#define DTDNS_HOSTNAME %s#define DTDNS_PASSWORD %s#define DTDNS_SERVER %s#define DTDNS_SERV

13、ER_VALUE #define DTDNS_VERSION 0.1.0#define DTDNS_NAME dtdnsupdate8.3 添加對一個(gè)新的DDNS服務(wù)提供商的支持(3)在dyndns.h中定義dtdns更新時(shí)需要的HTTP格式:/* specific update request format */ #define DTDNS_UPDATE_MY_IP_REQUEST_FORMAT GET DTDNS_SCRIPT ? id= DTDNS_HOSTNAME &pw= DTDNS_PASSWORD &client= DTDNS_NAME HTTP/1.1nHost: DTDNS_

14、SERVER nUser-Agent: DYNDNS_AGENT_NAME DYNDNS_EMAIL_ADDR nn8.4 添加對一個(gè)新的DDNS服務(wù)提供商的支持(4)在dyndns.c中聲明dtdns更新時(shí)需要的HTTP格式的構(gòu)造函數(shù)及對服務(wù)器反饋進(jìn)行處理的函數(shù):HTTP格式構(gòu)造static int get_req_for_dtdns_server(DYN_DNS_CLIENT *p_self, int cnt, DYNDNS_SYSTEM *p_sys_info);對反饋進(jìn)行處理的函數(shù):static BOOL is_dtdns_server_rsp_ok( DYN_DNS_CLIENT *

15、p_self, char*p_rsp, char* p_ok_string);8.5 添加對一個(gè)新的DDNS服務(wù)提供商的支持(5)定義HTTP格式構(gòu)造函數(shù):static int get_req_for_dtdns_server(DYN_DNS_CLIENT *p_self, int cnt, DYNDNS_SYSTEM *p_sys_info) (void)p_sys_info; return sprintf(p_self-p_req_buffer, DTDNS_UPDATE_MY_IP_REQUEST_FORMAT, p_self-alias_, p_self-info.c

16、redentials.my_password, p_self-info.p_dns_system-p_key); 8.6 添加對一個(gè)新的DDNS服務(wù)提供商的支持(6)定義對反饋進(jìn)行處理的函數(shù):/* parses a given string. If found is ok,Example : now points to*/static BOOL is_dtdns_server_rsp_ok( DYN_DNS_CLIENT *p_self, char*p_rsp, char* p_ok_string)if (p_ok_string = NULL)return FALSE; return (str

17、str(p_rsp, p_ok_string) != NULL);8.7 添加對一個(gè)新的DDNS服務(wù)提供商的支持(7)把新的服務(wù)提供商添加到服務(wù)列表當(dāng)中,即在dyndns.c中的dns_system_table中添加一項(xiàng): DYNAMIC_DTDNS, DTDNS_SERVER_VALUE, NULL, (DNS_SYSTEM_SRV_RESPONSE_OK_FUNC)is_dtdns_server_rsp_ok, (DNS_SYSTEM_REQUEST_FUNC) get_req_for_dtdns_server, DTDNS_SERVER_VALUE, DYNDNS_MY_IP_SERVER_URL, DTDNS_SERVER_VALUE, /api/autodns.cfm?, now points to“ ,9. TBS對DDNS所做的適配工作本質(zhì)上只做一件事:WAN接口IP改變了,就通知DDNS服務(wù)器綁定新的IP1.這就需要關(guān)注WAN接口的連接消息(MSG_WAN_CONN_EST)。 如果使用的開

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論