換一種視角看DNS
我們盡量用精煉的語言,盡可能的規劃DNS的全貌(當然筆者水準有限,如有錯誤請不吝賜教)。
通常啊我們在個人PC中能看到DNS的配置身影就是在上網的時候,通常如果你不配置DNS可能找不到IP位址等等,那這是我們就回去配置一個DNS伺服器,我們可以吧DNS伺服器了解為位址簿,沒錯漫遊在全網的位址簿;那你想過沒有它背後的作用呢?我們繼續看。
1、什麼是DNS服務?
DNS服務全程Domain Name System,中文譯名為域名系統。就是網際網路中位址簿,通常我們PC端都是自動擷取,有過管理伺服器的效果版一般手工配置的多。
DNS是一個超大的位址簿,但是呢統一管理太麻煩怎麼辦呢?分層管理,非常類似郡縣制,然後一層一層劃分下去,我們以百度的域名為例說一下:
www.baidu.com.
上面這個字元串就是域名,也就是我們熟知百度的域名,眼尖的小夥伴可能發現最後怎麼多了一點,沒錯這個點就是最高層的管理者也就是根,當然我們預設情況下都是隐藏的,我們拆分來看下:
- com:這個頂級域名,是有一個家域名發行商管理,當然類似的還有io, cn, hk 等等;
- baidu:在頂級域名下面,我們稱之為一級域名,這個域名都是使用者或者公司進行購買,需要付出費用;
- www:接着就是www,我們稱之為二級域名,這個完全是由一級域名所有者進行管理的。
看到這裡有的小夥伴有些懵,那麼簡單來說下規則:
.(根) --> com(頂級域名) --> baidu(一級域名) --> www(二級域名)
一般情況下就是這樣的一個分層建構了我們看到的DNS服務。
2、DNS應用場景
場景:就是位址簿....
場景一:域名管理
這也是最常見的情況,在購買一級域名後你可以進行配置你的域名記錄,域名指向你的實際位址我們稱之為A記錄,相關的常用記錄還有:
- A記錄,一般作用于域名-->IP的直接解析也是企業最常用的;
- CNAME,就是别名解析,一般多用于CDN的場景下,相當于域名和主機之間增加了一個橋梁;
- MX,郵件解析記錄,這個筆者接觸也不多;
- NS,指定你的DNS伺服器位址,剛才我們說過了域名是自上而下的管理,你需要一個老大哥來罩着你,這個DNS就是你大哥位址,預設情況下購買域名後預設給你配置;
- TXT,這個記錄一般多用于域名驗證,判斷域名是否有管理權限。
好用的DNS,如萬網或者DNSPOD 會有 A記錄負載均衡以及智能DNS的功能。
- A記錄負載均衡,當你的入口伺服器一台機器扛不住的情況下,這個是非常贊的功能;
- 智能DNS,可以根據使用者來源的DNS位置進行解析不同的記錄,這樣就可以實作使用者分流了(從源頭控制很舒心,多用于跨境服務以及CDN)。
場景二:企業内部DNS
上周還在吐槽,公司内部測試環境伺服器通過IP+端口來劃分,記憶混亂整個人都難受,平白無故都發也稀少了,這樣我們就可以通過建構一台内部DNS解決這個問題了
還有一個非常重要的事情就是,叢集内部環境,當我們使用外部伺服器的DNS,如果他們DNS抽風或者網絡的種種原因我們最好在自己機房做一個DNS服務,來保證内部服務的通暢。
筆者認識的小夥伴就因為某DNS服務商除了問題,整個内部服務有一多半出現非常卡頓的問題。
3、DNS踩過的坑
Q: 我配置的DNS為啥沒有效果呢?
A: DNS預設生效是有周期行知的預設都在10分鐘以内,如果更改的級别越高比如你修改了NS服務則需要24小時甚至更長。(是以筆者建議,在切割DNS時特别注意這一點,以免造成服務不可通路)
Q: 為什麼我明明配置的DNS解析記錄,然而還是搜尋不到呢?
A: 鑒于國内行情DNS和營運商的的緩存重新整理還不一緻,你可以指定你伺服器配置的DNS Server測試一下
Q: 智能DNS 為什麼解析的伺服器不是對應地區的呢?
A: 這個智能DNS能夠擷取到的是使用者PC上配置的DNS位址,是以你懂的(是以測試的小夥伴需要注意了)
Q: DNS 負載均衡怎麼不是1V1?
A: DNS服務商也想啊,但是實力不允許啊,能夠做到相對輪訓的,可靠地不用擔心(隻是負載均衡,沒有健康檢查,Bro 特别注意)
Q: 我配置了CDN 但是經常出現404,尤其是配置HTTPS的情況下?
A: 這個呢是CDN伺服器當機或者智能排程到其他Server,但是營運商的緩存沒有重新整理;建議聯系你的CDN的銷售經理幫助你換到更加穩定伺服器哦。
其實最大的坑,莫過于營運商和DNS服務商的緩存重新整理了
4、DNS兩種解析機制
鑒于網上有比較好的文章了,我就不水了,傳送門:https://blog.51cto.com/13570193/2105393