緣起
我廠(chǎng)原來(lái)的權(quán)威 DNS 服務(wù)器放在阿里云上的(三個(gè)完全不同的節(jié)點(diǎn)每個(gè)節(jié)點(diǎn)一臺(tái)),但現(xiàn)在這幾個(gè)節(jié)點(diǎn)要撤了,所以這些個(gè)權(quán)威 DNS 服務(wù)器必須要要遷往別處了。
技術(shù)背景
DNS架構(gòu)
DNS 的結(jié)構(gòu)管理就像一個(gè)倒著的大樹(shù),上一級(jí)的權(quán)威服務(wù)器上可以把自己下一級(jí)的管理權(quán)通過(guò) DNS 紀(jì)錄里的 NS 紀(jì)錄(NS 這里是 nameserver 的意思)指派給別的服務(wù)器(這個(gè)服務(wù)器就叫做“權(quán)威服務(wù)器”)
glue record
由于往往會(huì)把類(lèi)似于 xxx.com 這種域的 NS 紀(jì)錄指向 ns1.xxx.com、ns2.xxx.com 這種紀(jì)錄,而這種紀(jì)錄最終指向的 IP 地址,又是需要通過(guò) ns1.xxx.com、ns2.xxx.com 這兩臺(tái)機(jī)器來(lái)解析,這樣就陷入了死循環(huán),為了避免這種問(wèn)題的發(fā)生,.com 和 .net 域出了一種新的策略:所以成為 NS 紀(jì)錄的域名(類(lèi)似上面例子中的 ns1.xxx.com 和 ns2.xxx.com),必須先要注冊(cè)到 Verisign 的庫(kù)里,也就是說(shuō),需要先能在 Verisign 的這里 (點(diǎn)“Name Server”再輸入查詢(xún))查的到的域名,才能作為某個(gè)域的 NS 紀(jì)錄。Verisign 這個(gè)庫(kù)里的這些紀(jì)錄,就叫做“glue record”。
至于怎么修改 glue record 或者注冊(cè)新的 glue record,理論上來(lái)講,需要通過(guò)你自己域名的 registrar 的系統(tǒng)。
問(wèn)題又來(lái)了,誰(shuí)是你的域名的 registrar 呢?一般來(lái)講,如果你沒(méi)遷移過(guò)域名托管的話(huà),那么你在哪里注冊(cè)的域名,你的 registrar 就是誰(shuí),比如 GoDaddy。
這里順便鄙視一下國(guó)內(nèi)很多 registrar:維護(hù) glue record 需要先續(xù)費(fèi) 5 年,掉錢(qián)眼兒里去了吧!
實(shí)施步驟
情況說(shuō)明
- 我司使用的域有好多,但 NS 紀(jì)錄都是指向的 ns1.xa.com、ns2.xa.com 和 ns3.xa.com。
- 由于 xa.com 這個(gè)域名的 registrar 在國(guó)內(nèi),需要續(xù)費(fèi) 5 年才能使用 glue record 功能,所以果斷另外啟用 registrar 在國(guó)外的另外一個(gè)域名 xb.com 來(lái)做 glue record:ns1.xb.com、ns2.xb.com 和 ns3.xb.com。最后 NS 紀(jì)錄也會(huì)用這三個(gè)域名
具體步驟
原理弄明白了,做起來(lái)就要簡(jiǎn)單有條理很多:
- 首先是先部署好新的 DNS 服務(wù)器(三臺(tái)),并將域名:ns1.xb.com、ns2.xb.com 和 ns3.xb.com 分別指向新的 DNS 服務(wù)器
- 修改我司域所有 6 臺(tái)權(quán)威服務(wù)器的 NS 紀(jì)錄,加入三條:ns1.xb.com、ns2.xb.com 和 ns3.xb.com;同時(shí)在域 xb.com 的 registrar 的系統(tǒng)里加上新的 glue record:ns1.xb.com、ns2.xb.com 和 ns3.xb.com
- 等 DNS 解析記錄收斂的差不多(客戶(hù)端查 NS 紀(jì)錄能出所有老的和新的 6 臺(tái) DNS 服務(wù)器);這時(shí),在 Verisign 的庫(kù)里 (點(diǎn)“Name Server”再輸入查詢(xún))能查詢(xún)到 ns1.xb.com、ns2.xb.com 和 ns3.xb.com 了
- 在 registrar (上級(jí))的系統(tǒng)里修改我司域的 NameServer 由 ns1.xa.com、ns2.xa.com 和 ns3.xa.com 到 ns1.xb.com、ns2.xb.com 和 ns3.xb.com
- 等上級(jí)(registrar)里關(guān)于我司域的 NameServer 的紀(jì)錄改為 ns1.xb.com、ns2.xb.com 和 ns3.xb.com 之后
- 修改我司域所有 6 臺(tái)權(quán)威服務(wù)器上的 NS 紀(jì)錄,刪除掉 ns1.xa.com、ns2.xa.com 和 ns3.xa.com 三臺(tái),留下 ns1.xb.com、ns2.xb.com 和 ns3.xb.com 三臺(tái)
- 在三臺(tái)老 DNS 服務(wù)器的 query log,發(fā)現(xiàn)差不多沒(méi)有請(qǐng)求過(guò)來(lái)以后,把服務(wù)停掉即可。
常見(jiàn)問(wèn)題
- 千萬(wàn)不能直接在權(quán)威服務(wù)器上修改 ns1.xa.com、ns2.xa.com 和 ns3.xa.com 指向新 DNS 服務(wù)器