您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 软件部DDNS培训文档
培训文档软件部更新日期:2010.12.09oujunhe、什么是DDNS?为什么需要DDNS?2、开源中对DDNS的实现3、如何添加对一个新的DDNS服务提供商的支持4、TBS中如何对DDNS进行适配研发人员1小时1.了解DDNS2.可以DDNS方面的BUG培训目的培训对象培训讲师学习重点培训课时、DNS概念及作用概念:DNS是DomainNameSystem的缩写,中文意思:域名系统作用:根据域名得到域名所绑定的IP(这里所绑定的IP都是被买断的):数据包在Internet中穿梭,最终使用的是IP,而不是域名的概念及作用概念:DynamicDNS,即动态DNS作用:跟DNS一样(但是DDNS服务器中域名所绑定的IP是会变化的)的区别{}{tw-test.dyndns.org,183.37.77.154}百度买下了这个IP:220.181.6.18,你任何时候访问220.181.2.18都是访问百度。适合企业或需要固定IP的用户使用,相对DDNS来说,花的钱要多的多183.38.77.154只是很偶然的跟tw-test.dyndns.org绑在一起,下一次就是另一个IP了,也就是说所绑定的IP是会变的,这也是为什么叫动态DNS的原因。DNS:DDNS:,一个月动辄几千块钱!注册一个普通的域名,由DDNS服务提供商提供{域名-IP}查询,一年也就几十大洋,多也不超过几百深圳市共进电子有限公司5.1服务器:members.dyndns.org认证信息:用户名/密码启动命令:inadyn-u用户名-p密码-a域名--dyndns_systemdyndns@dyndns.org认证格式(http):(见右上角抓包)认证成功的标志:HTTP/1.1200OKDate:Sat,11Dec201002:23:52GMTServer:ApacheContent-Type:text/plainConnection:closegood183.37.89.114服务器:members.3322.org认证信息:用户名/密码启动命令:inadyn-u用户名-p密码-a域名--dyndns_systemdyndns@3322.org认证格式(http):(见右上角的抓包)绑定成功的标志:HTTP/1.1200OK\r\nServer:nginx\r\nDate:Fri,10Dec201006:19:58GMT\r\nContent-Type:text/plain;charset=UTF-8\r\nConnection:close\r\nContent-Length:19\r\ngood183.37.91.31\r\n服务器:认证信息:密码启动命令:inadyn-a域名-p密码--dyndns_system认证格式(http):(见右上角抓包)认证成功的标志:HTTP/1.1200OK\r\nConnection:close\r\nDate:Fri,10Dec201011:22:00GMT\r\nServer:Microsoft-IIS/6.0\r\nX-Powered-By:ASP.NET\r\nContent-Type:text/html\r\nHosttw-test.suroot.comnowpointsto183.37.91.31\r\n服务器:ClusterLookup1.tzo.com认证信息:Email地址/密码认证格式(http):例如:这个就是花生壳啦(右上角是更新过程抓到的包)这个DDNS的协议相对复杂点,并且注册了专利的,有兴趣可以参考下面这个链接:=%E6%96%87%E6%A1%A3:%E8%8A%B1%E7%94%9F%E5%A3%B3:ddns%E5%8D%8F%E8%AE%AE%E8%AF%B4%E6%98%8E服务提供商,不说服务器:freedns.afraid.org认证信息:hash值启动命令:inadyn-a域名,hash值--dyndns_systemdefault@freedns.afraid.org认证格式(http):(见右上角抓包)认证成功的标志:(服务器反馈消息中有WAN口的IP则算成功了)如何获取hash值:1.用你的注册的帐号登录freedns.afraid.org2.点击网页左边菜单[DynamicDNS]3.找到你注册的域名,点击相应域名所在行的DirectURL超链接4.复制地址栏中?后面的部分:://(以inadyn为例)步骤1、2在tcp_initialize函数中完成步骤3在http_client_transaction函数中完成步骤4通过函数指针p_rsp_ok_func调用相应的判断函数完成(以上均在do_update_alias_table函数中完成)更新的过程(使用开源inadyn完成3322用户的IP更新请求)DDNS服务器:members.3322.org用户名/密码:tongweitest/12345我注册的域名:tw-test.3322.org更新请求命令:inadyn-utongweitest-p12613-atw-test.3322.org--dyndns_systemdyndns@3322.org更新的过程(1)(使用开源inadyn完成3322用户的IP更新请求)inadyn-utongweitest-p12613-atw-test.3322.org--dyndns_systemdyndns@3322.org根--dyndns_system指定的dyndns@3322.org在dyndns.c的全局变量dns_system_table中查找对应的项,最终会找到DYNDNS_3322_DYNAMIC所在的项。查找过程在get_dyndns_system_handler中完成更新的过程(2)(使用开源inadyn完成3322用户的IP更新请求)找到DYNDNS_3322_DYNAMIC所在的项后,就可以找到HTTP格式构造函数和绑定是否成功的判断函数:{DYNDNS_3322_DYNAMIC,{dyndns@3322.org,&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_SERVER,DYNDNS_MY_IP_SERVER_URL,DYNDNS_3322_MY_DNS_SERVER,DYNDNS_3322_MY_DNS_SERVER_URL,NULL}},更新的过程(3)(使用开源inadyn完成3322用户的IP更新请求)通过get_req_for_3322org_server函数来构造请求更新所需要的HTTP格式:GET/dyndns/update?system=dyndns&hostname=tw-test.3322.org&myip=183.37.91.31&wildcard=OFF&mx=tw-test.3322.org&backmx=NO&offline=NOHTTP/1.0\r\nHost:members.3322.org\r\nAuthorization:BasicdG9uZ3dlaXRlc3Q6MTI2MTM=\r\n\r\nUser-Agent:inadyn/1.96inarcis2002@hotpop.com\r\n其中,Authorization所在行红色标注的部分为经过base64编码后的密码更新的过程(4)(使用开源inadyn完成3322用户的IP更新请求)通过is_dyndns_server_rsp_ok函数对服务反馈的结果判断绑定操作是否成功对于3322这个提供商来说,只要反馈的结果中有文字good或nochg就表示绑定是成功的,否则就是失败服务提供商的支持(以在inadyn中加dtdns为例)代码路径:版本:207967步骤:1.增加一个dtdns的枚举类型2.把必要的字符串定义成宏3.定义更新时需要的HTTP格式4.声明HTTP格式构造函数及对反馈进行处理的函数5.定义HTTP格式构造函数6.定义对反馈进行处理的函数7.注册新服务服务提供商的支持(1)在dyndns.h中增加一个dtdns的枚举类型:typedefenum{DYNDNS_DYNAMIC,DYNDNS_STATIC,DYNDNS_CUSTOM,DYNDNS_DEFAULT,FREEDNS_AFRAID_ORG_DEFAULT,DYNAMIC_DTDNS,ZONE_EDIT_DEFAULT,CUSTOM_HTTP_BASIC_AUTH,NOIP_DEFAULT,EASYDNS_DEFAULT,DYNDNS_3322_DYNAMIC,LAST_DNS_SYSTEM=-1}DYND
本文标题:软件部DDNS培训文档
链接地址:https://www.777doc.com/doc-988445 .html