我需要使用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)
答案 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”