DNS的起因是IP很難記憶,但是網路上又是利用IP來做為routing的依據,所以勢必要有其他方式,即使是把name對應到IP的方式全部記憶到主機檔案,比方說/etc/hosts,也要面對效能不彰的問題,更嚴重的是,他無法有彈性的架構,比方說今天世界上多了一台機器,你怎麼知道他ip多少呢?
所以DNS就針對這樣的問題發展了出來,一套可以由名稱對應到IP的機制,並且是分散式的架構,一方面可以解決效能的問題,另外一方面可以增加彈性,甚至更多的應用,比方說多個名稱對應到同一個IP
每個DNS伺服器有若干個資料庫,每個資料庫中都充滿了RR (Resource Record),重要的RR簡單列表如下
Domain Record
- SOA:Start Of Authority
- NS:Name Server
- MX:Mail Exchange
Host Record
- A:Address (IPv4)
- AAAA:Address (IPv6)
- CNAME:Alias
- PTR:Pointer
在進入DNS Server運作之前,要先理解Domain Name的架構。Domain Name是一個樹狀的架構,最上層為root,下面每一層為sub-domain,同樣的,每一層的下層為之sub-domain。

常見的domain name型態有
- Root是top level domain (TLD)
- General TLD : .com, .org, .net, …
- Country TLD : .tw, .ca, .us, …
Domain Name的解讀,由dot (.)分開,也就是由後(root)往前,前面的部分為後面的sub-domain,一個完整的名稱稱為Fully Qualified Domain Name (FQDN),比方說www.kimo.com.,要注意最後面的一個點,雖然一般我們使用的時候並不打出來。接著,在理論上,DN並不允許重複的名稱

圖片來自Oreilly的書籍
DNS & Bind
沒有留言:
張貼留言