Skip to content

Server

ServerBlock pydantic-model

Bases: BindBaseModel

Server configuration block for BIND.

Grammar:

server <netprefix> {
    bogus <boolean>;
    edns <boolean>;
    edns-udp-size <integer>;
    edns-version <integer>;
    keys <server_key>;
    max-udp-size <integer>;
    notify-source ( <ipv4_address> | * );
    notify-source-v6 ( <ipv6_address> | * );
    padding <integer>;
    provide-ixfr <boolean>;
    query-source [ address ] ( <ipv4_address> | * );
    query-source-v6 [ address ] ( <ipv6_address> | * );
    request-expire <boolean>;
    request-ixfr <boolean>;
    request-nsid <boolean>;
    require-cookie <boolean>;
    send-cookie <boolean>;
    tcp-keepalive <boolean>;
    tcp-only <boolean>;
    transfer-format ( many-answers | one-answer );
    transfer-source ( <ipv4_address> | * );
    transfer-source-v6 ( <ipv6_address> | * );
    transfers <integer>;
};

Show JSON schema:
{
  "description": "Server configuration block for BIND.\n\nGrammar:\n```\nserver <netprefix> {\n    bogus <boolean>;\n    edns <boolean>;\n    edns-udp-size <integer>;\n    edns-version <integer>;\n    keys <server_key>;\n    max-udp-size <integer>;\n    notify-source ( <ipv4_address> | * );\n    notify-source-v6 ( <ipv6_address> | * );\n    padding <integer>;\n    provide-ixfr <boolean>;\n    query-source [ address ] ( <ipv4_address> | * );\n    query-source-v6 [ address ] ( <ipv6_address> | * );\n    request-expire <boolean>;\n    request-ixfr <boolean>;\n    request-nsid <boolean>;\n    require-cookie <boolean>;\n    send-cookie <boolean>;\n    tcp-keepalive <boolean>;\n    tcp-only <boolean>;\n    transfer-format ( many-answers | one-answer );\n    transfer-source ( <ipv4_address> | * );\n    transfer-source-v6 ( <ipv6_address> | * );\n    transfers <integer>;\n};\n```",
  "properties": {
    "comment": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional comment for the server block",
      "title": "Comment"
    },
    "netprefix": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv4network",
          "type": "string"
        },
        {
          "format": "ipv6network",
          "type": "string"
        }
      ],
      "description": "Network prefix for the remote server",
      "title": "Netprefix"
    },
    "bogus": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Mark remote server as bogus",
      "title": "Bogus"
    },
    "edns": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Use EDNS0 when communicating with remote server",
      "title": "Edns"
    },
    "provide_ixfr": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Provide IXFR to this server",
      "title": "Provide Ixfr"
    },
    "request_expire": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Request EDNS EXPIRE value",
      "title": "Request Expire"
    },
    "request_ixfr": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Request IXFR from this server",
      "title": "Request Ixfr"
    },
    "request_nsid": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Send NSID option in queries to this server",
      "title": "Request Nsid"
    },
    "require_cookie": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Require valid server cookie from this server",
      "title": "Require Cookie"
    },
    "send_cookie": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Send COOKIE EDNS option to this server",
      "title": "Send Cookie"
    },
    "tcp_keepalive": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Add EDNS TCP keepalive to messages over TCP",
      "title": "Tcp Keepalive"
    },
    "tcp_only": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Use TCP transport only",
      "title": "Tcp Only"
    },
    "edns_udp_size": {
      "anyOf": [
        {
          "ge": 0,
          "le": 512,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "EDNS UDP buffer size for this server",
      "title": "Edns Udp Size"
    },
    "edns_version": {
      "anyOf": [
        {
          "ge": 0,
          "le": 255,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum EDNS version to send to this server",
      "title": "Edns Version"
    },
    "max_udp_size": {
      "anyOf": [
        {
          "ge": 0,
          "le": 512,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum UDP message size for this server",
      "title": "Max Udp Size"
    },
    "padding": {
      "anyOf": [
        {
          "ge": 0,
          "le": 512,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "EDNS Padding block size",
      "title": "Padding"
    },
    "transfers": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Maximum concurrent inbound transfers from this server",
      "title": "Transfers"
    },
    "transfer_format": {
      "anyOf": [
        {
          "enum": [
            "many-answers",
            "one-answer"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Zone transfer format for this server",
      "title": "Transfer Format"
    },
    "keys": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "TSIG key for transaction security",
      "title": "Keys"
    },
    "notify_source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv4",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv4 source address for NOTIFY messages",
      "title": "Notify Source"
    },
    "notify_source_v6": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv6",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv6 source address for NOTIFY messages",
      "title": "Notify Source V6"
    },
    "query_source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv4",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv4 source address for queries",
      "title": "Query Source"
    },
    "query_source_v6": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv6",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv6 source address for queries",
      "title": "Query Source V6"
    },
    "transfer_source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv4",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv4 source address for zone transfers",
      "title": "Transfer Source"
    },
    "transfer_source_v6": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "format": "ipv6",
          "type": "string"
        },
        {
          "const": "*",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IPv6 source address for zone transfers",
      "title": "Transfer Source V6"
    }
  },
  "required": [
    "netprefix"
  ],
  "title": "ServerBlock",
  "type": "object"
}

Fields:

Validators:

netprefix pydantic-field

netprefix: net_prefix_BIND

Network prefix for the remote server

bogus pydantic-field

bogus: boolean_BIND | None = None

Mark remote server as bogus

edns pydantic-field

edns: boolean_BIND | None = None

Use EDNS0 when communicating with remote server

provide_ixfr pydantic-field

provide_ixfr: boolean_BIND | None = None

Provide IXFR to this server

request_expire pydantic-field

request_expire: boolean_BIND | None = None

Request EDNS EXPIRE value

request_ixfr pydantic-field

request_ixfr: boolean_BIND | None = None

Request IXFR from this server

request_nsid pydantic-field

request_nsid: boolean_BIND | None = None

Send NSID option in queries to this server

require_cookie: boolean_BIND | None = None

Require valid server cookie from this server

send_cookie: boolean_BIND | None = None

Send COOKIE EDNS option to this server

tcp_keepalive pydantic-field

tcp_keepalive: boolean_BIND | None = None

Add EDNS TCP keepalive to messages over TCP

tcp_only pydantic-field

tcp_only: boolean_BIND | None = None

Use TCP transport only

edns_udp_size pydantic-field

edns_udp_size: integer_BIND | None = None

EDNS UDP buffer size for this server

edns_version pydantic-field

edns_version: integer_BIND | None = None

Maximum EDNS version to send to this server

max_udp_size pydantic-field

max_udp_size: integer_BIND | None = None

Maximum UDP message size for this server

padding pydantic-field

padding: integer_BIND | None = None

EDNS Padding block size

transfers pydantic-field

transfers: integer_BIND | None = None

Maximum concurrent inbound transfers from this server

transfer_format pydantic-field

transfer_format: (
    Literal["many-answers", "one-answer"] | None
) = None

Zone transfer format for this server

keys pydantic-field

keys: server_key_BIND | None = None

TSIG key for transaction security

notify_source pydantic-field

notify_source: ip_v4_address_BIND | Literal["*"] | None = (
    None
)

IPv4 source address for NOTIFY messages

notify_source_v6 pydantic-field

notify_source_v6: (
    ip_v6_address_BIND | Literal["*"] | None
) = None

IPv6 source address for NOTIFY messages

query_source pydantic-field

query_source: ip_v4_address_BIND | Literal["*"] | None = (
    None
)

IPv4 source address for queries

query_source_v6 pydantic-field

query_source_v6: (
    ip_v6_address_BIND | Literal["*"] | None
) = None

IPv6 source address for queries

transfer_source pydantic-field

transfer_source: (
    ip_v4_address_BIND | Literal["*"] | None
) = None

IPv4 source address for zone transfers

transfer_source_v6 pydantic-field

transfer_source_v6: (
    ip_v6_address_BIND | Literal["*"] | None
) = None

IPv6 source address for zone transfers

comment pydantic-field

comment: str | None = None

Optional comment for the server block

validate_tcp_only_usage pydantic-validator

validate_tcp_only_usage() -> ServerBlock

Validate TCP-only related options.

validate_tcp_keepalive_usage pydantic-validator

validate_tcp_keepalive_usage() -> ServerBlock

Validate TCP keepalive usage.