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:
-
netprefix(net_prefix_BIND) -
bogus(boolean_BIND | None) -
edns(boolean_BIND | None) -
provide_ixfr(boolean_BIND | None) -
request_expire(boolean_BIND | None) -
request_ixfr(boolean_BIND | None) -
request_nsid(boolean_BIND | None) -
require_cookie(boolean_BIND | None) -
send_cookie(boolean_BIND | None) -
tcp_keepalive(boolean_BIND | None) -
tcp_only(boolean_BIND | None) -
edns_udp_size(integer_BIND | None) -
edns_version(integer_BIND | None) -
max_udp_size(integer_BIND | None) -
padding(integer_BIND | None) -
transfers(integer_BIND | None) -
transfer_format(Literal['many-answers', 'one-answer'] | None) -
keys(server_key_BIND | None) -
notify_source(ip_v4_address_BIND | Literal['*'] | None) -
notify_source_v6(ip_v6_address_BIND | Literal['*'] | None) -
query_source(ip_v4_address_BIND | Literal['*'] | None) -
query_source_v6(ip_v6_address_BIND | Literal['*'] | None) -
transfer_source(ip_v4_address_BIND | Literal['*'] | None) -
transfer_source_v6(ip_v6_address_BIND | Literal['*'] | None) -
comment(str | None)
Validators:
edns
pydantic-field
¶
edns: boolean_BIND | None = None
Use EDNS0 when communicating with remote 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
pydantic-field
¶
require_cookie: boolean_BIND | None = None
Require valid server cookie from this server
send_cookie
pydantic-field
¶
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
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
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
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
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.