2

既存のプライベート クラウドにサービスを提供する DNS サービス (さまざまな DNS 操作の自動化) を作成しようとしています。これを行うためのオプションとアイデアを探しています。これを行うための既存の Java API はありますか? 提案してください。

可能な解決策について調査を行いました。DNSJavaが優れたソリューションであることがわかりました。しかし、ドキュメントや例はあまり見つかりませんでした。以下は、答えられると現在の問題を解決できるいくつかの質問です。

  1. ゾーン ファイルに NS または A レコードを追加する方法は?
  2. ゾーンファイルの内容を印刷するには?

テスト目的でローカル DNS サーバーを作成しました。ローカルホストに関する例が示されていると、非常に役に立ちます。

ありがとうございました!

4

1 に答える 1

3

多くの調査の後、DNSJavaでゾーンファイルを変更する方法を見つけました。Bind9 をサーバーにセットアップする必要があります。必要なゾーン ファイルは、基本情報を使用して作成する必要があります。このセットアップが完了すると、ゾーン ファイル内のレコードの追加と削除は簡単です。Bind9 の TSIG キーを生成するには、このページを参照してください。実際にレコードを追加できるコードを以下に示します。

Name zoneName = null; 
String domain = "your.domain";
String host = "hostname";
DNSRecordType type = DNSRecordType.A;
int ttl = 600;

Lookup lookup = new Lookup(Name.fromString("your.domain"));
Record [] records = lookup.run();
if(records != null) {
   zoneName = records[0].getName();
}
if(zoneName != null) {
    Name hostName = Name.fromString("hostname", zoneName);
    Update update = new Update(zoneName);
    update.add(hostName, Type.value(type.toString()), 600,
                  "192.168.2.50");
    Resolver resolver = new SimpleResolver();
    resolver.setTCP(true);
    resolver.setTSIGKey(new TSIG("your.domain.",
                 "z0pll56C4cwLXYd2HG6WsQ=="));

    Message response1 = resolver.send(update);
    response = response1.getHeader().toString();
}
于 2013-09-14T00:56:20.397 に答える