使用bind& amp;动态DNS输入dnsjava

时间:2016-06-13 16:58:05

标签: java dns bind

我需要使用javadns将主机URL插入绑定DNS区域。我生成了一个TSIG密钥并配置了绑定配置文件。

我不确定DNS区域允许更新问题。我应该输入有效的IP或TSIG密钥吗?

以下是我用javadns实现的代码:

Name zone = Name.fromString("ns1.dns.com.");
Name host = Name.fromString("some.host.com", zone);

Resolver res = new SimpleResolver(dnsIp);
res.setTSIGKey(new TSIG("my_tsig_key", key));
res.setTCP(true);

Update update = new Update(zone);
update.add(host, Type.A, 86400, "1.2.3.4");
Message response = res.send(update);
System.out.println(response);

CONSOLE:

  

;; - >> HEADER<< - opcode:UPDATE,status:NOTAUTH,id:22225 ;;标志:   qr ra; qd:1 an:0 au:0 ad:1 ;; TSIG ok ;;区域:;; ns1.dns.com,   type = SOA,class = IN

     

;;先决条件:

     

;;更新记录:

     

;;其他记录:   ns1.domain.com。 0 ANY TSIG hmac-md5.sig-alg.reg.int。 1465835914 300   16 xXqHHVOp5tOnebnSGynXMQ == NOERROR 0

     

;;邮件大小:116字节

SYSLOG:

  

Jun 13 19:38:34 atar-srv命名[2632]:客户端192.168.200.23#57543 / key   ns1.dns.com:更新区域' dns.com/IN':更新失败:没有   更新区域的权威(NOTAUTH)

1 个答案:

答案 0 :(得分:0)

考虑您的密钥算法很重要。构造器

  

公共TSIG(String KeyName,String keySecret)

正在根据javadoc for dnsjava 使用hmac-md5算法(请查看类TSIG及其构造函数)。 如果要使用其他算法,则应向该构造函数提供算法:

public TSIG(java.lang.String algorithm,
            java.lang.String name,
            java.lang.String key)

,这些是合法的算法值: “ HmacMD5”, “ HmacSHA1”, “ HmacSHA224”, “ HmacSHA256”, “ HmacSHA384”, “ HmacSHA512”