使用DNSJava在私有云中实现DNS自动化

使用DNSJava在私有云中实现DNS自动化,dns,cloud,dnsjava,Dns,Cloud,Dnsjava,我正在尝试创建一个DNS服务(各种DNS操作的自动化)来为我们现有的私有云服务。我正在寻找这样做的选择和想法。是否有任何现有的JavaAPI来实现这一点?请建议 我研究了可能的解决办法。我发现这是一个很好的解决办法。但我没有找到太多的文档/示例。以下是一些问题,回答后可以解决我目前的问题: 如何将NS或A记录添加到区域文件 如何打印区域文件的内容 我已经为测试目的创建了一个本地DNS服务器。如果给出有关localhost的示例,这将非常有用 谢谢大家! 经过大量研究,我找到了一种使用修改区域文件

我正在尝试创建一个DNS服务(各种DNS操作的自动化)来为我们现有的私有云服务。我正在寻找这样做的选择和想法。是否有任何现有的JavaAPI来实现这一点?请建议

我研究了可能的解决办法。我发现这是一个很好的解决办法。但我没有找到太多的文档/示例。以下是一些问题,回答后可以解决我目前的问题:

  • 如何将NS或A记录添加到区域文件
  • 如何打印区域文件的内容
  • 我已经为测试目的创建了一个本地DNS服务器。如果给出有关localhost的示例,这将非常有用


    谢谢大家!

    经过大量研究,我找到了一种使用修改区域文件的方法。应在服务器中设置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();
    }
    

    DNSRecordType
    已不存在,您可能应该替换为
    Type.A
    ,它已返回一个int。