Domain-Name-System

從內部網路和外部網路解析時,如何使域解析為不同的 IP?

  • January 2, 2018

所以我查看了 BIND 和 Dnsmasq 並無法弄清楚這一點。

我在 DigitalOcean 上有幾台伺服器,它們位於同一個數據中心。我希望能夠使用內部 IP 來獲得更好的內部網路 ping 和(顯然,免費的專用網路流量)。給定以下兩台伺服器:

Name   Public IP          Private IP
srv1   192.0.2.1          10.10.10.1
srv2   198.51.100.2       10.10.10.2

從外部網路(比如我的筆記型電腦)探勘時,我想要這樣的東西

account.codingblocks.com. 79    IN  CNAME   srv2.cb.lk.
srv2.cb.lk.               85844 IN  A       198.51.100.2

從 srv1 內部探勘時,我想要這個

account.codingblocks.com. 79    IN  CNAME   srv2.cb.lk.
srv2.cb.lk.               85844 IN  A       10.10.10.2

這可能嗎 ?如果是,如何。

在 BIND 9 中,您可以定義多個“視圖”:實際上,BIND 將一個版本的 DNS 區域顯示給指定的客戶端,而將另一個版本顯示給其他客戶端。這似乎正是您所需要的。

這是在 BIND 9 中使用視圖的一個很好的介紹: https ://kb.isc.org/article/AA-00851/0/Understanding-views-in-BIND-9-by-example.html

但是,在您的情況下,外部視圖會說:

match-clients { any; };

而不是指定任何網段。

至少有3個解決方案:

  • 您可以使用 /etc/hosts 覆蓋 DNS 答案
  • 您可以使用第二個 tld,例如 account.codingblocks.com 會給出 222.222.222.222 而 account.example.mytld 會給出 10.10.10.2
  • 您可以擁有 2 個不同的 DNS 伺服器(一個是私有的和內部的,另一個是公共的),它們會產生不同的結果。

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