Forum Discussion

CaseyW's avatar
3 years ago

Help with Groovy Script for DNSSEC monitoring

There is currently no LogicModule for monitoring DNSSEC. I am trying to create a custom datasource using groovy in order to test DNS utilizing a dnssec key. Problem is, I don't have java/groovy experience. 

I have set 3 properties on my collector device as follows:  dns.resolvers: 8.8.8.8, dns.seckey: <super secret key>, dns.testname: <fqdn.com>

The only thing I really know how to do at this point is to define each of these properties at the beginning of the script as follows:

import org.xbill.DNS.*;

def dnsServers = hostProps.get('dns.resolvers');
def dnsNameToResolve = hostProps.get('dns.testname');
def dnsSecurityKey = hostProps.get('dns.seckey');

Has anyone written anything for this purpose? Any ideas on what I need to do here?

  • 1 hour ago, CaseyW said:

    There is currently no LogicModule for monitoring DNSSEC. I am trying to create a custom datasource using groovy in order to test DNS utilizing a dnssec key. Problem is, I don't have java/groovy experience. 

    I have set 3 properties on my collector device as follows:  dns.resolvers: 8.8.8.8, dns.seckey: <super secret key>, dns.testname: <fqdn.com>

    The only thing I really know how to do at this point is to define each of these properties at the beginning of the script as follows:

    import org.xbill.DNS.*;

    def dnsServers = hostProps.get('dns.resolvers');
    def dnsNameToResolve = hostProps.get('dns.testname');
    def dnsSecurityKey = hostProps.get('dns.seckey');

    Has anyone written anything for this purpose? Any ideas on what I need to do here?

     

    I am not positive you need to store the private key to monitor, but perhaps it can help - I have not tried this myself before.  You probably want to start with some examples like these (Java not Groovy, but should be fairly simple to use for Groovy development):

    https://www.javatips.net/api/org.xbill.dns.dnssec.dnssecexception
    https://github.com/adamfisk/DNSSEC4J/blob/master/src/main/java/org/littleshoot/dnssec4j/DnsSec.java

    Certainly not usable as-is, but good ideas on how to accomplish the goal.