最近因為發布了 24h.name 的 DDNS 服務,有幾位大大詢問是用哪一套源碼架設的,也有部分的大大拿來跟短網址做比較。以下就針對這兩種服務的差異與技術門檻做個說明。
首先介紹大家比較熟悉的轉址服務。轉址服務依據網址的型態分成兩大類、三種。
第一類的轉址有些人稱為次網域轉址,網址的型態類似 yourname.example.tw 這樣。至其實稱不上次網域,只能稱為萬用字元的轉址。在三類中,這一類的技術門檻最高,不過也高不到哪裡,就是要增加一筆 *.example.tw 的 CName 紀錄,同時 Web Server 要能夠支援萬用字元。
第二類就是所謂虛擬目錄轉址,網址型態類似 example.tw/yourname,其實這個也不能稱為虛擬目錄,如果把它改寫成 example.tw/defalut.asp?ID=yourname,應該就比較容易懂了。當伺服器收到這一個連結,就知道 ID = yourname,系統就去查詢 yourname 這個 ID 要導向的網址是什麼,然後就回應一個轉址的標頭給瀏覽器,瀏覽期就會重新轉向到目標的網址。
第二類還有一種變形,就是 ID 不讓您設定,因此就沒有搜尋和管理的工作要做,每個人申請時,就自動產生一個 ID 給你。tinyurl 就是採用這種方式。三種服務裡面,這種的門檻和管理成本最低,這種方式賣的是一種創意。
建置轉址服務需要的就是一個網域,一個網站就完成了。使用者先瀏覽到轉址機,轉址機依據網址的 ID,回覆目標網站的網址,就那麼簡單。
接下來介紹 DDNS 服務,DDNS(Dynamic DNS)是網域名稱解析系統(DNS)中一種自動更新DNS Server 內容的技術。
我們若在某一個網域名稱下新增一筆主機紀錄(A 或是 AAAA),根據網際網路的DNS 的規則,這個紀錄必須指向一個IP位址,其中 A 紀錄必須指向 IPv4 的位址,AAAA 必須指
向 IPv6 的位址。當用戶瀏覽網域所有人所提供的網址時,就可以透過網域名稱解析(DNS),取得網址所對應的 IP 位址。正常來說,這個 IP 必須是固定的,就像手機的通訊錄一樣,如果通訊錄裡面所對應的電話是不固定的,那維護這個通訊錄就沒有什麼價值了。因此,對於使用動態 IP 的人來說,標準的 DNS 系統對他們來說也就沒有什麼價值了,因此便有了 DDNS 系統的需求。
就技術層面來說,DDNS服務是指建立一個可以讓用戶使用傳統的 DNS查詢方式查詢網址,但是又能夠自動更新DNS記錄的名稱伺服器。也就是當 DNS 所對應的 IP 變更了,
DNS Server 能夠獲得通知,並自動更新,不需要手動編輯。(相關的規範可以參考RFC 2136)。
就使用者來說, DDNS允許使用者將網址指向一個可能經常改變的IP位址;再讓經常改變IP位址的裝置,能夠將最新的 IP 位址持續性的更新到 DNS Server。這樣就可以透過一個熟知的網址,連接到一個可能經常動態改變IP位址的機器。
建置 DDNS 系統最核心的問題就是一個【快】,快速更新,快速解析。
以小弟公司目前建置的 DDNS 系統,針對快這一部分,我們做了非常多的設計:
1. 每一筆紀錄的 TTL 最低可以設到 20 秒。
2. 主機接收到用戶端的更新之後,使用自行改良的 DNS 更新技術,可以立即推播到全球 48 台 DNS Server。
3. 採用全球分區配置方式,幾乎每一地區都有近距離的 DNS Server。
【總結】
- 實用/普及性:
- 短網址實用/普及性遠超過 DDNS,屬於【民生用品】 。只要是個網址都可以成為轉址目標
- DDNS對應的是一個 IP,如果沒有架站或是管理網路設備,可能就用不到了。
- 建置成本:
- 短網址需要的建置成本較低,實作較簡單。
- DDNS 建置成本較高,技術門檻較高。
- 使用技術:
- 短網址使用的技術包括網頁程式、資料庫查詢。
- DDNS使用的技術包括網頁程式、資料庫查詢、DNS Server架設、DNS 資料推播等技術。
- 頻寬/流量:
- 理論上短網址耗費的頻寬較多,因為訪客必須先連線到轉址機,在轉址到目標主機。
- DDNS主機,除了管理設定外,會用到的流量就是 IP 更新才會用到,IP 更新的頻率並不是那麼高。至於 DNS Server 的流量,每一百萬次查詢只需 200MB 的流量,相對網站來說,非常小。
- 訪客瀏覽一個網站,只需要查詢一次 DNS取得對應的 IP,接下來的網頁互動,就和 DNS Server 無關了。