antony@notes:~/container$ cat "80-IT-Infra-Podman-BIND.md"
80-IT-Infra-Podman-BIND
80-IT-Infra-Podman-BIND
1. 認識 Domain Name System
1.1. Domain Name 系統架構

- Top Level Domains 就是
.edu、.net、.gov…等,這種 Domain 名稱,往下會延伸出第二層、第三層,全球有至少 13 台電腦在管理 Top Level Domains,會有特別的一個組織在管理。 - 企業內部通常是從第二層的名稱開始維護,在管理這些名稱的時候,最起碼會裝兩台 DNS Server,一個叫做 Primary DNS,另一個叫做 Secondary DNS,裝這兩台 DNS 來管理 Domain Name。
- 每一個 Domain 的名稱都會用兩台電腦,上面跑 DNS Server 來管 Domain 名稱。
- 有兩台 DNS Server 管理
google.com的 Domain name 是甚麼意思?- 所謂的管理,就是能夠會回答這個名稱裡面有哪些網路服務,以
google.com為例,現在在 Google 公司會裝了兩台 DNS Server,主要的功能就是要來回答在網路上 Google 有提供那些網路服務,這些名稱會用名稱來表達,譬如www.google.com就代表 Google 的網站服務,而網站服務對應的 IP 位址,就會由 DNS Server 來做回答。 google.com還會有提供哪些網路服務? Web Server, Mail Server…等。- 甚麼是 CDN? 在網路上的網站,只要是圖片檔這種需要消耗頻寬的,他們通通都不是放在自己的 Web Server,全部都是在網路上去租用 CDN 網站,由這個網站來把這些資料做傳送。
- 所謂的管理,就是能夠會回答這個名稱裡面有哪些網路服務,以
- 為何要裝兩台 DNS Server?
- 第一台叫做 Primary,第二台叫做 Secondary,第二台 DNS Server 會設定成 Read only (唯讀且不可修改),真正對外的只有 Secondary DNS,也就是說 Client 端都會去找 Secondary DNS 做查詢。
- 那 Secondary DNS 的 Record 資料要從哪來?
- 從 Primary DNS 來,會透過 AXFR 通訊協定同步到 Secondary DNS 的 Zone 裡面,走的是
TCP/53Port - 所以要新增
www.google.com的 DNS record,會先在 Primary DNS 裡面去新增,在同步給 Secondary DNS,最後 Client 端會去找 Secondary DNS 做查詢,去找www.google.com這個網站服務對應的 IP 位址。
- 從 Primary DNS 來,會透過 AXFR 通訊協定同步到 Secondary DNS 的 Zone 裡面,走的是
- DNS Client 是在 Client 裝置上的一個程式或服務,它能將人類可讀的網域名稱,例如將
www.google.com轉換為電腦在網路上用來相互識別的數字 IP 位址。它會向 DNS Server 傳送查詢以尋找正確的 IP 位址、檢查本機快取中先前解析過的名稱,並協助您連線到網站和線上服務。 - TCP/53 port 是給 Primary 跟 Secondary 之間做 Zone 同步用的,那 UDP/53 port 則是給 Client 查詢走的 port。
1.2. DNS - Recursive Query

自製 BIND Image
$ sudo mkdir -p /opt/zfs/{images/bind,bind/zone}
$ echo 'options {
directory "/etc/bind";
pid-file "/var/run/named/named.pid";
forwarders { 8.8.8.8; 168.95.1.1; };
allow-query { any; };
allow-recursion { any; };
allow-update { any;};
allow-transfer { 192.168.188.12; 192.168.188.254; };
also-notify { 192.168.188.12; };
listen-on { any; };
notify yes;
recursion yes;
};
zone "k8s" IN {
type master;
file "/etc/bind/zone/k8s.zone";
}; ' | envsubst | sudo tee /opt/zfs/bind/k8s.mnamed.conf/opt/zfs/bind/k8s.mnamed.conf: Primary DNS 設定檔- 這設定檔主要管的
k8s這個 Zone k8sZone 所有的網路服務 Record 會記錄在/etc/bind/zone/k8s.zone檔案中- 如果 DNS Client
- 這設定檔主要管的