Domain-Name-System
從內部網路和外部網路解析時,如何使域解析為不同的 IP?
所以我查看了 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 伺服器(一個是私有的和內部的,另一個是公共的),它們會產生不同的結果。