A記錄都不懂,怎么做開發Leader?


開發 Leader 和一線開發的區別在於:普通一線開發很多時候都只接觸業務編碼,不需要關注除開發之外的其他事情。但是作為一個開發 Leader,不僅僅需要懂開發層面的東西,還需要懂得運維層面的東西。

最近產品同學就找到我:大佬,運營給了個需求,需要你搞定一下。事情是這樣的:公司要接入一個第三方郵件供應商,其中有一個環節需要做子域名的 NS 記錄解析。當時我一臉懵逼,什么是子域名的 NS 記錄?到底要干嘛?雖然我可以直接把事情丟給運維人員,但是作為一個責任感爆棚的開發 LD,必須要把事情的整個流程搞清楚呀。

經過一番了解,我了解到域名解析有好幾種類型,包括:A記錄、CName記錄、MX記錄、NS記錄等。作為開發來說,雖然不需要深入了解運維的知識,但是還是需要弄懂這些不同的解析類型的原理。簡單地說,域名的解析類型就是在不同使用場景下的映射關系。

A記錄

A記錄,簡單地說就是配置一條從域名到IP的映射關系。 我們都知道當我們輸入域名的時候,其實瀏覽器會幫我們去 DNS 服務器上解析這個域名對應的 IP 地址,瀏覽器最終訪問的其實是一個 IP 地址。而這里的 A 記錄其實就是配置域名到 IP 的映射關系,讓 DNS 服務器解析的時候能找到對應的 IP。

一般來說,要設置 A 記錄只需要到你域名所屬的服務商管理后台上進行設置即可。例如在阿里雲上添加 A 記錄的界面如下:

在上面的設置頁面中,我選擇了 A 記錄類型。主機記錄填寫為:hello.csyimg.com,記錄值為 192.168.1.1,TTL 值為 10 分鍾。那么就表示我想為 hello.csyimg.com 這個域名創建一條映射到 192.168.1.1 這個 IP 的映射關系,其緩存有效時間為 10 分鍾。

那么當用戶在瀏覽器訪問 hello.csyimg.com 這個域名的時候,DNS 服務器就會將請求轉發到 192.168.1.1 這個 IP 上。這里的 TTL 值表示其在 DNS 服務器上緩存的時間,等時間到了那么其會清除掉這條記錄,下次會再次去其對應的 DNS 服務器上去獲取最新的記錄值。

TTL 值存在意義在於:用戶從瀏覽器到服務器會經過很多個 DNS 服務器,而 DNS 服務器會接收大量請求,為了提高解析效率會設置緩存。當你首次訪問 hello.csyimg.com 時,如果本地的 DNS 服務器沒有 hello.csyimg.com 的 A 記錄,那么這次就會保存下來,等到下次訪問的時候,直接就返回該記錄,就不需要長途跋涉那么遠去查詢了。但是當我們要變更解析地址的時候,這時候就需要等10分鍾才能生效了。

注:關於 DNS 解析的原理這里不深入介紹,有興趣的話在公眾號后台回復「DNS解析原理」可以查看我寫的另一篇文章。

常見的主機記錄值有下面幾個,基本上涵括了我們日常使用的所有情況。

CNAME記錄

CNAME 記錄,即別名記錄(Canonical Name),指的是設置一個域名的別稱,即建立別名到域名的映射關系。

CNAME 記錄通常用於把不同的域名轉到同一個域名上,例如京東初期的域名為 360buy.com,后面更換成 jd.com,那么當用戶訪問 360buy.com 的時候就需要將自動為其跳轉到 jd.com 域名。這時候就可以設置一個 CNAME 記錄了。

在阿里雲上添加 CNAME 記錄也很簡單,其設置的內容與設置 A 記錄的類似,只不過記錄值此時必須是一個域名,而不能是一個 IP。

MX記錄

MX(Mail Exchanger)記錄的作用是用於定位郵件服務器的地址。

例如一個用戶給 user@abcdef.com 的用戶發封郵件,此時該用戶的所屬的郵件系統會通過 DNS 服務器來查找 abcdef.com 這個域名的 MX 記錄。如果存在,就去查找 MX 記錄值對應的 A 記錄,從而得到郵件服務器的IP地址,並將這封郵件發送到這台服務器上。可見,MX記錄和A記錄是分不開的。總的來說,MX記錄是為了讓對方找到你的郵件服務器。所以,如果想順利收信,就必須為你的郵件服務器創建合法有效的MX記錄。

在阿里雲設置 MX 記錄的頁面如下所示,其中記錄值也必須是一個域名。當用戶要發郵件給 abc@csyimg.com 的時候,會通過 DNS 服務器查找 csyimg.com 的 MX 記錄。此時會找到記錄值為 mail.shuyi.me 的 MX 記錄,之后會去查找 mail.shuyi.me 的 A 記錄,從而找到 csyimg.com 這個郵件服務器的 IP 地址。

NS記錄

NS 記錄是指將子域名指向其他 DNS 服務器解析。有時候在進行技術合作的時候,需要將子域名托管給其他公司,這時候就需要為該子域名設置 NS 記錄。

在阿里雲設置 NS 記錄的頁面如下,其中記錄值必須是一個域名,這個域名對應了一台 DNS 服務器。例如我下面的設置就將 doc.csyimg.com 這個子域名托管給了 ns.baidu.com 這個 DNS 服務器。當我將該子域名 doc.csyimg.com 托管給 ns.baidu.com 這台 DNS 服務器之后,我也可以在這台 DNS 服務器上設置 A 記錄、MX 記錄了。

總結

說到這里,我相信大家都已經比較清楚了。這里總結一下域名各解析類型的作用:

  • A 記錄:設置域名到 IP 的映射
  • CNAME 記錄:設置域名到域名的映射
  • MX 記錄:設置郵件服務器的映射
  • NS 記錄:設置子域名 DNS 服務器的映射

除了上面講到的這幾種域名解析類型,其實還有很多域名解析類型:

  • AAAA記錄:將域名指向一個 IPV6 地址。
  • SRV記錄:記錄提供特定的服務的服務器。
  • TXT記錄:文本長度限制512,通常用作SPF記錄(反垃圾郵件)。很多時候也用來驗證對域名的所有權。
  • CAA記錄:CA證書頒發機構授權校驗。
  • 顯性URL:將域名重定向到另外一個地址。
  • 隱形URL:與顯性URL類似,但是會隱藏真實目標地址。

關於域名解析類型,雖然對於開發人員來說平時用不到。但如果你當了 leader,需要與運維打交道了,那么這些基礎知識可是必備的哦。覺得有用,可以點擊「收藏」以備不時之需哦。

聽了域名的解析類型,是不是覺得干巴巴的很不好記,貌似沒有什么用?其實這解析類型可是大有用處,它與 DNS 的解析類型有千絲萬縷的聯系,下篇我將帶你介紹 DNS 解析的原理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM