Domain-Name-System
在 Bind 中設置裸 TLD
我想要一個非常短的內部 TLD
go
,指向託管 URL 重定向應用程序的網路伺服器。例如,使用者可以鍵入go/chat
或go/news
無需記住確切的 URL 是什麼。我已經使用區域文件設置了我的內部 DNS 伺服器,如下所示:
$ttl 3600 go. IN SOA localhost. dns.company.corp. ( 1597456469 3600 600 1209600 3600 ) go. IN NS localhost. @ IN A 10.0.88.10
在使用 的 Windows 主機
nslookup
上,這似乎可以正常工作:>nslookup go Server: dns1 Address: 10.0.40.10 Non-authoritative answer: Name: go Address: 10.0.88.10
(在 Linux 上也有類似的結果)
但是,我嘗試過的任何網路瀏覽器都無法正確解析此名稱。Chrome、Firefox、Edge 和 IE 都表現得好像這個
http://go
域名不存在,也就是說,除非我在地址 (http://go.
) 上包含一個額外的句點,它可以正確解析。我已經嘗試了基礎知識。刷新DNS,重新啟動等。
允許這樣的“裸”TLD 可解析的正確方法是什麼?這甚至可能嗎?
您的瀏覽器在瀏覽 http://go 時顯示“不存在的域”錯誤的原因是因為它們將 DNS 後綴附加到主機名(無論存在,還是瀏覽器附加一個空後綴)。一個仍然被附加。
要實現您想要做的,您需要添加 . 到 URL 的末尾,因此瀏覽器將其視為絕對地址或配置 DNS 區域,例如 example.internal,將 Web 伺服器的主機名設置為 go.example.internal,將 PC 上的 DNS 後綴配置為 example.internal (手動或通過 DHCP),然後您可以瀏覽到 http://go
或者,您可以將主機名“go”添加到需要連接到它的每台 PC 的主機文件中。