Knot DNSRTT module


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.


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


  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

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


     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
     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