web-dev-qa-db-ja.com

内部ネットワークと外部ネットワークからドメインを解決するときに、ドメインを別のIPに解決するにはどうすればよいですか?

そのため、BINDとDnsmasqを調べましたが、これを理解できませんでした。

DigitalOceanにいくつかのサーバーがあり、それらは同じデータセンターにあります。内部IPを使用して、より良いイントラネットワークpingと(明らかに、無料のプライベートネットワークトラフィック)を取得できるようにしたいと考えています。次の2つのサーバーがあるとします。

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

これは可能ですか?はいの場合、どのように。

4
Arnav Gupta

BIND 9では、複数の「ビュー」を定義できます。実際には、BINDはDNSゾーンの1つのバージョンを指定されたクライアントに表示し、別のバージョンを他のクライアントに表示します。これはまさにあなたが必要とするもののようです。

以下は、BIND 9でのビューの使用に関する素晴らしい紹介です。 https://kb.isc.org/article/AA-00851/0/Understanding-views-in-BIND-9-by-example.html

しかし、あなたの場合、外部ビューは次のように言うでしょう:

match-clients { any; };

ネットワークセグメントを指定するのではなく、.

16
telcoM

少なくとも3つのソリューションがあります。

  • / etc/hostsを使用してDNS回答を上書きできます
  • 2番目のtldを使用できます。たとえば、account.codingblocks.comは222.222.222.222を提供し、account.example.mytldは10.10.10.2を提供します
  • 異なる結果が得られる2つの異なるDNSサーバー(1つはプライベートと内部、もう1つはパブリック)を使用できます。
2
bgtvfr