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

點擊藍色“陳樹義”關注我喲

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

最近產品同學就找到我:運營給了個需求,需要你搞定一下。事情是這樣的:公司要接入一個第三方郵件供應商,其中有一個環節需要做子域名的 NS 記錄解析。當時我一臉懵逼,什麼是子域名的 NS 記錄?到底要幹嘛?雖然我可以直接把事情丟給運維人員,但把事情的整個流程搞清楚有助於溝通交流。

經過一番瞭解,我瞭解到域名解析有好幾種類型,包括: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)記錄的作用是用於定位郵件服務器的地址。

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

在阿里雲設置 MX 記錄的頁面如下所示,其中記錄值也必須是一個域名。當用戶要發郵件給 [email protected] 的時候,會通過 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 解析的原理。


推薦閱讀

公衆號@陳樹義,用最簡單的語言,分享我的技術見解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章