Domain-Name-System

在水平分割 DNS 的情況下,當查詢 DNS 伺服器不受其控制的域時,DNS 伺服器的行為是否正確?

  • December 19, 2020

因此,我們的雲提供商之一在 VM 之間提供了一個低延遲、零評級的“內部網路”選項。內部網路上的介面位於 10.xxx IP 空間中。當我們的一台伺服器查詢內部網路上另一台伺服器的主機名時,我們希望它解析為內部網路上的地址,而不是導致傳輸記帳的公共可路由地址。

我們已經實現了一個小型伺服器來執行此操作,當源 IP 是 10.xxx IP 時,它將返回內部地址。

我們不想做的是讓我們的內部伺服器成為我們虛擬機的唯一主 DNS 伺服器。我們會讓它成為客戶端列表中的第一個伺服器,然後是一個公共 dns 服務,如 1.1.1.1。

因此,如果在內部 DNS 中查詢 google.com(我們不擁有),我們應該返回給客戶端的正確響應是什麼?我們應該簡單地忽略請求還是應該返回 NxDomain 響應?

感謝您的任何建議!

如果您將伺服器用作遞歸伺服器,它應該以從權威基礎設施解析的正確回復進行響應。如果您返回NXDOMAIN,則 DNS 客戶端信任答案,並且不會繼續訪問其他伺服器。如果您不回復任何內容,那隻會導致不必要的超時延遲。

此外,DNS 客戶端通常沒有理解這種條件解析的功能,但 DNS 伺服器有。因此,要考慮的一個選項是在將執行條件轉發的每台伺服器上安裝本地 DNS 伺服器。在這種情況下,您要配置的唯一 DNS 伺服器resolv.conf將是localhostie 127.0.0.1

這些範例採用 BIND 配置格式,因為您沒有在問題中指定您的風格。

options {
   forwarders { 1.1.1.1; };
}

zone "example.com" {
   type forward;
   forward only;
   forwarders { 10.8.8.8; };
};

或者,如果與內部 DNS 伺服器的連接不穩定,伺服器還可以通過區域傳輸託管內部區域的副本:

zone "example.com" { 
   type slave; 
   file "/etc/bind/db/example.com"; 
   masters { 10.8.8.8; }; 
};

自然,主伺服器也應該允許傳輸。

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