Knot DNSRTT module

Development

Our 2021 Knot DNSRTT was developed by Pithayuth Charnsethikul, as part of a CSCI651 research project, advised by John Heidemann, in Fall 2020.

The template of DNSRTT is derived from the Knot RRL module.

Description

DNSRTT provides the feature to enable TCbit whenever a DNS server needs extra tcp connections for measuring RTT.

Configuration

  1. Install Knot DNS following the instructions in Knot DNS documentation.

  2. Generated a configuration file from LocalRoot.

  3. Enable DNSRTT by setting the mod-dnsrtt module globally or per zone.

    An example of enabling DNSRTT in knot.conf

     mod-dnsrtt:
       - id: default
         tcp-need: 5
         slip: 2
         interval: 1800
         experiment: on
    
     template:
       - id: default
         global-module: mod-dnsrtt/default
    

    Arguments

     id: STR
     A module identifier
    
     tcp-need: INT (Required)
     Number of TCP connections for each client network (IPv4/24, IPv6/56) that a DNS server expects for each interval
    
     slip: INT, table-size: INT, whitelist: ADDR[/INT] | ADDR-ADDR ...
     refer to https://www.knot-dns.cz/docs/2.4/html/reference.html#mod-rrl
    
     interval: INT
     interval in seconds
     Default: 3600
    
     experiment: BOOL
     if enabled, DNSRTT disables TCbit---doesn't send an actual TC bit--- but keep increasing the counter like it does.
     Otherwise, an actual TC bit is sent to a client.
     Default: on