所在位置:
首頁 >
營銷資訊 >
建站知識 > 實(shí)現(xiàn)簡單的httpDNS的一種思路
實(shí)現(xiàn)簡單的httpDNS的一種思路
時(shí)間:2023-02-19 14:24:01 | 來源:建站知識
時(shí)間:2023-02-19 14:24:01 來源:建站知識
實(shí)現(xiàn)簡單的httpDNS的一種思路:
文章首發(fā)公眾號「CoderMrWu」,歡迎關(guān)注!
互聯(lián)網(wǎng)公司,基本都有針對
DNS[1]域名解析的優(yōu)化處理。有些公司甚至?xí)?gòu)建自己的智能 DNS 解析系統(tǒng),來解決 LocalDNS 存在的
一系列問題[2],如域名劫持、調(diào)用精度和實(shí)時(shí)性等。
現(xiàn)如今,HttpDNS 已經(jīng)成為一種比較常用優(yōu)化方案之一。HttpDNS 是基于 http 協(xié)議具有 DNS 域名解析能力的一種服務(wù),現(xiàn)在各大云廠商都已經(jīng)構(gòu)建了自己的 HttpDNS 服務(wù)。如
阿里云 HttpDNS[3]、
騰訊云 HttpDNS[4]等。
HttpDNS 原理分析
HttpDNS 的原理非常簡單:
- 客戶端訪問 HttpDNS 解析接口,HttpDNS 根據(jù)客戶端 IP,從業(yè)務(wù)提前在域名配置管理系統(tǒng)中配置好的 IP 中根據(jù)一定的策略選擇最優(yōu) IP 返回。若沒有,則返回原域名,走運(yùn)營商 LocalDNS 解析域名的方式;
- 客戶端再向獲取到的 IP 發(fā)送業(yè)務(wù)協(xié)議請求即可。以 Http 請求為例,通過在 header 中指定 host 字段,向該 IP 發(fā)送標(biāo)準(zhǔn)的 Http 請求即可。
HttpDNS 將域名解析過程顯式的體現(xiàn)了出來。繞過 LocalDNS 的域名遞歸解析過程,這樣就直接避免了 LocalDNS 的一系列問題。
通過 HttpDNS 原理,可以看出 HttpDNS 需要高度的可用,很容易成為整個(gè)系統(tǒng)的瓶頸。除此之外,還需要一個(gè)高效的域名解析配置管理系統(tǒng)來做域名解析和選優(yōu)策略的管理。
HttpDNS 的一種簡單實(shí)現(xiàn)思路
下面我們來探討另一種簡單的實(shí)現(xiàn)方式,利用自己可控的 DNS 系統(tǒng)和 dig 命令來實(shí)現(xiàn)簡單 HttpsDNS 服務(wù)。
思路如下:
- 1、將域名和 ip 的配置在公司自建 DNS 或第三方的 DNS 系統(tǒng)配置好,可實(shí)現(xiàn)地區(qū)或運(yùn)營商的動(dòng)態(tài)調(diào)用。
- 2、開發(fā) http api 服務(wù),用來提供域名查詢服務(wù)接口。
- 3、在 http api 服務(wù)接口業(yè)務(wù)邏輯中,拿到客戶端的 IP,通過如下命令查詢域名的解析 IP,返回該 IP 即可。
dig @ns服務(wù)器 www.baidu.com +subnet=客戶端ip
該方式利用了 DNS 系統(tǒng)的動(dòng)態(tài)調(diào)度功能和域名 IP 的管理功能,結(jié)合 Http api 服務(wù)提供 Http 協(xié)議的 DNS 解析能力。繞過了 LocalDNS 的遞歸查詢,解決了 DNS 劫持問題和精度問題。
該方式,只是一個(gè)簡單的思路探索,其中還有很多細(xì)節(jié)的問題需要深究。DNS 解析是業(yè)務(wù)系統(tǒng)的一個(gè)強(qiáng)依賴服務(wù),可用性和穩(wěn)定性不容忽視。
好了,今天的分享就到這里,歡迎留言探討!
我是 DeanWu,一個(gè)努力成為真正 SRE 的人。
參考資料
[1] DNS:
https://zh.wikipedia.org/wiki/%E5%9F%9F%E5%90%8D%E7%B3%BB%E7%BB%9F[2] 一系列問題:
http://www.52im.net/thread-2121-1-1.html[3] 阿里云HttpDNS:
https://help.aliyun.com/product/30100.html[4] 騰訊云HttpDNS:
https://cloud.tencent.com/product/hd
關(guān)鍵詞:思路,簡單,實(shí)現(xiàn)