Автоматизация DNS в частном облаке с использованием DNSJava
Я пытаюсь создать службу DNS (автоматизацию различных операций DNS) для обслуживания существующего частного облака. Я ищу варианты и идеи, чтобы сделать это. Есть ли какой-либо Java API для этого? Пожалуйста, предложите.
Я сделал исследование возможных решений. Я нашел DNSJava, чтобы быть хорошим решением. Но я не нашел много документации / примеров. Ниже приведены некоторые вопросы, ответы на которые могут решить мои текущие проблемы:
- Как добавить записи NS или A в файлы зоны?
- Как распечатать содержимое файла зоны?
Я создал локальный DNS-сервер для тестирования. Будет очень полезно, если примеры приведены в отношении localhost.
Спасибо!
1 ответ
После долгих исследований я нашел способ изменить файлы зон с помощью DNSJava. Bind9 должен быть настроен на сервере. Необходимые файлы зоны должны быть созданы с основной информацией. Добавление и удаление записи в файле зоны выполняется сразу после того, как мы выполним эту настройку. Пожалуйста, обратитесь к этой странице, чтобы сгенерировать ключ TSIG для Bind9. Код, который может добавить запись, приведен ниже.
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();
}