bind9/bin/tests/system/randomizens
Colin Vidal c67b52684f system test covering NS randomization
Add randomizens system test which ensures that NS are randomly selected.
The test relies of the fact that `getaddresses_allowed()` logic won't
allow to query more than 3 NS at the top-level. The `example.` zone has
4 NS and the 3 formers are lame. As a result, if the resolved doesn't
randomize the NS selection, it will only quiery the 3 formers, which
won't give an answer, and fails. With randomization enabled, there is a
chance that the resolver queries the fourth NS, and gets the result.
2026-02-25 09:31:14 +01:00
..
ns1 system test covering NS randomization 2026-02-25 09:31:14 +01:00
ns2 system test covering NS randomization 2026-02-25 09:31:14 +01:00
ns3 system test covering NS randomization 2026-02-25 09:31:14 +01:00
ns4 system test covering NS randomization 2026-02-25 09:31:14 +01:00
ns5 system test covering NS randomization 2026-02-25 09:31:14 +01:00
ns6 system test covering NS randomization 2026-02-25 09:31:14 +01:00
README system test covering NS randomization 2026-02-25 09:31:14 +01:00
tests_randomizens.py system test covering NS randomization 2026-02-25 09:31:14 +01:00

Copyright (C) Internet Systems Consortium, Inc. ("ISC")

SPDX-License-Identifier: MPL-2.0

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0.  If a copy of the MPL was not distributed with this
file, you can obtain one at https://mozilla.org/MPL/2.0/.

See the COPYRIGHT file distributed with this work for additional
information regarding copyright ownership.

ns1 is root
ns{2-4} are auth server on example. but lame
ns5 is an auth server on example. and works
ns6 is a resolver

Because `getaddresses_allowed()` logic won't allow to query more than 3 NS at
the top-level, only ns{2-4} will be tried without randomization, and example.
couldn't be resolved. However, with randomization, some queries won't start
picking example. NS from ns2, but ns3, ns4 or ns5. This enable to resolver
example.