Domain-Name-System

在 Bind 中設置裸 TLD

  • August 15, 2020

我想要一個非常短的內部 TLD go,指向託管 URL 重定向應用程序的網路伺服器。例如,使用者可以鍵入go/chatgo/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 的主機文件中。

http://www.dns-sd.org/TrailingDotsInDomainNames.html

引用自:https://serverfault.com/questions/1030198