1、自建DNS服務現狀一般來說,無論是bind9、coredns、dnsmasq、pdns哪類dns" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 建站知識 > CoreDNS篇10-分流與重定向

CoreDNS篇10-分流與重定向

時間:2023-02-09 09:06:01 | 來源:建站知識

時間:2023-02-09 09:06:01 來源:建站知識

本文主要介紹了目前CoreDNS服務在外部域名遞歸結果過程中出現的一些問題以及使用dnsredir插件進行分流和alternate插件進行重試優(yōu)化的操作。

1、自建DNS服務現狀

一般來說,無論是bind9、coredns、dnsmasq、pdns哪類dns服務器,我們自建的監(jiān)聽在UDP53端口上的DNS服務在DNS解析功能方面承擔著兩個角色:分別為權威域名服務器和遞歸域名服務器。

2、DNS解析邏輯

針對我們自建的權威域名服務器,解析的結果非常的確定,當服務器中存在這條記錄就能正常解析,否則就是異常。但是對于遞歸域名服務器的工作流程來說,有些特殊的域名解析就會出現問題。

我們以下圖為例介紹在遞歸解析過程中可能會出現的問題:







  1. 本地DNS服務器和權威域名服務器之間的連接容易出現問題,權威域名服務器一般是各個域名使用者自己維護或者是使用一些DNS服務商提供的服務器,這些服務器出現無法連接或者是崩潰的概率要遠大于前面的根域名服務器和頂級域名服務器
  2. 權威域名服務器返回的結果不一定能夠正確的傳送到本地DNS服務器中,大部分情況下DNS查詢并不是加密的,使用明文的UDP進行查詢,是比較容易被中間的運營商進行劫持,這里也是DNS污染常見的操作范圍;
還有一種常見的DNS污染手段就是市面上的免費公共DNS服務器提供者針對某個特殊域名的解析進行修改,使得用戶在使用這些免費的公共DNS解析時沒辦法解析到正常的IP從而導致該域名提供的服務異常

總結上面的流程分析,我們自建DNS服務在進行外部域名遞歸解析的時候就可能會遇到下面的幾類域名:

3、CoreDNS解析邏輯

得益于CoreDNS豐富多樣的插件,我們可以使用插件來對DNS的解析流程進行優(yōu)化,分流不同的域名到不同的服務器,同時還可以針對不同的返回碼進行重試。下面介紹一個對CoreDNS進行優(yōu)化,加入了DNS解析分流功能和DNS解析失敗重試功能來補充各種使用場景的架構。




3.1 插件分析

首先是使用hosts插件,這個插件相當于在CoreDNS上面實現了我們修改服務器/etc/hosts文件的效果,可以用于對一些域名進行簡單的劫持,例如一些域名想要拉黑,可以在里面配置解析為127.0.0.1(家庭網絡屏蔽廣告域名的常用手段);又或者是有部分域名同時有內外網多個入口的,在機房內網DNS解析直接劫持為內網IP,節(jié)省外網流量等。需要注意的是hosts插件僅支持A記錄的修改,一些復雜的場景如CNAME記錄、MX記錄、TXT記錄等則無能為力了。

接下來就是重頭戲dnsredir插件alternate插件了。其中dnsredir插件是github上面開源的一個第三方插件,alternate插件則是CoreDNS官網上的External Plugins,由CoreDNS維護;兩者可靠性相對較高,有需求的同學也可以對其二次開發(fā),關于CoreDNS編譯外部插件的教程可以查看之前的文章。

官方對alternate插件的介紹是一個基于DNS查詢返回碼RCODE來把DNS查詢請求重定向的插件。舉個例子,當我們向CoreDNS查詢域名解析tinychen.com的時候,CoreDNS將查詢轉發(fā)給114.114.114.114,然后得到了NXDOMAIN的返回碼,這時候一般就說明tinychen.com這個域名在114DNS是沒有解析結果的,但是我們不死心,使用alternate插件把RCODE是NXDOMAIN的查詢再次轉發(fā)給8.8.8.8,這時候說不定就能得到域名的解析結果。

alternate - allow redirecting queries to an alternate set of upstreams based on RCODE
還是繼續(xù)上面的場景,假設我們已經知道tinychen.com這個域名在114DNS是沒辦法查詢到正常結果,而在8.8.8.8DNS能正常解析,我們能否直接去8.8.8.8查詢呢?

答案是肯定的。這時候就要用到我們的dnsredir插件了。它可以根據我們提供的域名列表,將不同的域名轉發(fā)到不同的DNS服務器進行查詢,從而達到DNS查詢解析優(yōu)化的效果,尤其是對應大部分海外域名解析,有條件的同學可以嘗試將其轉發(fā)到海外DNS節(jié)點解析,解析效果應該會有明顯的提升。

3.2 解析邏輯分析

alternate插件和dnsredir插件分別從響應碼RCODE和域名兩個維度對DNS解析進行分流/重定向,再結合CoreDNS本身配置的靈活性,可以有數種組合,這里只是提供一個示范案例作為參考。







注意上圖的插件每個的順序都是可以調整并且不斷遞歸查詢,因此理論上可以進行無限的橫向和縱向擴展用于滿足日后的增長需求。
得益于CoreDNS自身的靈活性,上述的全部插件邏輯可以隨意進行組合分配遞歸調整用于適配不同的業(yè)務邏輯。

3.3 Q&A

  1. 用于給dnsredir組件分流的域名列表格式?
    dnsredir組件使用的分流域名格式列表和dnsmasq的格式一致,格式參考如下:
    server=/http://a1.mzstatic.com/114.114.114.114
    server=/http://a2.mzstatic.com/114.114.114.114
    server=/http://a3.mzstatic.com/114.114.114.114
    server=/http://a4.mzstatic.com/114.114.114.114
    server=/http://a5.mzstatic.com/114.114.114.114
    server=/http://adcdownload.apple.com.akadns.net/114.114.114.114
    server=/http://adcdownload.apple.com/114.114.114.114
    server=/http://appldnld.apple.com/114.114.114.114
    server=/http://appldnld.g.aaplimg.com/114.114.114.114
    server=/http://appleid.cdn-apple.com/114.114.114.114
    server=/http://apps.apple.com/114.114.114.114
    server=/http://apps.mzstatic.com/114.114.114.114
    server=/http://cdn-cn1.apple-mapkit.com/114.114.114.114
    server=/http://cdn-cn2.apple-mapkit.com/114.114.114.114
    server=/http://cdn-cn3.apple-mapkit.com/114.114.114.114
    server=/http://cdn-cn4.apple-mapkit.com/114.114.114.114
    需要注意的是dnsredir組件只會讀取上述配置中的域名,而不會讀取后面的DNS服務器IP,實際轉發(fā)的DNS服務器IP在CoreDNS中的配置文件定義;
  2. 為什么使用RFC1035格式的文本文件作為自定義域名的配置文件?
    CoreDNS本身支持多種外部后端存儲方式(mysql、redis、etcd、pdsql等),使用RFC1035格式的文本文件主要是基于性能、穩(wěn)定性和可維護性考量。


關鍵詞:

74
73
25
news

版權所有? 億企邦 1997-2025 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉