1. 程式人生 > >A記錄都不懂,怎麼做開發Leader?

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)記錄的作用是用於定位郵件伺服器的地址。

例如一個使用者給 [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 解析的原理