什麼是DNS?跟網站又是什麼關係呢?

WordPress

第一次製作網站時,總不免會聽到「DNS」這個名詞,究竟這是什麼,又跟網站有什麼關係?我們就用較生活化的例子來解釋,因為就算不是資訊人員,也會因為網站製作、主機購買的問題而遇到這樣的疑惑。

店家的獨一無二門牌地址

想像一下,我們今天開了一家餐廳,在地球上,我們可以用一個經緯度來表達餐廳的所在位置。同一時間這個經緯度只會有一家店,不會同時有兩家店出現在同一個經緯度上。

接著我們希望這家餐廳可以門庭若市,於是我們需要廣而告知讓各方饕客上門大快朵頤一番。

所以我們會需要藉由廣告讓消費者們知道我們在哪,實務上我們不可能在宣傳單上面印著這家店的位置在經緯度就期盼客人們可以順利就找到你。所以我們會印在宣傳單上的是一連串可被辨讀的地址,例如台北市中山路某號。

以上,其實就是一個網站製作完成後,在網路上被人們得知的基本模型。

網站也有獨一無二的地址

在上述的例子中,經緯度就是一般俗稱的主機IP位址,在正常情況下,同一個IP絕對不會同時有兩個網站佔用。跟經緯度一樣,IP是一連串數字,在早期規劃時,只有四組數字,中間以英文的句點隔開,且數字是都0~255,例如[your_ip],所以約莫只有42億個組合,此稱為IPv4。由於網際網路的快速發展,早期的規劃即將不足以應付全球使用。

因此後來新增了IP規劃方法,稱為IPv6,新的IP位址數量遠遠遠大於IPv4,多到足以讓我懶的將這個數字打出來。在電腦與電腦溝通時,它們就以IP的位址跟彼此溝通,例IP位址1.2.3.4的裝置欲讀取主機IP位址8.8.8.8的資料。

但我們想要讓消費者找到我們,根本不可能冀望消費者記住他所喜愛的每一個網站的IP位址。而DNS的存在解決了這樣的問題。

DNS的中文名稱是「網域名稱系統」,我們可以想像這個系統就像配備了自動駕駛的智慧車,當我們告訴車子我們想要去坐火車時,不用告訴它車站的經緯度,而是告訴它我們想要去台北火車站,於是車子便去資料庫尋找「台北火車站的經緯度」。

這個資料庫,就是DNS的具體概念。

龐大且為數眾多的資料庫

在上述舉例中,導航資料庫是一種,是為了方便使用者藉由導航系統找到店家的一種資料庫。

在網路的世界中,DNS資料庫不會只有一個,而是由為數眾多的資料庫構成,每一個資料庫都儲存著各個網站的網址與IP的對應表。

就像在生活中,除了導航系統資料庫以外,如果A超市想要寄最新一期的特價單給我們,就會需要超市記錄著我們收件地址的系統幫助,將特價單寄到我們的手中;而銀行也有自己的資料庫記錄著我們的帳單地址等等,各行各業都有自己的資料庫,雖然資料庫不一樣,但他們都記錄著同一件事,那就是我們的地址。

所以一旦我們新開了一家店、或更新了我們的住址,就必須向這些資料庫發出通知說我們更新了地址,之後請不要寄錯或跑錯地址。

結論

綜合以上的描述,店家就像一台主機、一個網站空間,而這個空間都會有一個IP,就像現實生活中的門牌地址一樣。在DNS系統裡面註冊或更新地址、網址的動作我們俗稱為指向,意即將網址與IP用連連看的方式連起來。

而既然我們提到整個DNS系統是由為數眾多的資料庫所組成,就像銀行自己的、超市自己的,因此一旦我們更新了地址之後,不可能短時間內通知到所有的資料庫,因此常會有一種狀況是為何A的電腦已經可以看到新網站了,而B卻還不行,因為有可能剛好最接近A的DNS系統已經更新好了,而離B最近的DNS 卻還沒接收到更新通知。

就好像,你若要更新地址資料,一定是先去最重要的銀行或最方便的超市先跟他們說你換住址了一樣。