DDNS技术总结
一、DDNS簡介
1. 1.全稱
Dynamic Domain Name Server,動態域名服務
1.2 作用
將動態變化的ip和固定的域名進行綁定,即使ip發生變化,通過域名依然能夠訪問到對應設備。
二、DDNS原理
DDNS組網環境如下,采用Client-server的模式(圖片來源于百度網絡,侵刪)。
2.1 DDNS客戶端
DDNS客戶端是需要動態更新域名和IP地址對應關系的設備。Internet用戶通常通過域名訪問提供應用層服務的服務器,如HTTP、FTP服務器。為了保證IP地址變化時,仍然可以通過域名訪問這些服務器,當服務器的IP地址發生變化時,它們將作為DDNS客戶端,向DDNS服務器發送更新域名和IP地址對應關系的DDNS更新請求。
2.2 DDNS服務器
DDNS服務器負責通知DNS服務器動態更新域名和IP地址之間的對應關系。接收到DDNS客戶端的更新請求后,DDNS服務器通知DNS服務器重新建立域名和IP地址之間的對應關系。從而保證即使DDNS客戶端所指定的設備的IP地址改變,Internet用戶仍然可以通過同樣的域名訪問相關設備。
2.3 報文交互方式
DDNS客戶端向 DDNS服務器發送TCP連接請求,如果連接建立成功,則向DDNS服務器發送 DDNS更新請求,并統計發送 DDNS 更新請求報文的次數;
DDNS服務器收到DDNS 客戶端發送過來的DDNS更新請求后,通知DNS服務器進行域名更新,并且向 DDNS客戶端發送應答報文。
2.4 更新和獲取綁定信息
路由器的DDNS服務依靠腳本dynamic_dns_updater.sh定期更新上報ip綁定信息。
主要分為下面三步:
1.獲取ip地址: get_local_ip LOCAL_IP
2.判斷ip是否發生了變化: [ "$LOCAL_IP" != "$REGISTERED_IP" ]
2.更新ip地址: send_update "$LOCAL_IP"
3.sleep等待: sleep $CHECK_SECONDS &
三、 API接口分析
原生openwrt中
在原生openwrt上,所有服務提供商的對應DDNS服務API保存在/usr/share/ddns/default中,用戶自定義配置的存放在/usr/share/ddns/custom文件夾下。
具體內容如下:
花生殼的oray.com.json
參數解釋:
[USERNAME]:服務提供商注冊的用戶名
[PASSWORD] :服務提供商注冊的密碼
[DOMAIN]:需要要更新的域名
[IP]:要更新的域名對應的新ip地址
在配置完并啟動DDns服務后,路由器通過dynamic_dns_updater.sh提供的守護進程,動態更新和獲取域名的綁定信息(ip),具體實現邏輯見源碼。
:THE END
總結
- 上一篇: icp备案号怎么申请?icp备案号哪里查
- 下一篇: VScode配置C语言编译环境