mirror of
https://github.com/isc-projects/bind9.git
synced 2026-07-07 10:40:54 -04:00
Add a new check in "inline" system test
This new check floods the server with DNS UPDATE messages for an 'inline-signing yes; sig-signing-signatures 1;' zone to see if it manages to process the updates correctly.
This commit is contained in:
parent
868bb66a9a
commit
37f265f59a
3 changed files with 75 additions and 0 deletions
|
|
@ -57,6 +57,15 @@ zone "bits" {
|
|||
sig-signing-signatures 1; // force incremental processing
|
||||
};
|
||||
|
||||
zone "incremental-updates" {
|
||||
type primary;
|
||||
file "incremental-updates.db";
|
||||
inline-signing yes;
|
||||
dnssec-policy inline;
|
||||
sig-signing-signatures 1; // force incremental processing
|
||||
allow-update { any; };
|
||||
};
|
||||
|
||||
server 10.53.0.4 { request-ixfr no; };
|
||||
|
||||
zone "noixfr" {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@ cp ns3/primary.db.in ns3/nsec3.db
|
|||
cp ns3/primary.db.in ns3/externalkey.db
|
||||
cp ns3/primary.db.in ns3/delayedkeys.db
|
||||
cp ns3/primary.db.in ns3/removedkeys-primary.db
|
||||
cp ns3/primary.db.in ns3/incremental-updates.db
|
||||
cp ns3/include.db.in ns3/include.db
|
||||
|
||||
mkdir ns3/removedkeys
|
||||
|
|
|
|||
65
bin/tests/system/inline/tests_inline_incremental_updates.py
Normal file
65
bin/tests/system/inline/tests_inline_incremental_updates.py
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
# 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.
|
||||
|
||||
import random
|
||||
import threading
|
||||
|
||||
import dns.update
|
||||
import pytest
|
||||
|
||||
pytestmark = pytest.mark.extra_artifacts(
|
||||
[
|
||||
"K*",
|
||||
"*.out*",
|
||||
"*/*.out*",
|
||||
"ns*/K*",
|
||||
"ns*/dsset-*",
|
||||
"ns*/*.bk",
|
||||
"ns*/*.db",
|
||||
"ns*/*.jbk",
|
||||
"ns*/*.jnl",
|
||||
"ns*/*.nzd",
|
||||
"ns*/*.signed",
|
||||
"ns*/trusted.conf",
|
||||
"ns3/delayedkeys.conf",
|
||||
"ns3/removedkeys",
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
def worker(server, count) -> None:
|
||||
zone = "incremental-updates"
|
||||
for i in range(count):
|
||||
try:
|
||||
sub = random.randrange(1000000)
|
||||
update_msg = dns.update.UpdateMessage(zone)
|
||||
update_msg.add(f"a-{sub}-{i}.{zone}.", 300, "A", "10.0.0.1")
|
||||
server.nsupdate(update_msg)
|
||||
except Exception: # pylint: disable=broad-exception-caught
|
||||
break
|
||||
|
||||
|
||||
def test_inline_incremental_updates(ns3):
|
||||
"""
|
||||
Flood the server with updates to check how 'receive secure serial'
|
||||
is coping with quick incremental updates.
|
||||
"""
|
||||
threads_n = 10
|
||||
updates_n = 10
|
||||
threads = [
|
||||
threading.Thread(target=worker, args=(ns3, updates_n), daemon=True)
|
||||
for _ in range(threads_n)
|
||||
]
|
||||
|
||||
for thread in threads:
|
||||
thread.start()
|
||||
for thread in threads:
|
||||
thread.join()
|
||||
Loading…
Reference in a new issue