趙祐廷(Zoe Chao)
Thu, Nov 25, 2020 09:00 AM
不知道好像也不會怎樣的冷知識:
世界上第一個域名:nordu.net(http://nordu.net/)(1985年1月1日)
世界上第一個.com的域名:Symbolics Inc 的 symbolics.com(1985年3月15日)
階層性:從root DNS servers一層一層一路往下,而每層域名都是由上一層的域名所管理,同時也只負責管理其下一層的域名(DNS的domains階層無數量限制)
分散性:每層都具有1個單獨負責自己domain zone的DNS Server
查詢目前的root name server: https://www.internic.net/domain/named.root
遞迴式查詢(Recursive Queries):內部查詢方式,存在於DNS Client和Local DNS Server之間
反覆式查詢(Iterative Queries):外部查詢方式,存在於Local DNS Server與Root、Top-Level&Second-Level之間
(P.S 此圖的舉例有誤(應該是要查詢 www.mit.edu.tw),但不影響架構)
1.使用者於瀏覽器輸入www.mit.edu.tw時,瀏覽器會先看自己的快取是否有紀錄→有的話就直接回傳IP
2.如果瀏覽器快取沒有紀錄,使用者的電腦會再檢查自己本地緩存(本地緩存包含Hosts文件及DNS Cache),看這兩個地方是否有www.mit.edu.tw這FQDN的IP紀錄
→有的話就直接回傳IP
* Hosts文件:位於C:\Windows\System32\drivers\etc\hosts,不會自動更新,需手動新增或改寫
* DNS Cache:可於cmd輸入ipconfig /displaydns (顯示 DNS 解析快取的內容),會自動記錄但無法修改
3.如果檢查自身的本地緩存找不到www.mit.edu.tw的IP,使用者電腦就會向Local DNS Server 詢問是否有www.mit.edu.tw的IP,Local DNS Server就會去自己的DNS Cache找看有沒有紀錄
→如果Local DNS Server有的話就會回傳IP,順便存紀錄在使用者電腦的DNS Cache
以上為遞迴查詢(內部查詢)
以上為遞迴查詢(內部查詢)
以上為遞迴查詢(內部查詢)
以下為反覆查詢(外部查詢)
以下為反覆查詢(外部查詢)
以下為反覆查詢(外部查詢)
5.如果連Local DNS Server自己也沒有紀錄,那Local DNS Server就會先去找root DNS Server作以下的事情:
6.Local DNS Server前往"tw"這個domain找到專門管理"tw"的DNS Server,重複一樣的查詢過程,知道tw底下有"edu"這個domain,然後繼續去"edu"詢問
7.Local DNS Server前往"edu"這個domain找到專門管理"edu"的DNS Server,重複一樣的查詢過程,知道edu底下有"mit"這個domain,然後繼續去"mit"詢問
8.Local DNS Server前往"mit"這個domain找到專門管理"mit"的DNS Server,重複一樣的查詢過程,知道mit底下有"www"這台主機,確認有"www.mit.edu.tw"這台主機並拿到IP後,就可以回去把IP回傳給使用者了~
9.要把查到的IP回傳給使用者之前,Local DNS Server會先把www.mit.edu.tw這FQDN與IP先記錄在自身的Cache裡面,再回傳給使用者,使用者拿到IP後,就可以直接連到www.mit.edu.tw了(同時也會把FQDN跟IP紀錄在自身的DNS Cache中)
常用的DNS 資源紀錄類型
點進去「區域名稱」的顯示畫面
域名系統安全擴充(Domain Name System Security Extensions,DNSSEC)
可達到的安全性目標:完整性(Integrity):
不提供機密性(Confidentiality) 和可用性(Availability)
DNSSEC負面影響:
→ 影響DNS查詢效率與流量
◎2020/11/19更正:讀書會報告時說為了查詢效率通常不會開,但在專案上為了DNS安全性,以及專案架在GCP上的話,影響的效率與流量其實不會有太大影響,所以通常都會設定開啟。
私人:僅供GCP網路內部人員查看的DNS記錄→外部無法訪問
公開:公開顯示於網際網路→外部可以訪問
Godaddy
Google Domains
Cloud Domains
↑以上都要錢
NO-ip(Free)(如要在上面新增更新ns需要收費,且無法使用免洗信箱申請)
Freenom(Free)(不論用免洗信箱或正式信箱都會被封鎖,如下圖)
進到GCP的主控台, 點選 Cloud DNS
選擇「建立區域」
私人區域設定
將查詢轉送到其他伺服器:DNS Zone Transfer
DNS對等互連(Cloud DNS peering)
代管反向查詢區域(設定PTR)
使用Service Directory命名空間
點選「新增紀錄集」
新增A資源紀錄類型
IP:填入Nginx的外部IP(填入時要注意後面是否有空格,如有空格會跳錯誤)
存留時間(TTL)和TTL單位用預設值即可(預設為5分鐘)
新增CNAME(別名)資源紀錄類型
建完的DNS私人區域
公用領域設定
公用領域建好後點選「新增紀錄集」
新增A資源記錄類型,這邊跟私人區域設定相同
(填入instance的IP,TTL跟TTL單位用預設)
建完的DNS公用區域
將公開區域的4台NS複製到申請網域的網域伺服器並更新
如果用Godaddy的話可參考畫面及畫面底下連結去新增+更新ns
私人區域驗證
複製網址到網頁後開啟,無法出現Nginx的預設畫面
使用nslookup驗證私人區域,進入instance裡面可以解析的到IP
於本機cmd測試,不論是zoe.123456還是www.zoe.123456皆無法解析
公用區域驗證
zoe.wz3.bet 或 www.zoe.wz3.bet 這兩個網址皆可連到Nginx預設首頁
於instance上用nslookup測試
於本機上用nslookup測試,zoe.wz3.bet 或 www.zoe.wz3.bet 這兩個網址皆可以解析到
刪除區域
因區域內還有資源紀錄類型,所以無法直接刪掉區域,要先刪掉資源紀錄類型後才能刪掉區域
進入區域後勾選要刪掉的資源紀錄類型,再點擊「刪除紀錄集」
刪除A跟CNAME後,就可將區域刪除
簡介DNSSEC(Introduction to DNS Security Extensions)
DNS安全防護探討
為達高速查詢犧牲安全性 DNS成為駭客最愛的攻擊標的
DNS伺服器的安全性管理實務(DNS Server Security Management)
Cloud DNS google文件
Cloud DNS google文件-管理區域
Cloud DNS google文件-Cloud DNS概述