DNS (Domain Name System) 是網路的「電話簿」,將域名映射為 IP 位址。早期使用 /etc/hosts 靜態對應,隨規模擴大轉為分散式 DNS 架構。DNS 採用樹狀層級命名空間,查詢流程:本地快取 → 根域 → 頂級域 → 權威域,逐層遞迴/迭代解析。可用 dig +trace 追蹤完整路徑。
yum search bind
yum install bind bind-chroot bind-utils
# bind-chroot 提供 /var/named/chroot 獄環境,增強安全性
# bind-utils 提供 dig、host、nslookup 測試工具
service named start
netstat -tunlp | grep :53
# 預期:TCP/UDP 53 監聽於指定介面
建議在 chroot 環境下配置:/var/named/chroot/etc/named.conf、/var/named/chroot/var/named/。兩者與系統目錄同步,但 chroot 環境需在 named 服務成功啟動後才可訪問。
options {
listen-on port 53 { 192.168.2.100; 127.0.0.1; };
listen-on-v6 port 53 { none; }; # 關閉 IPv6
directory "/var/named";
allow-query { any; }; # 允許任意查詢 (實驗環境)
recursion yes; # 啟用遞迴查詢
dnssec-enable no; # 實驗關閉 DNSSEC
dnssec-validation no;
};
# 根提示、localhost 區域引用預設檔案
include "/etc/named.rfc1912.zones";
include "/etc/rndc.key";
副配置檔 /var/named/chroot/etc/named.rfc1912.zones 新增區域定義:
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};
區域資料檔 /var/named/chroot/var/named/example.com.zone:
$TTL 86400
$ORIGIN example.com.
@ IN SOA example.com. root.example.com. (
2017010101 ; Serial
3H ; Refresh
15M ; Retry
1W ; Expire
1D ) ; Minimum
IN NS ns
IN MX 10 mail
ns IN A 192.168.2.100
mail IN A 192.168.2.100
www IN A 192.168.2.100
ftp IN A 192.168.2.100
web IN CNAME www
關鍵語法提醒:
@ 代表 $ORIGIN 值 (example.com.)www) 會自動補全為 www.example.com.example.com.) 表示 FQDN,避免重複附加
修改客戶端 /etc/sysconfig/network-scripts/ifcfg-eth0 設定 DNS1=192.168.2.100,重啟 network 服務。
service network restart
dig www.example.com @192.168.2.100
# 驗證返回正確 IP 且 SERVER 顯示 192.168.2.100
副配置檔新增反向區域定義:
zone "2.168.192.in-addr.arpa" IN {
type master;
file "2.168.192.zone";
allow-update { none; };
};
注意:區域名稱為網段反寫 + .in-addr.arpa. (192.168.2 → 2.168.192)
反向區域資料檔 /var/named/chroot/var/named/2.168.192.zone:
$TTL 86400
$ORIGIN 2.168.192.in-addr.arpa.
@ IN SOA example.com. root.example.com. (
2017010101 ; Serial
3H ; Refresh
15M ; Retry
1W ; Expire
1D ) ; Minimum
IN NS ns.example.com.
100 IN PTR ptr.example.com.
最後一行:100 代表主機位元組 (192.168.2.100) → ptr.example.com.
service named restart
dig -x 192.168.2.100 @192.168.2.100
# 預期返回 PTR ptr.example.com.
本文完成基礎正/反向解析。後續將涵蓋: