header

Source

header modifies the header for queries and responses.

Description

header ensures that the flags are in the desired state for queries and responses. The modifications are made transparently for the client and subsequent plugins.

Syntax

header {
    [SELECTOR] ACTION FLAGS...
    [SELECTOR] ACTION FLAGS...
}
  • SELECTOR defines if the action should be applied on query or response. In future CoreDNS version the selector will be mandatory. For backwards compatibility the action will be applied on response if the selector is undefined.

  • ACTION defines the state for DNS message header flags. Actions are evaluated in the order they are defined so last one has the most precedence. Allowed values are:

    • set
    • clear
  • FLAGS are the DNS header flags that will be modified. Current supported flags include:

    • aa - Authoritative(Answer)
    • ra - RecursionAvailable
    • rd - RecursionDesired

Examples

Make sure recursive available ra flag is set in all the responses:

. {
    header {
        response set ra
    }
}

Make sure “recursion available” ra and “authoritative answer” aa flags are set and “recursion desired” is cleared in all responses:

. {
    header {
        response set ra aa
        response clear rd
    }
}

Make sure “recursion desired” rd is set for all subsequent plugins::

. {
    header {
        query set rd
    }
}