DNS & CDN & HTTPDNS 原理簡析

DNS & CDN & HTTPDNS 原理簡析

背景:

域名系統(tǒng) DNS (Domain Name System ): 作為域名和 IP 地址相互映射的一個分布式數(shù)據(jù)庫,通過 DNS 可以將域名迅速解析為對應(yīng)的 IP 地址酵熙,從而方便我們訪問 Internet 上的任意一臺主機(或網(wǎng)站)轧简。

CDN(Content Delivery Network): 其基本思路是盡可能避開互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸速度和穩(wěn)定性的瓶頸和環(huán)節(jié),使內(nèi)容傳輸?shù)母熵叶⒏€(wěn)定哮独。

HTTPDNS: 使用 HTTP 請求來模擬 DNS 請求

0x00 DNS 原理

DNS 服務(wù)器類型:

  • 內(nèi)部 DNS :位于內(nèi)網(wǎng)中,提供內(nèi)網(wǎng) DNS 服務(wù)察藐,也具備 Internet DNS 緩存與轉(zhuǎn)發(fā)能力
  • 外部 DNS:位于 Internet 中皮璧,提供 Internet 的 DNS 服務(wù)(包括 DNS 緩存與轉(zhuǎn)發(fā))
  • 主 DNS:提供 DNS 服務(wù)(包括查詢,緩存寫入)
  • 輔 DNS:只提供 DNS 查詢服務(wù)分飞,與主 DNS 同步數(shù)據(jù)庫
  • 唯緩存 DNS:自身不具備 DNS 解析能力悴务,但具有 DNS 緩存數(shù)據(jù)庫
  • 轉(zhuǎn)發(fā) DNS:具備轉(zhuǎn)發(fā)特性,能將 DNS 請求轉(zhuǎn)發(fā)給其他 DNS 服務(wù)器
  • 權(quán)威 DNS: 自身數(shù)據(jù)庫中存在與 DNS 請求相對應(yīng)的映射
  • 非權(quán)威 DNS:不存在相對應(yīng)的映射譬猫,而存在對應(yīng)緩存查詢結(jié)果

本地 DNS: 即在主機的 DNS 設(shè)置值

域名組成: [ 主機名 ].[ 二級域名 ].[ 頂級域名 ]讯檐,因此可以根據(jù)域名來在 樹形結(jié)構(gòu) 中找到一條從根到葉的路徑,葉節(jié)點即是權(quán)威 DNS

樹型DNS結(jié)構(gòu).PNG

DNS 服務(wù)器的功能:

  • 權(quán)威 DNS染服,自身具備解析能力
  • 轉(zhuǎn)發(fā) DNS
  • 緩存 DNS

在由路由器組成的局域網(wǎng)中别洪,本地 DNS 設(shè)置為自動獲取(路由器)柳刮,路由器 DNS 設(shè)置為(ISP 提供的 DNS)挖垛,主機通過瀏覽器訪問 http://www.reibang.com 時 DNS 請求-響應(yīng)情況:

dns-process.png

上圖的文字描述如下:

  1. 192.168.110.252 在瀏覽器訪問 http://www.reibang.com
  2. 192.168.110.252 檢查本地 hosts 文件中是否存在 www.reibang.com 對應(yīng)的 IP
  3. 若無,192.168.110.252 繼續(xù)檢查本地 DNS 緩存中是否存在 www.reibang.com 對應(yīng)的 IP
  4. 若無秉颗, 192.168.110.252 向本地 DNS 服務(wù)器發(fā)起 DNS 查詢請求
  5. 路由器接收到 DNS 查詢請求后痢毒,檢查路由器 DNS 緩存
  6. 若無,路由器以外網(wǎng)地址 202.202.202.202 向本地 DSN 服務(wù)器 (ISP DNS)發(fā)起 DNS 查詢請求
  7. ISP DNS 接收到 DNS 查詢請求后蚕甥,發(fā)現(xiàn)自己不是權(quán)威 DNS 哪替,且無對應(yīng)的緩存數(shù)據(jù),于是將請求轉(zhuǎn)發(fā)給 其他 DNS 服務(wù)器 :happy:
  8. 其他 DNS 服務(wù)器 接收到請求后菇怀,一樣發(fā)現(xiàn)自己不是權(quán)威 DNS夷家,且無對應(yīng)的緩存數(shù)據(jù),于是開始進行 DNS 迭代查詢:將請求發(fā)送給 根域名服務(wù)器
  9. 根域名服務(wù)器 接收到請求后敏释,將 頂級域名服務(wù)器 (.com) IP 發(fā)送給 其他 DNS 服務(wù)器
  10. 其他 DNS 服務(wù)器 根據(jù) IP 將 DNS 查詢請求發(fā)送給 頂級域名服務(wù)器
  11. 頂級域名服務(wù)器 接收到請求后,將 二級域名服務(wù)器 (jianshu.com) IP 發(fā)送給 其他 DNS 服務(wù)器
  12. 其他域名服務(wù)器 根據(jù) IP 將 DNS 查詢請求發(fā)送給 二級域名服務(wù)器
  13. 二級域名服務(wù)器 接收到請求后摸袁,發(fā)現(xiàn)自己是權(quán)威 DNS 服務(wù)器钥顽,于是將 www.reibang.com 映射的 IP 120.132.92.21 發(fā)送給 其他域名服務(wù)器
  14. 其他域名服務(wù)器 接收到解析結(jié)果后,將 120.132.92.21 逐層返回傳遞下去靠汁,最終直至 192.168.110.252
  15. 192.168.110.252 接收到 www.reibang.com 解析結(jié)果 120.132.92.21 蜂大,根據(jù) IP 與 www.reibang.com 建立 TCP 連接闽铐,然后發(fā)起 HTTP 請求主頁內(nèi)容

0x01 DNS 協(xié)議結(jié)構(gòu)

具體詳見:結(jié)合Wireshark分析DNS 協(xié)議

wireshark-dns.PNG
wireshark-cname.PNG

根據(jù)上面的 wireshark 分析結(jié)果可以看出:DNS 服務(wù)器返回的不一定是 IP ,在 DNS 請求中域名為別名時奶浦,則 DNS 服務(wù)器會返回其 A 記錄兄墅;

如上圖中 cdn-qn0.jianshu.io 域名解析返回的是 CNAME 類型結(jié)果 cname iduvrz0.qiniudns.com ,這表明 cdn-qn0.jianshu.io 是別名澳叉,其 cname 指向(A 記錄)是 iduvrz0.qiniudns.com

因為 A 記錄與 IP 映射隙咸,于是主機又向 DNS 服務(wù)器 發(fā)起 iduvrz0.qiniudns.com DNS 請求

0x02 DNS 循環(huán)與 CDN

DNS循環(huán): 當權(quán)威 DNS 發(fā)現(xiàn)一個域名映射多個 IP 時,會使用 IP 輪詢的方式來將 IP 平均分配給多個 DNS 請求成洗,從而達到負載均衡的效果

CDN: 由于 DNS 循環(huán)時平均分配五督,不能根據(jù)不同服務(wù)器的負載情況優(yōu)化分配,甚至如果有一臺服務(wù)器宕機了瓶殃,DNS 不能及時了解到該情況把該服務(wù)器的 IP 分配出去充包,便會造成無法訪問;因此遥椿,在權(quán)威 DNS 和 服務(wù)器之間加上一個 CDN 層就顯得很必要了基矮;CDN 在具備調(diào)度分配服務(wù)器能力的基礎(chǔ)上,能夠同步服務(wù)器運行情況冠场,然后根據(jù)該情況及時適當調(diào)整調(diào)度策略家浇,從而使得負載均衡能力大大提高;

CDN功能:

  • 調(diào)度分配主機慈鸠;負載均衡蓝谨,根據(jù) IP,網(wǎng)絡(luò)流量情況分配最靠近青团,網(wǎng)絡(luò)最通暢的 CDN 節(jié)點實現(xiàn)加速
  • 反向代理
  • 靜態(tài)緩存譬巫;緩存靜態(tài)資源(html,圖片督笆,音樂芦昔,視頻等)
  • 防止 DDOS 攻擊

CDN原理圖:

cdn.PNG

通過在權(quán)威 DNS 服務(wù)器中配置 images.jianshu.com 的 cname 指向(A 記錄)為 abc.qiniudns.com

在 CDN DNS 中將 abc.qiniudns.com110.110.110.110, 220.220.220.220, 330.330.330.330 三個 IP 映射

就可以實現(xiàn)通過 CDN 給域名images.jianshu.com 加速

更多 CDN 知識參見: CDN 知識

0x03 HTTPDNS

為了防止傳統(tǒng) DNS 解析過程中出現(xiàn)的 DNS 劫持,DNS 緩存版本過舊娃肿,因 DNS 服務(wù)器轉(zhuǎn)發(fā)功能而造成的無法精準定位用戶位置的情況咕缎,于是通過使用 HTTPDNS 為主,傳統(tǒng)DNS為輔 的機制來實現(xiàn)快速料扰,實時凭豪,精準的 DNS 解析,從而提供給用戶快速晒杈,安全穩(wěn)定嫂伞,最新的網(wǎng)站訪問體驗

一篇很好的文章來解釋 HTTPDNS : HttpDNS 服務(wù)詳解

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子帖努,更是在濱河造成了極大的恐慌撰豺,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拼余,死亡現(xiàn)場離奇詭異污桦,居然都是意外死亡,警方通過查閱死者的電腦和手機匙监,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門凡橱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人舅柜,你說我怎么就攤上這事梭纹。” “怎么了致份?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵变抽,是天一觀的道長。 經(jīng)常有香客問我氮块,道長绍载,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任滔蝉,我火速辦了婚禮击儡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蝠引。我一直安慰自己阳谍,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布螃概。 她就那樣靜靜地躺著矫夯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吊洼。 梳的紋絲不亂的頭發(fā)上训貌,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音冒窍,去河邊找鬼递沪。 笑死,一個胖子當著我的面吹牛综液,可吹牛的內(nèi)容都是我干的款慨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼谬莹,長吁一口氣:“原來是場噩夢啊……” “哼檩奠!你這毒婦竟也來了约素?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤笆凌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后士葫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乞而,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年慢显,在試婚紗的時候發(fā)現(xiàn)自己被綠了爪模。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡荚藻,死狀恐怖屋灌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情应狱,我是刑警寧澤共郭,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站疾呻,受9級特大地震影響除嘹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜岸蜗,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一尉咕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧璃岳,春花似錦年缎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至枚冗,卻和暖如春缓溅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赁温。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工坛怪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人股囊。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓袜匿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親稚疹。 傳聞我的和親對象是個殘疾皇子居灯,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容