## DNS 是什麼? 可以吃嗎?
---
### Domain Name System
縮寫:DNS
---
### 伺服器 Server
![](https://i.imgur.com/wwfkxtT.jpg)
note: 再講 DNS 之前想簡單介紹一個名詞,伺服器,簡單來說,伺服器就是一台電腦,但不是我們熟悉的個人電腦。伺服器是擁有特殊功能的企業級電腦產品,用戶可透過行動裝置或個人電腦與其連線,索取額外的資訊與服務。與伺服器連線後獲得的功能與服務類別,遠超過任何一台個人電腦或行動裝置所能夠提供。對我們來說就會是我們用 Google GCP 提供給我們這樣的服務,所以我們真正的資料會存在 Google 的機器裡
---
### What is a Server? Servers vs Desktops Explained
{%youtube UjCDWCeHCzY %}
---
### Google - Our Secure Data Centers
{%youtube 7pkNt3szF1A %}
---
### Internet Protocol(IP)
網際網路協定
電腦在網路統一交換資料的方式(統一的溝通方式)
---
### IP Address - IPv4 vs IPv6 Tutorial
{%youtube ThdO9beHhpA %}
note: An IP address is a unique identifier assigned to a device or domain that connects to the Internet.
---
![](https://i.imgur.com/F7XWs4V.png =80%x)
cindyliu923.com
note: 那在我幫大家腦補惹一些名詞之後,我們回到 DNS,當我們想打電話給 Cindy 的時候,跟手機說打給 Cindy 就可以惹,去 Cindy 家,也是先把地址可能記在通訊錄之類的地方,DNS 可以想像成一個網路世界的通訊錄,人們不記得真正的地址,但是記得人類可以看懂的英文網址,DNS 幫助我們把這串英文網址轉成真正的 IP Address,讓瀏覽器可以透過網路協議(Internet Protocol)進行資料的交換
---
![](https://i.imgur.com/fqf16Rm.jpg)
<font size=1>圖片來源:MIS 一定要懂的 82 個網路技術知識</font>
---
### 網域名稱(Domain Name)
`sub-domain.second-level-domain(your-domain).top-level-domain`
www.cindyliu923.com
cindyliu923.com
note: 其中 .com 就是 top-level、cindyliu923 是 second-level,而 www 是 sub-domain。這個 sub-domain 可以是空的,因此 cindyliu923.com 也是合法的網域名稱。
---
### [Root Zone Database](https://www.iana.org/domains/root/db)
![](https://i.imgur.com/xEOVKPz.png)
note: 全世界的 top-level-domain 是由 網際網路號碼分配局IANA(Internet Assigned Numbers Authority) 機構所管理的,所有的 top-level-domain 的列表請參考 Root Zone Database,每個 top-level-domain 會分配給不同國家的非營利組織進行管理,例如管理 .tw 的單位是 財團法人台灣網路資訊中心(TWNIC)、管理 .cn 的單位是 中國互聯網路信息中心(CNNIC)。
---
### 域名註冊商
[Gandi.net](https://www.gandi.net/zh-Hant)
[GoDaddy](https://tw.godaddy.com/)
[Namecheap](https://www.namecheap.com/)
xx. cindyliu923.com
note: 一般個人或公司組織會向這些非營利組織進行網域購買和登記,例如 cindyliu923.com 是登記在負責管理 .com 網域的 VeriSign Global Registry Services 組織。不過實務上我們不會直接跟 VeriSign Global Registry Services 購買,而是透過域名註冊商進行購買,在這些域名註冊商的網站上,你可以一次選購各種不同的網域。例如 Namecheap、Godaddy 或 阿里雲-萬網 等等。
買到你自己的 second-level-domain 後,你就可以自行設定管理你的 sub-domain
---
### Internet Service Provider(ISP)
網際網路服務供應商
note: ISP,Internet Service Provider 的縮寫,翻譯成中文便是「網際網路服務供應商」,其實也就是你每個月上繳月租費,讓你能暢遊網路的那些供應商!在台灣,舉凡中華電信、台哥大、遠傳等等電信公司都算是比較大的 ISP 業者,底下都有推出自家的上網服務,種類繁多,但主要可以分成「有線」及「無線」兩大類。
例如租給你一台數據機放在家裡的服務就是屬於有線上網囉,這台數據機會透過線路連接到 ISP 的機房,讓你連接全世界;而不透過實體線路,由無線電訊號和你的設備交換訊息的自然就屬無線上網的服務。
---
### DNS 伺服器
Google 提供的 [8.8.8.8](https://developers.google.com/speed/public-dns)
Cloudflare 提供的 [1.1.1.1](https://1.1.1.1/zh-Hant/dns/)
中華電信 168.95.1.1
note: 一般用戶是如何進行 DNS 查詢的呢?在作業系統中可以設置偏好的 DNS 伺服器,通常會使用 ISP 預設提供的 DNS 伺服器,也可以自己指定
---
![](https://i.imgur.com/kEKQXcn.png =80%x)
---
### Reason
好記憶
有彈性
note: 除了好記憶的原因之外,使用域名也比較有彈性,剛剛說的伺服器的 IP 位置可能會變動 (例如換不同服務商的機房就一定會變動IP地址) ,但是透過 DNS 就可以保持域名不變。
---
### 本機
![](https://i.imgur.com/64nwpS9.png)
note: 在我們本機電腦上就有一個對照表的檔案,也就是 /etc/hosts,你可以編輯這個檔案,寫下域名和 IP 地址的對應。
---
![](https://i.imgur.com/rufwdQJ.png)
note: 但是,本機不可能預先存好全世界網域名稱的對照表,因此我們會用 DNS 協議來做即時的線上查詢。
---
### How a DNS Server (Domain Name System) works.
{%youtube mpQZVYPuDGU %}
---
<font size=1>圖片來源:MIS 一定要懂的 82 個網路技術知識</font>
![](https://i.imgur.com/92GAyLb.jpg =73%x)
note: 查詢的流程會是先從客戶端偏好的 DNS 開始查詢。如果 DNS 找不到紀錄,則該 DNS 會從根網域名稱伺服器(root nameserver)開始查詢,直到找到負責該網域的 DNS 伺服器為止。在第一次查詢後,那台客戶端偏好的 DNS 就會快取起來。
舉例來說:查詢 www.cindyliu923.com 時,如果客戶端偏好的 DNS 沒有紀錄,就會去問 根網域名稱伺服器(root nameserver) 說 .com 網域是誰管理的,它會回答負責 .com 的 nameserver,然後該 DNS 再去問 .com 的 nameserver 說 jarll.com 是哪一臺 DNS 負責的,然後再去問那一臺 www.cindyliu923.com 對應的 IP 是什麽。
---
### 指令
whois
nslookup
dig
---
### DNS 現象
標售哄抬現象
故障排除
釣魚網站 - g00gle.com/forget_password
網域忘記續約
Geo-based 或 Round-Robin(循環/輪轉/輪替)
DNS 污染
note: 因為購買一個網域一年並不貴,所以一些熱門的網址組合,很多網路蟑螂會預先註冊保留起來,如果你要買則需要花更貴的價錢才能買到。當然,你也可以根據商標走法律程序,不過很多網域是跨國的,所以並不容易處理。
有時候網路好像故障了,瀏覽器無法連線,但是可以 ping ip address。這時候可以優先檢查是否是 DNS 壞了,換一臺試試看。
所謂的釣魚網站,就是利用網址很像,然後畫面弄成一樣騙你輸入帳號密碼。
例如收到重新設定密碼的郵件,然後超連結前往 g00gle.com/forget_password ,畫面長的跟 google 一模一樣。沒有註意網址的話,很可能就不小心輸入自己的帳號密碼了。
查詢 DNS 時,不一定總是回答同一個 IP 答案。有些網站會在不同國家有伺服器,但是希望網址是一樣的,這時候有可以根據用戶不同的地理位置,回答不同的 IP 答案。
或是在超高流量的網站,則可以回答不同台伺服器的 IP 位址來分散流量到不同伺服器。
身為網站主,是無法控制用戶偏好使用的 DNS 伺服器。在一個理想信任的網路環境中,如果用戶的 DNS 不知道答案,它會一層一層去詢問。但是在一個受管制的網路環境,DNS 可以被控制回答不正確的 IP 位址,進而限制一般用戶無法順利瀏覽,甚至回答釣魚網站的 IP。這種行為就叫做 DNS 污染。
---
參考資料:
[What is DNS? | How DNS works](https://www.cloudflare.com/learning/dns/what-is-dns/)
[What is the Internet Protocol?](https://www.cloudflare.com/learning/network-layer/internet-protocol/)
[DNS Hacking 之 基礎知識:DNS 運作與紀錄類型](https://tech-blog.cymetrics.io/posts/crystal/dns-hacking-1/)
[Rails 實戰聖經 - 什麽是 DNS](https://ihower.tw/cs/networking-dns.html)
[Server | 伺服器](https://www.gigabyte.com/tw/Glossary/server)
[What is a server? Pros, cons and comparisons](https://www.racksolutions.com/news/blog/what-is-a-server/)
[無法上網?請詢問你的 ISP:何謂網路服務供應商?](https://ithelp.ithome.com.tw/articles/10263110)
{"metaMigratedAt":"2023-06-17T12:34:03.496Z","metaMigratedFrom":"YAML","title":"DNS 是什麼? 可以吃嗎?","breaks":"true","slideOptions":"{\"theme\":\"solarized\"}","contributors":"[{\"id\":\"293b5e6e-e5eb-4311-9c14-9ef76e059dd3\",\"add\":7319,\"del\":2307}]"}