私の問題を解決するための合理的な方法があるはずだと思いますが、実装するためのベストプラクティスについていくつかのアドバイスを得ようとしています。
私は最近Webデザイン会社に引っ越しましたが、現在取り組んでいるWebサイトのDNSエントリを偽装できる必要があります。ただし、特定のAレコードのみを上書きし、他のレコードはそのままにして、サイトが機能しているように見せたいと考えています。
つまり、「support.abcd.com」をローカルで解決する必要がありますが、それ以外はすべて実際のサイトに移動します。これにより、ローカルで進行中の作業のみで完全に機能するサイトを設計/デモすることができます。
内部BIND DNSサーバー(9.9.5.dfsg-3)があります。
上記の例に基づいて、ゾーンファイルで「abcd.com」を探すにはどうすればよいですか?
編集:これはうまくいくでしょうか?
IN ns1
abcd.com. IN NS ns1
support.abcd.com. IN A 192.168.1.1
faq.abcd.com. IN A 192.168.1.1
*.abcd.com. IN NS abcd.com <- External?
これがホスト名-> ipルックアップのオーバーライドを処理するだけの場合、セットアップと管理が最も簡単である可能性が高いのは(特に要件が急速に変化している場合)、開発者がローカルに関連する名前を追加することによって通常の解決を単にオーバーライドすることです。 hostsファイルとDNSをそのままにします。
ただし、リゾルバーサーバーとしてBINDを使用してDNSでこれを行う場合、特定の名前のみ(ゾーン全体ではなく)をオーバーライドする必要がある場合は、 Response Policy Zone(RPZ ) 機能。これは、これらの変更を特定のクライアントにのみ影響を与えるために、 views の使用と組み合わせて行うことができます。
私はあなたが具体的に求めている種類のことをする例を含めましたが、物事をオーバーライドする方法の他のすべてのオプションとより完全な例については、上記のリンクされたドキュメントを参照してください。
options {
...
response-policy { zone "development-overrides"; };
};
...
zone "development-overrides" {type master; file "master/development-overrides"; allow-query {none;}; };
参照されるゾーンファイルには通常のマスターファイル構文がありますが、セマンティクスはRPZ固有です( RPZ docs !を参照してください)。
$TTL 1H
@ SOA LOCALHOST. named-mgr.example.com (1 1h 15m 30d 2h)
NS LOCALHOST.
support.example.com A 192.168.1.1
faq.example.com A 192.168.1.1
開発者マシンのホストファイルを変更するか(/etc/hosts
UNIX/LinuxおよびC:\windows\system32\drivers\etc\hosts
(Windowsの場合)またはDNSのビュー設定を使用する場合は、「スプーフィング」する必要があるサブネットを使用してACLを定義し、ビュー内で「match-clients」を使用してそれらのクライアントのみを照合します。
あなたの例については、それはNSフィールドではなくCNAMEフィールドです。