在台湾进行二级域名解析部署时,你可能会在“最佳(可靠且快速)”、“最好(功能最全)”与“最便宜(低成本可用)”三者之间抉择。最佳方案通常是选择具备Anycast节点与DDoS防护的托管DNS(例如国际或台湾在地的托管服务,或中華電信與大型雲端業者提供的DNS服務),最好則會包含GUI管理、API、自動化與監控功能;最便宜的方案則是租用台灣VPS或雲主機,自行安裝BIND9或PowerDNS來管理區域檔(zone),成本低但需自行維運與備援。
先釐清名詞:主域名(example.com)下的某個子域(例如 sub.example.com)即稱為二級域名或子域。解析有兩種常見方式:一是在主域的DNS區檔中新增A/CNAME等記錄;二是將該子域委派(delegate)到另一組Nameserver(也就是在主域建立NS記錄,必要時提供Glue記錄)。在雲空間(Cloud VM)中可選擇托管DNS服務或自建DNS伺服器。
托管DNS(Managed DNS):優點是高可用、Anycast、API、DDoS防護與全球節點;缺點為費用較高。適合對可用性要求高的商業網站。若需在台湾DNS服务器上部署,可選擇中華電信CHT Cloud、臺灣大型站臺之DNS服務或國際服務商(Cloudflare、DNSPod、Amazon Route 53)。
自建DNS(VPS/雲主機安裝BIND/PowerDNS):優點為成本低、控制權高;缺點是需要處理備援、防護與維運。若選在台灣的雲空間(例如中華電信、台灣大哥大、台灣雲端VPS)可以獲得較低延遲與在地帶寬優勢,但建議至少兩個不同位置的DNS伺服器作為主/次(master/slave)。
1) 準備好域名的管理權(能在註冊商修改NS與Glue)。 2) 在台灣雲空間建立至少一台VPS(若自建則兩台以上)並開放UDP/TCP 53埠,設定固定公網IP。3) 若使用托管DNS,註冊並驗證域名所有權,取得Nameserver位址。4) 決定是否要將子域直接在主域操作或委派到獨立Nameserver(委派需設定NS與Glue)。
下面以Ubuntu + BIND9為例:安裝、配置區檔、啟用AXFR與TSIG、測試。
1) 安裝BIND9:apt update && apt install bind9 bind9utils -y。 2) 編輯 /etc/bind/named.conf.local 新增 zone 設定,例如要管理子域 sub.example.com:
zone "sub.example.com" { type master; file "/etc/bind/db.sub.example.com"; allow-transfer { 203.0.113.2; }; };
3) 建立區檔 /etc/bind/db.sub.example.com 的基本內容:
$TTL 3600 @ IN SOA ns1.sub.example.com. admin.example.com. ( 2026091201 ; serial 3600 ; refresh 1800 ; retry 604800 ; expire 3600 ) ; minimum @ IN NS ns1.sub.example.com. ns1 IN A 203.0.113.1 www IN A 203.0.113.10
4) 若有次伺服器,設定allow-transfer與在次伺服器上設定為slave並指向master的IP。為安全可使用TSIG金鑰保護區域傳輸。 5) 開啟並允許防火牆埠:iptables/ufw 允許 udp/tcp 53。 6) 重啟BIND:systemctl restart bind9,使用 dig 測試:dig @203.0.113.1 www.sub.example.com A。
若採用「委派子域」方式(例如將 sub.example.com 的解析交給其它DNS),需在主域的DNS區檔或註冊商介面新增NS記錄:
sub IN NS ns1.sub.example.com. sub IN NS ns2.sub.example.com.
若 ns1.sub.example.com 與 ns2.sub.example.com 使用 同一個主域的子域名稱(即Glue紀錄情況),還需在註冊商那裡新增A Glue紀錄(host records)把 ns1/ns2 解析到對應的IP,否則委派會失敗。
1) 選擇服務商並註冊帳號(若需在台湾節點,選擇支援台灣/亞太Anycast或在地供應商)。2) 在管理介面新增域名(或子域管理),新增A/CNAME/NS/TXT等記錄。3) 若是整個域名採托管,更新註冊商的Nameserver為服務商提供的Nameserver;若只委派子域,在主域DNS新增NS指向該托管服務商的Nameserver。4) 測試解析、TTL 生效與全球解析狀態(使用dig +trace、在線工具如whatsmydns.net)。
常用工具:dig、nslookup、host。示例:
dig @ns1.sub.example.com www.sub.example.com A dig +trace sub.example.com nslookup -type=ns sub.example.com
驗證項目:回傳IP是否正確、TTL是否符合設計、NS是否正確委派、是否有Glue問題、AXFR是否限制、DNSSEC簽章(若有)是否有效。建議使用多個地點測試解析以檢查快取與傳播問題。
1) 最好啟用DNSSEC來防篡改(若註冊商與托管服務支援)。2) 若自建,至少兩台分散地理位置的Nameserver,避免單點故障。3) 限制區域傳輸並使用TSIG或IP白名單。4) 監控解析服務可用性,並設定告警。5) 若流量大或需抵禦攻擊,選擇支援Anycast與DDoS保護的托管DNS。
最便宜方案:台灣VPS(單台)+ 自建BIND,月費可低至數百新台幣;風險是單點故障與維運成本。最佳商業方案:付費托管Anycast DNS(多個供應商提供不同等級,視解析查詢量與支援而定)。折衷方案:在台灣部署一台主DNS並在國際托管商註冊次DNS(或相反),以在地低延遲與全球備援之間取得平衡。
總結:若追求穩定與低維運,採用托管DNS(最好選擇具Anycast與DDoS保護)是最佳選擇;若預算有限且能自行維運,可在台灣的雲空間上自行部署DNS伺服器,但務必建立次伺服器與適當的備援。具體步驟建議:1) 決定委派方式(主域直接記錄或委派子域);2) 若自建,建立至少兩台DNS並配置AXFR/TSIG;3) 在註冊商設定NS/Glue;4) 使用dig/nslookup測試並設定監控;5) 考慮DNSSEC與DDoS防護。
如需,我可以針對你目前使用的註冊商、雲空間或已有主域提供量身化的部署指引(包含具體的Zone檔範例與註冊商上傳步驟)。