-5852. [func] Add new "load-balance-socket" option to
- enable/disable load balancing of sockets. [GL #3249]
+5852. [func] Add new "reuseport" option to enable/disable load
+ balancing of sockets. [GL #3249]
5843. [bug] When an UPDATE targets a zone that is not configured,
the requested zone name is now logged in the "not
interface-interval 60;\n\
# keep-response-order {none;};\n\
listen-on {any;};\n\
- listen-on-v6 {any;};\n"
-#if HAVE_SO_REUSEPORT_LB
- "\
- load-balance-sockets yes;\n"
-#else
- "\
- load-balance-sockets no;\n"
-#endif
- "\
+ listen-on-v6 {any;};\n\
# lock-file \"" NAMED_LOCALSTATEDIR "/run/named/named.lock\";\n\
match-mapped-addresses no;\n\
max-ixfr-ratio unlimited;\n\
nta-lifetime 3600;\n\
nta-recheck 300;\n\
# pid-file \"" NAMED_LOCALSTATEDIR "/run/named/named.pid\"; \n\
- port 53;\n\
+ port 53;\n"
+#if HAVE_SO_REUSEPORT_LB
+ "\
+ reuseport yes;\n"
+#else
+ "\
+ reuseport no;\n"
+#endif
+ "\
prefetch 2 9;\n\
recursing-file \"named.recursing\";\n\
recursive-clients 1000;\n\
integer ] {
address_match_element; ... };
lmdb-mapsize sizeval;
- load-balance-sockets boolean;
lock-file ( quoted_string | none );
managed-keys-directory quoted_string;
masterfile-format ( map | raw | text );
[ recursive-only boolean ] [ nsip-enable boolean ] [
nsdname-enable boolean ] [ dnsrps-enable boolean ] [
dnsrps-options { unspecified-text } ];
+ reuseport boolean;
root-delegation-only [ exclude { string; ... } ];
root-key-sentinel boolean;
rrset-order { [ class string ] [ type string ] [ name
ns_interfacemgr_setbacklog(server->interfacemgr, backlog);
obj = NULL;
- result = named_config_get(maps, "load-balance-sockets", &obj);
+ result = named_config_get(maps, "reuseport", &obj);
INSIST(result == ISC_R_SUCCESS);
loadbalancesockets = cfg_obj_asboolean(obj);
#if HAVE_SO_REUSEPORT_LB
} else if (loadbalancesockets !=
isc_nm_getloadbalancesockets(named_g_nm)) {
cfg_obj_log(obj, named_g_lctx, ISC_LOG_WARNING,
- "changing load-balance-sockets value requires "
- "server restart");
+ "changing reuseport value requires server restart");
}
#else
if (loadbalancesockets) {
- cfg_obj_log(
- obj, named_g_lctx, ISC_LOG_WARNING,
- "load-balance-sockets has no effect on this system");
+ cfg_obj_log(obj, named_g_lctx, ISC_LOG_WARNING,
+ "reuseport has no effect on this system");
}
#endif
If ``yes``, respond to root key sentinel probes as described in
draft-ietf-dnsop-kskroll-sentinel-08. The default is ``yes``.
-``load-balance-sockets``
-
+``reuseport``
This option enables kernel load-balancing of sockets on systems which support
- it, including Linux and FreeBSD. This instructs the kernel to distribute
- incoming socket connections among the networking threads based on a hashing
- scheme. For more information, see the receive network flow classification
- options (``rx-flow-hash``) section in the ``ethtool`` manual page. The
- default is ``yes``.
-
- Enabling ``load-balance-sockets`` significantly increases general throughput
- when incoming traffic is distributed uniformly onto the threads by the
+ it, including Linux (SO_REUSEPORT) and FreeBSD (SO_REUSEPORT_LB). This
+ instructs the kernel to distribute incoming socket connections among the
+ networking threads based on a hashing scheme. For more information, see the
+ receive network flow classification options (``rx-flow-hash``) section in the
+ ``ethtool`` manual page. The default is ``yes``.
+
+ Enabling ``reuseport`` significantly increases general throughput when
+ incoming traffic is distributed uniformly onto the threads by the
operating system. However, in cases where a worker thread is busy with a
long-lasting operation, such as processing a Response Policy Zone (RPZ) or
Catalog Zone update or an unusually large zone transfer, incoming traffic
integer ] {
address_match_element; ... };
lmdb\-mapsize sizeval;
- load\-balance\-sockets boolean;
lock\-file ( quoted_string | none );
managed\-keys\-directory quoted_string;
masterfile\-format ( map | raw | text );
[ recursive\-only boolean ] [ nsip\-enable boolean ] [
nsdname\-enable boolean ] [ dnsrps\-enable boolean ] [
dnsrps\-options { unspecified\-text } ];
+ reuseport boolean;
root\-delegation\-only [ exclude { string; ... } ];
root\-key\-sentinel boolean;
rrset\-order { [ class string ] [ type string ] [ name
<integer> ] {
<address_match_element>; ... }; // may occur multiple times
lmdb-mapsize <sizeval>;
- load-balance-sockets <boolean>;
lock-file ( <quoted_string> | none );
maintain-ixfr-base <boolean>; // ancient
managed-keys-directory <quoted_string>;
[ recursive-only <boolean> ] [ nsip-enable <boolean> ] [
nsdname-enable <boolean> ] [ dnsrps-enable <boolean> ] [
dnsrps-options { <unspecified-text> } ];
+ reuseport <boolean>;
rfc2308-type1 <boolean>; // ancient
root-delegation-only [ exclude { <string>; ... } ];
root-key-sentinel <boolean>;
<integer> ] {
<address_match_element>; ... }; // may occur multiple times
lmdb-mapsize <sizeval>;
- load-balance-sockets <boolean>;
lock-file ( <quoted_string> | none );
managed-keys-directory <quoted_string>;
masterfile-format ( map | raw | text );
[ recursive-only <boolean> ] [ nsip-enable <boolean> ] [
nsdname-enable <boolean> ] [ dnsrps-enable <boolean> ] [
dnsrps-options { <unspecified-text> } ];
+ reuseport <boolean>;
root-delegation-only [ exclude { <string>; ... } ];
root-key-sentinel <boolean>;
rrset-order { [ class <string> ] [ type <string> ] [ name
dnssec-secure-to-insecure <boolean>;
dnssec-update-mode ( maintain | no-resign );
dnssec-validation ( yes | no | auto );
- dnstap { ( all | auth | client | forwarder |
- resolver | update ) [ ( query | response ) ];
- ... };
- dnstap-identity ( <quoted_string> | none |
- hostname );
- dnstap-output ( file | unix ) <quoted_string> [
- size ( unlimited | <size> ) ] [ versions (
- unlimited | <integer> ) ] [ suffix ( increment
- | timestamp ) ];
+ dnstap { ( all | auth | client | forwarder | resolver | update ) [
+ ( query | response ) ]; ... };
+ dnstap-identity ( <quoted_string> | none | hostname );
+ dnstap-output ( file | unix ) <quoted_string> [ size ( unlimited |
+ <size> ) ] [ versions ( unlimited | <integer> ) ] [ suffix (
+ increment | timestamp ) ];
dnstap-version ( <quoted_string> | none );
dscp <integer>;
dual-stack-servers [ port <integer> ] { ( <quoted_string> [ port
<integer> ] {
<address_match_element>; ... };
lmdb-mapsize <sizeval>;
- load-balance-sockets <boolean>;
lock-file ( <quoted_string> | none );
managed-keys-directory <quoted_string>;
masterfile-format ( map | raw | text );
[ recursive-only <boolean> ] [ nsip-enable <boolean> ] [
nsdname-enable <boolean> ] [ dnsrps-enable <boolean> ] [
dnsrps-options { <unspecified-text> } ];
+ reuseport <boolean>;
root-delegation-only [ exclude { <string>; ... } ];
root-key-sentinel <boolean>;
rrset-order { [ class <string> ] [ type <string> ] [ name
- None.
-- Add a new configuration option ``load-balance-sockets`` to disable
+- Add a new configuration option ``reuseport`` to disable
load balancing on sockets in scenarios in which processing of
Response Policy Zones (RPZ), Catalog Zones, or large zone transfers
can cause service disruptions. See the BIND 9 ARM for more detail.
{ "keep-response-order", &cfg_type_bracketed_aml, 0 },
{ "listen-on", &cfg_type_listenon, CFG_CLAUSEFLAG_MULTI },
{ "listen-on-v6", &cfg_type_listenon, CFG_CLAUSEFLAG_MULTI },
- { "load-balance-sockets", &cfg_type_boolean, 0 },
{ "lock-file", &cfg_type_qstringornone, 0 },
{ "managed-keys-directory", &cfg_type_qstring, 0 },
{ "match-mapped-addresses", &cfg_type_boolean, 0 },
{ "random-device", &cfg_type_qstringornone, 0 },
{ "recursing-file", &cfg_type_qstring, 0 },
{ "recursive-clients", &cfg_type_uint32, 0 },
+ { "reuseport", &cfg_type_boolean, 0 },
{ "reserved-sockets", &cfg_type_uint32, 0 },
{ "secroots-file", &cfg_type_qstring, 0 },
{ "serial-queries", &cfg_type_uint32, CFG_CLAUSEFLAG_ANCIENT },