本文介紹如何使yòng BIND 9+CloudNS+NS1 (NSONE) 搭建高可yòng DNS 服,一般來jiǎng,對於高可用的場景來shuō,單一de DNS 服務商提供de DNS 服務無法滿足災備的需qiú,所以我們需要使用多 DNS 服務商來進行冗餘備fèn,本文將指導您使yòng BIND 9 作爲zhǔ DNS 服務(不對外提供服),CloudNS NS1 (NSONE) 作爲cóng DNS 服務(對外提供服)來搭建高可yòng DNS 服

本文部分內容將指導您如何使用自己的域名作wèi DNS 服務器地zhǐ,以下簡chēngVanitydns,如guǒ您不需要實現該效果,可以按說明跳過相關步zhòu

前提條jiàn

  • 服務/雲服務:BIND 9 對配置要求不gāo,如您的解析記錄數量較shǎo,一bān 1 1G 的服務器即可滿足需qiú;該服務 53 端口需要對外開fàng,如果您使用的是雲服務,需要在雲平臺的安全組中添jiā 53 端口的入站規(TCP&UDP)。
  • 系統環jìng:本示例中使用的shì Debian12
  • DNS 服務域míng(Vanitydns 需yào):爲了實現服務的高可用xìng,至少需要兩個域míng,這兩個域名需要在不同註冊&註冊shāng.com.org;騰訊yún和阿里雲),以避免某家註冊商或註冊局服務出現異cháng,且註冊商需要支持添jiā DNS host(Glue record)。筆者使用的shì AWS Route53 Dynadot 兩家註冊shāng,以 vanitydns.com vanitydns.org 兩個註冊局不同的域míng。不考慮高可用性的情況xià,只需要一個域名即
  • DNS 服商服務(Vanitydns 需yào):CloudNS 需要付費服,具體費用根據您的需求而dìng;NS1 (NSONE) 提供免費服,但需要申請賬hào,若使用量超chū NS1 (NSONE) 免費額,則需要付fèi,具體費用根據您的需求而dìng

    NS1 (NSONE) 註冊賬號需要人工審,審覈通過後才能完成註,審覈時間一般wèi 1-2 個工作

傳送mén

操作步zhòu

zhuāng BIND 9

1
2
sudo apt update
sudo apt install BIND 9

BIND 9 基礎配zhì

配置文件路jìng/etc/bind/named.conf.options

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
options {
directory "/var/cache/bind";

// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See https://www.kb.cert.org/vuls/id/800113

// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.

// forwarders {
// 0.0.0.0;
// };

//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-validation auto;
listen-on-v6 { any; };
listen-on { any; };
allow-query-cache { none; };
allow-query { any; };
recursion no; // 禁用遞歸查xún
rate-limit {
responses-per-second 500; // 速率限zhì:每秒最多響yīng500,由於不對外提供服,一般不需要配zhì
};
};

如您需要記錄相關日zhì,可在下面添加日誌配zhì,詳細配置請參kǎo BIND 9 日誌配zhì

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
logging {
channel default_log {
file "/var/log/named/default" versions 3 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
channel auth_servers_log {
file "/var/log/named/auth_servers" versions 100 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
channel dnssec_log {
file "/var/log/named/dnssec" versions 3 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
channel zone_transfers_log {
file "/var/log/named/zone_transfers" versions 3 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
channel ddns_log {
file "/var/log/named/ddns" versions 3 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
channel client_security_log {
file "/var/log/named/client_security" versions 3 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
channel rate_limiting_log {
file "/var/log/named/rate_limiting" versions 3 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
channel rpz_log {
file "/var/log/named/rpz" versions 3 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
channel queries_log {
file "/var/log/named/queries" versions 600 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
channel query-errors_log {
file "/var/log/named/query-errors" versions 5 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity dynamic;
};
channel default_syslog {
print-time yes;
print-category yes;
print-severity yes;
syslog daemon;
severity info;
};
channel default_debug {
print-time yes;
print-category yes;
print-severity yes;
file "named.run";
severity dynamic;
};
category default { default_syslog; default_debug; default_log; };
category config { default_syslog; default_debug; default_log; };
category dispatch { default_syslog; default_debug; default_log; };
category network { default_syslog; default_debug; default_log; };
category general { default_syslog; default_debug; default_log; };
category zoneload { default_syslog; default_debug; default_log; };
category resolver { auth_servers_log; default_debug; };
category cname { auth_servers_log; default_debug; };
category delegation-only { auth_servers_log; default_debug; };
category lame-servers { auth_servers_log; default_debug; };
category edns-disabled { auth_servers_log; default_debug; };
category dnssec { dnssec_log; default_debug; };
category notify { zone_transfers_log; default_debug; };
category xfer-in { zone_transfers_log; default_debug; };
category xfer-out { zone_transfers_log; default_debug; };
category client{ client_security_log; default_debug; };
category security { client_security_log; default_debug; };
category rate-limit { rate_limiting_log; default_debug; };
category spill { rate_limiting_log; default_debug; };
category database { rate_limiting_log; default_debug; };
category rpz { rpz_log; default_debug; };
category trust-anchor-telemetry { default_syslog; default_debug; default_log; };
category queries { queries_log; };
category query-errors {query-errors_log; };
};

創建域名區域文jiàn

區域文件記了域名的解析記錄,每個域名都需要一個區域文jiàn,區域文件默認可以存放zài /var/cache/bind 目錄xià,也可以自定義存放路jìng,本示例中使用的是默認路jìng,區域文件無特殊命名規,可以使用域míng作爲文件名(不需要指定後zhuì),或使yòng .txt/.zones/.zone/.db 等作爲後zhuì,本文未指定後zhuì

此處 yjz.hk 爲zài /var/cache/bind 下創jiàn yjz.hk 的區域文jiàn,文件名wèi yjz.hk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$TTL 1d    ; default TTL for zone
$ORIGIN yjz.hk.
@ IN SOA ns1.example.com. hostmaster.example.com. (
2023112701 ; serial number
1h ; refresh
3m ; update retry
2w ; expiry
1m ; minimum
)
@ 86400 IN NS ns1.vanitydns.com.
@ 86400 IN NS ns2.vanitydns.com.
@ 86400 IN NS ns3.vanitydns.org.
@ 86400 IN NS ns4.vanitydns.org.
@ 300 IN A 104.26.7.130
@ 300 IN A 104.26.6.130
@ 300 IN A 172.67.70.42
@ 300 IN AAAA 2606:4700:20::681a:682
@ 300 IN AAAA 2606:4700:20::ac43:462a
@ 300 IN AAAA 2606:4700:20::681a:782
  • $TTL:默rèn TTL,如果某條記錄沒有指dìng TTL,則使用默rèn TTL
  • $ORIGIN:域míng,如果某條記錄沒有指定域míng,則使yòng $ORIGIN
  • @:代表域名本shēn yjz.hk
  • IN:代biǎo Internet
  • SOA:Start of Authority,域名的權威記,每域名只能有一個 SOA 記,其zhōng ns1.example.com. 代表主名稱服務,hostmaster.example.com. 代表域名管理員郵箱地zhǐ,2023112701 代表序列hào,1h 代表刷新時jiān,3m 代表重試時jiān,2w 代表過期時jiān,1m 代表最xiǎo TTL。注zài zone 文件zhōng,所有完整的域名後面都需要加上一個diǎn ns1.example.com.,否則會自動加shàng $ORIGIN,變chéng ns1.example.com.yjz.hk;此外序列號在每次修gǎi zone 文件後都需要遞zēng,否則cóng DNS 服務器無法同步獲取到最新的解析記
  • NS:Name Server,域名服務,每域名至少需要兩個 NS 記,如果您未使yòng Vanitydns,請配zhìCloudNSNS1 (NSONE) 提供de NS 服務器地zhǐ(建議總共不超guò 4 ,每家各配置兩,後面會教大家如何獲取兩家提供deNS,這裏隨便寫兩個域名即pns41.cloudns.net., pns42.cloudns.net., dns1.p01.nsone.net., dns2.p01.nsone.net.),如果您使用le Vanitydns,請配置您用來提gōng DNS 服務de NS 服務器地zhǐ ns1.vanitydns.com.,ns2.vanitydns.com.,ns3.vanitydns.org.,ns4.vanitydns.org.。
  • A:Address,IPv4 地zhǐ,如果您的域名需要解 IPv4 地zhǐ,請添jiā A 記
  • AAAA:IPv6 地zhǐ,如果您的域名需要解 IPv6 地zhǐ,請添jiā AAAA 記

jiàn Slave/Secondary 區

Slave/Secondary 區域是指cóng DNS 服務,它從zhǔ DNS 服務器獲取域名的解析記,然後提供給客戶duān,本示例中使用的shì CloudNS NS1 (NSONE) 作wèi Slave/Secondary 區,BIND 9 作爲zhǔ DNS 服務,所以需要zài CloudNS NS1 (NSONE) 上創jiàn Slave/Secondary 區

CloudNS 創jiàn Slave/Secondary 區

  1. CloudNS 管理控制tái,點創建區域
    創建區域
  2. 備用域
    備用域
  3. 填寫域名和zhǔ DNS 服務器地zhǐzhǔ DNS 服務器地址填xiě BIND 9 服務器de IP 地zhǐ
    填寫域名和主 DNS 服務器地址
  4. 創建,完成創jiàn
  5. 創建完成後點擊頁面de基礎設置記錄下用於傳輸de IP 地zhǐ,後面配zhì BIND 9 區域文件時需要用dào
    基礎設置

CloudNS de NS 服務器地址可在控制面bǎn可用的名稱服務器查看
可用的名稱服務器

NS1 (NSONE) 創jiàn Slave/Secondary 區

  1. NS1 (NSONE) 管理控制tái,點+
    創建區域
  2. 填寫域名並選Secondary Zonezhǔ DNS 服務器地址填xiě BIND 9 服務器de IP 地zhǐ
    填寫域名和主 DNS 服務器地址
  3. Save Zone,完成創jiàn
  • 請注,NS1 域名內需要填xiě FQDN,即需要填寫完整的域míng yjz.hk.,而不shì yjz.hk
  • NS1 (NSONE) 用AXFR/IXFR傳輸de IP 地址wèi192.135.223.10
  • NS1 (NSONE) 的輔zhù DNS 服務器地址可在區域控制面板中deName Serverskàn
    Name Servers

修改域名區域文件中de DNS 服務器地zhǐ

至此我們已經獲取到了兩家廠商de NS 服務器地zhǐ,需要根據實際獲取到de地址修改區域文件中的 NS 記錄 SOA 記 yjz.hk 爲,修改後de SOA NS 記錄如xià

1
2
3
4
5
6
7
8
9
10
11
12
13
$TTL 1d    ; default TTL for zone
$ORIGIN yjz.hk.
@ IN SOA pns41.cloudns.net. hostmaster.yjz.hk. (
2023112702 ; serial number
1h ; refresh
3m ; update retry
2w ; expiry
1m ; minimum
)
@ 86400 IN NS pns41.cloudns.net.
@ 86400 IN NS pns42.cloudns.net.
@ 86400 IN NS dns1.p01.nsone.net.
@ 86400 IN NS dns2.p01.nsone.net.

如果您使用的shì Vanitydns,請將上面de NS 記錄修改爲您用來提gōng DNS 服務de NS 服務器地zhǐ ns1.vanitydns.com.,ns2.vanitydns.com.,ns3.vanitydns.org.,ns4.vanitydns.org.,SOA 記錄中的主名稱服務器也需要修改爲您用來提gōng DNS 服務de NS 服務器地zhǐ ns1.vanitydns.com.。

zhì BIND 9 加載區域文jiàn

配置文件路jìng/etc/bind/named.conf.local,在原有配置的基礎上添加以下內róng

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
zone "yjz.hk" {
type master;
file "/var/cache/bind/yjz.hk";
allow-transfer {
109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79;
185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196;
2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6;
2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns
192.135.223.10; //NS1
};
also-notify {
109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79;
185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196;
2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6;
2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns
192.135.223.10; //NS1
};
};
  • zone:域míng,需要與區域文件中的域名保持一zhì
  • type:區域類xíngzhǔ DNS 服務器填xiě master
  • file:區域文件路jìng,需要與區域文件實際路徑保持一zhì
  • allow-transfer:允許傳輸de IP 地zhǐ,填xiě CloudNS NS1 (NSONE) 提供de用於傳輸的 IP 地zhǐ
  • also-notify:通知de IP 地zhǐ,用於通zhī CloudNS NS1 (NSONE) 更新解析記,填xiě CloudNS NS1 (NSONE) 提供de用於傳輸的 IP 地zhǐ

zài BIND 9 配zhì

檢查配置文件是否正què

重載配置前需要檢查配置文件是否正què,使用以下命令檢查配置文件是否正què

1
sudo named-checkconf /etc/bind/named.conf

如果配置文件正què,則不會有任何輸chū,如果配置文件有錯,則會輸出錯誤信,需要根據錯誤信息修改配置文jiàn,修改完成後再次檢查配置文件是否正què,直到沒有錯誤信息爲zhǐ

檢查區域文件是否正què

此外還需要檢查區域文件是否正què,使用以下命令檢查區域文件是否正què,請注意替換域míng

1
sudo named-checkzone yjz.hk /var/cache/bind/yjz.hk

如果區域文件正què,您將會看到如下輸chū

1
2
zone yjz.hk/IN: loaded serial 2023112702
OK

如有,請根據錯誤信息修改區域文jiàn,修改完成後再次檢查區域文件是否正què,直到沒有錯誤信息爲zhǐ

重載配zhì

配置文件檢查完成hòu,使用以下命令重載配zhì

1
sudo systemctl reload BIND 9

chá Slave/Secondary 區域是否正cháng

配置完成hòu,需要檢chá Slave/Secondary 區域是否正常同

CloudNS 檢chá Slave/Secondary 區域是否正常同

請點擊區域控制面板中de檢查 SOA,查kàn SOA 記錄是否和zhǔ DNS 服務器保持一zhì,如下圖所shì
檢查 SOA

NS1 (NSONE) 檢chá Slave/Secondary 區域是否正常同

請點擊區域控制面板中deZONE SETTINGS,查kànSECONDARY ZONE STATUS是否wèiOK,以SERIAL是否和zhǔ DNS 服務器保持一zhì,如下圖所shì
SECONDARY ZONE STATUS

前往域míng註冊商修改域名 DNS 服務器地zhǐ

請前往域míng註冊商修改域名 DNS 服務器地zhǐ,地址需要 NS 記錄保持一zhì,具體操作方法請參考域名註冊商提供的文dàng,這裏不再贅shù。使yòng Vanitydns 請在完成後續配置後再修改域míng DNS 服務器地zhǐ,否則可能會遇到異常操zuò

,相關的配置已經完chéng,如您不需要開 DNSSEC、不需要使用自己的域名作wèi DNS 服務器地zhǐ,那到此結shù;如果你需要相關的配zhì,那請看後續操zuò

後續操zuò(可xuǎn

DNSSEC

DNSSEC 是一種用於保 DNS 服務器免shòu DNS 欺騙的技shù,DNSSEC 通過數字簽名的方式來驗zhèng DNS 服務器的響應是否被篡gǎi,從而保zhèng DNS 服務器de響應是可信的,關於其原,這裏不再贅shù

gǎi BIND 9 配置文jiàn

配置文件路jìng:/etc/bind/named.conf.local,需要在原有配置文件中添jiādnssec-policyinline-signingzhì,添加完如下所shì

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
zone "yjz.hk" {
type primary;
file "/var/cache/bind/yjz.hk";
dnssec-policy default;
inline-signing yes;
allow-transfer {
109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79;
185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196;
2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6;
2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns
192.135.223.10; //NS1
};
also-notify {
109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79;
185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196;
2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6;
2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns
192.135.223.10; //NS1
};
};

zài BIND 9 配zhì

配置文件修改完成hòu,使用以下命令重載配zhì

1
sudo systemctl reload BIND 9

rán,重載前記得按上面的方法檢查配置文件是否正確ó~

DNSSEC 相關信

我們需要獲 DNSKEY 或zhě DS 記,以 NSEC3 記,這些記錄用於在域名註冊商處配zhì DNSSEC, yjz.hk 爲,獲 DNSSKEY DS 記錄的命令如xià

1
2
cd /var/cache/bind
ls

通常您將會在輸出中看到類似K+域名+數字+數字.key key 結尾文jiàn,例Kyjz.hk.+013+383xx.key,DNSKEY 記錄 DS 記錄都在該文件zhōng:

大多域名註冊商目前都需yào DS 記,但是也有少數域名註冊商需yào DNSKEY 記,建議根據實際情況選擇配zhì DNSKEY 記錄huò DS 記,如果您不知道域名註冊商需要哪種記,請聯繫域名註冊商客

DS 記錄的命令如xià

1
dnsssec-dsfromkey -2 Kyjz.hk.+013+383xx.key

通常您將會看到類似於以下輸chū

1
yjz.hk. IN DS 38356 13 2 25FAD7782FB5654CE99D71F8D82EC690FC1640976D306062BD118E5005xxxxxxx

將其在域名註冊商配置即,如您不會配zhì,可以聯繫域名註冊商客,將其提供給客服協助配zhì

DNSKEY 記錄的命令如xià

1
cat Kyjz.hk.+013+383xx.key

通常您將會看到類似於以下輸chū

1
2
3
4
5
6
; This is a key-signing key, keyid xxxxx, for yjz.hk.
; Created: xxxxxxxxxxxxxxxxxxx
; Publish: xxxxxxxxxxxxxxxxxxx
; Activate: xxxxxxxxxxxxxxxxxx
; SyncPublish: xxxxxxxxxxxxxxx
yjz.hk. 3600 IN DNSKEY 257 3 13 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

最後一行則wèi DNSKEY 記,將其在域名註冊商配置即,如您不會配zhì,可以聯繫域名註冊商客,將其提供給客服協助配zhì

CloudNS NS1 (NSONE) 都會自動從zhǔ DNS 服務器同 DNSSEC 相關信,所以您無需再去手動配zhì

chá DNSSEC 是否正cháng

在註冊商完成配置hòu,需要檢chá DNSSEC 是否正cháng,您可訪wènhttps://dnsviz.net/,輸入您的域名進行檢chá

使用自己的域名作wèi DNS 服務器地zhǐ(Vanitydns)

jiàn Glue record

如您需要使用自己的域名作wèi dns 服務,則需要在域名註冊商處創jiàn Glue record,Glue record 是指將域名 IP 地址綁定的記,用於解決域名解析時的循環依賴問,例:域míng yjz.hk de NS 服務器地址wèi ns1.vanitydns.com.,ns2.vanitydns.com.,ns3.vanitydns.org.,ns4.vanitydns.org.,那麼在解 yjz.hk shí,需要先解 ns1.vanitydns.com.,ns2.vanitydns.com.,ns3.vanitydns.org.,ns4.vanitydns.org.,然後再解 yjz.hk,這樣就會出現循環依賴問,所以我們需要在域名註冊商處創jiàn Glue record,jiāng ns1.vanitydns.com.,ns2.vanitydns.com.,ns3.vanitydns.org.,ns4.vanitydns.org. IP 地址綁dìng,這樣在解 yjz.hk shí,就可以直接解析dào ns1.vanitydns.com.,ns2.vanitydns.com.,ns3.vanitydns.org.,ns4.vanitydns.org. de IP 地zhǐ,從而解決循環依賴問

Glue record 相關信

前往註冊商創jiàn Glue record 之qián,我們需要獲 dns 服務器對應de IP 地zhǐ

CloudNS 獲 dns 服務器對應de IP 地zhǐ

wǎng CloudNS 區域控制面bǎn,點基礎設置,記錄xià可用的名稱服務器de IP 地zhǐ,如下圖所shì
可用的名稱服務器

NS1 (NSONE) 獲 dns 服務器對應de IP 地zhǐ

NS1 沒有直接提gōng IP 地zhǐ,需要使yòng nslookup 命令獲 dns1.p01.nsone.net. 爲,獲 IP 地址的命令如xià

1
nslookup dns1.p01.nsone.net.

通常您將會看到類似於以下輸chū

1
2
3
4
5
6
7
8
9
rttw@zach:~$ nslookup dns1.p01.nsone.net.
Server: 192.168.0.1
Address: 192.168.0.1#53

Non-authoritative answer:
Name: dns1.p01.nsone.net
Address: 198.51.44.1
Name: dns1.p01.nsone.net
Address: 2620:4d:4000:6259:7:1:0:1

zhōng Address wèi IP 地zhǐ,將其記錄下lái,以備後yòng

前往註冊商創jiàn Glue record

dynadot 爲,前往域名管理控制tái,點服務器,點註冊域名服務器,填寫域名 IP 地zhǐ,如下圖所shì
註冊域名服務器
註冊域名服務器

  • 主機名chēng:填寫您用來提gōng DNS 服務的域míng ns4.vanitydns.org
  • IP 地zhǐ:填寫您用來提gōng DNS 服務de域名對應的 IP 地zhǐ185.136.96.79,注 dynadot 創建時只能填寫一 IP 地zhǐ,可在後續修改繼續添jiā
  • jiā DNS 服務商總共yǒu 16 IP 地zhǐ(不hánCloudNS免fèiIP),如何將zhè 16 IP 地址分散到四 NS 服務器域名由你自己來決dìng,筆者的做法shì CloudNS 提供de 8 IP 地zhǐ,分配給lens1.vanitydns.comns2.vanitydns.com,NS1 (NSONE) 提供de 8 IP 地zhǐ,分配給lens3.vanitydns.orgns4.vanitydns.org
  • NS 服務器域名都需要註 Glue record,否則會出現循環依賴問
  • 在某些註冊shāng,Glue Record 被稱wèi DNS Host, 騰訊yún

創建區域文jiàn

jiàn區域文件的方法與前面創建 yjz.hk 區域文件的方法相tóng,此處不再贅shù vanitydns.org 爲,創建的區域文件如xià

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ORIGIN vanitydns.org.
@ 180 IN SOA ns3.vanitydns.org. admin.vanitydns.com. 2023112702 3600 180 1209600 180
ns3 86400 IN A 198.51.44.1
ns3 86400 IN A 198.51.45.1
ns3 86400 IN A 47.107.117.38
ns4 86400 IN A 198.51.44.65
ns4 86400 IN A 198.51.45.65
ns4 86400 IN A 129.211.27.223
ns3 86400 IN AAAA 2620:4d:4000:6259:7:1:0:1
ns3 86400 IN AAAA 2a00:edc0:6259:7:1:0:0:2
ns4 86400 IN AAAA 2620:4d:4000:6259:7:1:0:3
ns4 86400 IN AAAA 2a00:edc0:6259:7:1:0:0:4
@ 86400 IN NS ns3.vanitydns.org.
@ 86400 IN NS ns4.vanitydns.org.
  • A/AAAA記錄指向de IP 需要 Glue record 中填寫de IP 地址保持一zhì
  • NS 記錄指向所對應的域míng,需要 Glue record 中填寫的域名保持一zhì
  • 在創建wánvanitydns.org區域文件hòu,也別忘以相同的辦法了配zhìvanitydns.com區域文jiàn,否則會出現循環依賴問

gǎi BIND 9 配置文jiàn

配置文件路jìng/etc/bind/named.conf.local,需要在原有配置文jiàn中添加這兩個新的區域文件,如下所shì

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
zone "vanitydns.com" {
type primary;
file "/var/named/vanitydns.com";
dnssec-policy default;
inline-signing yes;
allow-transfer {
109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79;
185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196;
2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6;
2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns
213.239.242.238; 213.133.105.6; 193.47.99.3; 2a01:4f8:0:a101::a:1; 2a01:4f8:d0a:2004::2; 2001:67c:192c::add:a3; //hetzner
47.107.117.38; 129.211.27.223; //CN
192.135.223.10; //NS1
};
also-notify {
109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79;
185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196;
2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6;
2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns
213.239.242.238; 213.133.105.6; 193.47.99.3; 2a01:4f8:0:a101::a:1; 2a01:4f8:d0a:2004::2; 2001:67c:192c::add:a3; //hetzner
47.107.117.38; 129.211.27.223; //CN
192.135.223.10; //NS1
};
};
zone "vanitydns.org" {
type primary;
file "/var/named/vanitydns.org";
dnssec-policy default;
inline-signing yes;
allow-transfer {
109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79;
185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196;
2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6;
2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns
192.135.223.10; //NS1
};
also-notify {
109.201.133.196; 108.62.121.219; 185.10.17.44; 185.206.180.140; 185.136.96.79;
185.136.97.79; 185.136.98.79; 185.136.99.79; 185.206.180.205; 2a00:1768:1001:9::196;
2604:9a00:2100:b000:1::1; 2a07:8dc0:19::5d:37ff:fea5:bacd; 2a0b:1640:1:1:1:1:762:9aa6;
2a06:fb00:1::1:79; 2a06:fb00:1::2:79; 2a06:fb00:1::3:79; 2a06:fb00:1::4:79; 2a0b:1640:1:3::13; // cloudns
192.135.223.10; //NS1
};
};

jiàn Slave/Secondary 區

參照前面的步zhòu,前wǎng CloudNS NS1 創jiàn Slave/Secondary 區,此處不再贅shù

zài BIND 9 配zhì

配置文件修改完成hòu,使用以下命令重載配zhì

1
sudo systemctl reload BIND 9

rán,重載前記得按上面的方法檢查配置文件是否正確ó~

chá Slave/Secondary 區域是否正cháng

參照前面的步zhòu,檢chá Slave/Secondary 區域是否正常同,此處不再贅shù

前往域míng註冊商修改域名 DNS 服務器地zhǐ

請前往域míng註冊商修改域名 DNS 服務器地zhǐ,地址需要 NS 記錄保持一zhì,具體操作方法請參考域名註冊商提供的文dàng,這裏不再贅shù

  • :請分別修gǎivanitydns.comvanitydns.orgde DNS 服務器地址hòu,再去修gǎiyjz.hkde DNS 服務器地zhǐ,否則可能會遇到異常操zuò

常見問

  1. 看完之後感覺有點měng
    shí,這文章寫的有點不適合小bái,遇到任何問題發郵件或者前wǎng GitHub 倉 issue 都可
  2. gǎi DNS 服務器失bài
    看起來大概是下面這yàng,如果你是騰訊雲註冊的域míng,可在騰訊雲域名控制檯找dào“技術交流qún”點擊掃碼加羣尋求幫zhù,其他域名服務商可以給筆者發郵件或者前wǎng Github 倉 issue。
    修改失敗