Terug naar Blog

Post-Quantum DNSSEC Wordt Nu Concreet: Het 2.420-byte Runbook voor Game Backend Operators

Gepubliceerd op 11 september 2026
Post-Quantum DNSSEC Wordt Nu Concreet: Het 2.420-byte Runbook voor Game Backend Operators Gegenereerd met behulp van AI

Kort samengevat

Bereid je game-backend voor op post-quantum DNSSEC met dit runbook over ML-DSA-44, TCP-fallback, DNS-hardening en de volledige impact op spelers.

DNS-resolutie is opeens 38x groter

Elke milliseconde dat je game wacht op DNS-resolutie voordat spelers verbinding maken met je backend, is een milliseconde die ze naar een laadscherm staren. Op 3 september begon de 1.1.1.1-resolver van Cloudflare met het valideren van DNSSEC-handtekeningen gemaakt met ML-DSA-44 — een post-quantum handtekeningalgoritme gestandaardiseerd door NIST. Elke ML-DSA-44-handtekening is 2.420 bytes, bijna 38 keer zo groot als de ECDSA P-256-handtekeningen (64 bytes) die de meeste DNSSEC-beveiligde zones vandaag gebruiken.

Als je custom domeinen gebruikt voor je game-backend, matchmaker, CDN of asset-delivery-endpoints, zal deze wijziging uiteindelijk je DNS-infrastructuur hervormen. Concrete gevolgen:

  • DNS-antwoorden die vandaag comfortabel in één UDP-pakket passen, overschrijden de conservatieve UDP-payloadlimiet van 1.232 bytes
  • Authoritatieve servers retourneren afgekapte antwoorden, waardoor TCP-retries nodig zijn
  • Zones die tijdens de migratieperiode dubbele algoritmen draaien, introduceren downgrade-aanvalsoppervlakken
  • Dit alles voegt latentie toe aan de eerste netwerkhop die je spelers maken

Dit is een runbook voor het detecteren, mitigeren en voorbereiden op post-quantum DNSSEC in game-backendinfrastructuur.

Waarom game-backends om DNSSEC-handtekeninggroottes geven

De UDP-formaatmuur

DNS over UDP kent een lange geschiedenis van pakketformaatbeperkingen:

Limiet Bron Bytes
Originele DNS UDP-max RFC 1035 (1987) 512
EDNS(0) gangbare standaard Diverse implementaties 1.232
Aanbevolen maximum RFC 9715 (2025) 1.400
Alleen ML-DSA-44-handtekening NIST ML-DSA-44 2.420
ML-DSA-44 publieke sleutel DNSKEY RRset 1.312

Een enkele ML-DSA-44-handtekening overschrijdt op zichzelf al elk van deze limieten, nog vóór de ondertekende RRset, domeinnamen, headers en andere DNSSEC-records worden toegevoegd. Gefragmenteerde UDP is onbetrouwbaar — Cloudflare en anderen raden het sinds DNS Flag Day 2020 expliciet af — dus de praktische fallback is TCP.

Wat TCP-fallback je spelers kost

Volgens Cloudflare Radar komt ongeveer 85% van de queries naar 1.1.1.1 binnen via UDP. Over alle services op hun Big Pineapple-platform (dat ook Gateway DNS aandrijft) is dat ongeveer 60% via UDP. Dat betekent dat 15–40% van het DNS-verkeer al TCP, DoT of DoH gebruikt — maar dat zijn vrijwillige niet-UDP-verbindingen.

Wanneer UDP faalt en de client het opnieuw probeert via TCP, betaal je een volledige TCP-handshake-penalty: ~1 RTT voor SYN/SYN-ACK/ACK voordat de resolver de query zelfs maar verstuurt. Voor een speler die vanaf 80 ms afstand verbinding maakt met je game-backend, is dat 80 ms extra verbindingstijd vóórdat de authenticatie begint.

In de praktijk vindt TCP-fallback plaats tussen de resolver en de authoritatieve nameserver, en de resolver cached de resultaten. De pijn is het grootst wanneer:

  1. De cache koud is — eerste lookup na het verlopen van de TTL, of een nieuwe speler die verbinding maakt vanuit een regio zonder eerder verkeer
  2. De DNSKEY-response van de zone groot is — precies het geval tijdens de migratieperiode met dubbele algoritmen
  3. Meerdere delegaties leveren grote responses op — een keten van 3–4 zones, elk met zowel conventionele als post-quantum sleutels

Sessie-starttimeouts teisteren multiplayer-backends al onder normale DNS-omstandigheden — we behandelden de diagnostiek voor Unreal Engine-timeouts op netwerkniveau in een eerdere deep-dive. Post-quantum DNSSEC zal deze timeouts vaker laten voorkomen als je niet anticipeert op de grotere responses.

De valkuil van migratie met dubbele algoritmen

ML-DSA-44 kan conventionele handtekeningalgoritmen niet van de ene op de andere dag volledig vervangen. Zones moeten zowel conventionele (ECDSA/RSA) als post-quantum (ML-DSA-44) sleutels publiceren voor achterwaartse compatibiliteit. In dit venster kan de DNSKEY-response voor een zone bevatten:

  • De conventionele publieke sleutel (bijv. 91 bytes voor ECDSA P-256)
  • De ML-DSA-44 publieke sleutel (1.312 bytes)
  • De conventionele handtekening over de DNSKEY-RRset (64 bytes)
  • De ML-DSA-44-handtekening over de DNSKEY-RRset (2.420 bytes)

Dat is ruwweg 3.900 bytes aan DNSSEC-materiaal alleen al, ver boven elke UDP-payloadlimiet. Sleutelrotaties voegen nog meer toe. De resolver moet terugvallen op TCP.

Het downgrade-aanvalsoppervlak

Hier is het beveiligingsprobleem dat dit meer maakt dan een latentieprobleem. RFC 6840 zegt dat validators "SHOULD accept any single valid path." Dit betekent dat als een zone zowel een ECDSA- als een ML-DSA-44-validatorset publiceert, een resolver die beide ondersteunt beide zal accepteren.

Zodra quantumcomputers ECDSA-sleutels kunnen breken, kan een aanvaller ECDSA-only responses vervalsen en een post-quantum-capabele resolver zal ze nog steeds accepteren. Dit is de downgrade-aanval:

  1. De resolver van een speler queryt api.your-game-backend.com en ontvangt een response die alleen met ECDSA is ondertekend
  2. De resolver accepteert de ECDSA-handtekening omdat die op de "any valid path"-lijst staat
  3. De aanvaller heeft deze response vervalst met een quantum-afgeleide privésleutel
  4. De speler maakt verbinding met de server van de aanvaller in plaats van met die van jou

Dit is geen theoretisch probleem. De Star Citizen-databreuk liet zien hoe één gecompromitteerde infrastructuur kan escaleren tot enorme credential-lekken. Een DNS-compromis is erger: het leidt elke speler die je hostname resolveert om naar een endpoint onder controle van de aanvaller.

1.1.1.1 pakt dit aan door de DS-record als een geauthenticeerd signaal te gebruiken: als de DS-RRset van de parent-zone een record bevat voor een ondersteund post-quantum algoritme, handhaaft de resolver een strenger beleid dat ten minste één geldig post-quantum validatiepad vereist. Als geen enkel ML-DSA-44-pad valideert, faalt de validatie volledig.

Dit is goed — maar het betekent dat zones die post-quantum beveiliging willen bieden, ML-DSA-44 DS-records moeten publiceren, en elke delegatie boven hen in de keten moet dat ook doen. Een gecompromitteerde sleutel waar dan ook in de keten laat een aanvaller alles eronder vervalsen: "break once, forge everywhere."

De impact van post-quantum DNSSEC op je infrastructuur detecteren

Stap 1: Controleer de huidige DNS-responsegroottes

Voordat je de impact kunt meten, heb je een basislijn nodig. Gebruik dig met de +dnssec-vlag om de huidige responsegroottes voor de domeinen van je game te zien:

# Measure current DNSKEY response size for your authoritative zone
dig +dnssec +bufsize=4096 NS your-game-backend.com @your-ns.example.com +short

# Check the full DNSKEY response with size tracking
dig +dnssec +bufsize=4096 DNSKEY your-game-backend.com @your-ns.example.com
# Look at the MSG SIZE stat near the bottom of the output

# Measure a typical A-record query with DNSSEC signatures attached
dig +dnssec +bufsize=4096 A api.your-game-backend.com @your-ns.example.com

Ter referentie: een DNSKEY-response met ECDSA P-256 levert ruwweg 200–400 bytes op. Met ML-DSA-44 erbij gepubliceerd, verwacht dan 3.500–5.000 bytes. Noteer je huidige cijfers — je hebt ze nodig om verslechtering te detecteren.

Stap 2: Controleer welk algoritme je zone gebruikt

# Extract algorithm numbers from your DNSKEY records
dig +dnssec DNSKEY your-game-backend.com @your-ns.example.com | \
  grep -E "DNSKEY|RRSIG" | awk '{print $5}' | sort -u

Het algoritmenummer vertelt je welk handtekeningalgoritme in gebruik is:

Algoritme Nummer Status
RSA/SHA-256 8 Veel gebruikt, kwetsbaar voor quantum
ECDSA P-256/SHA-256 13 Meest gangbare moderne keuze, kwetsbaar voor quantum
ED448 16 Kwetsbaar voor quantum maar groot (~114 bytes)
ML-DSA-44 18 Post-quantum, 2.420 bytes, recent toegewezen door IANA

Als je zone momenteel algoritme 13 (ECDSA P-256) gebruikt, bevind je je op de meest gangbare moderne uitgangspositie. Migratie naar algoritme 18 staat voor de meeste DNS-ecosystemen in de planningsfase — maar je moet de tijdlijn begrijpen.

Stap 3: Monitor TCP-fallbackpercentages met een query-loganalyzer

Als je authoritatieve nameservers draait of toegang hebt tot resolverlogs, volg dan de verhouding tussen TCP- en UDP-queries. Dit is het duidelijkste vroege signaal dat responsegroottes de UDP-muur raken.

#!/usr/bin/env python3
"""
Post-Quantum DNSSEC TCP Fallback Monitor.
Tracks TCP/UDP query ratios from BIND-style query logs
as a proxy for large-response fallback pressure.

Usage:
    python3 pq_dns_monitor.py --log /var/log/named/queries.log --window 2
"""

import re
import argparse
from collections import Counter
from datetime import datetime, timedelta

LOG_PATTERN = re.compile(
    r"(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})\.\d+Z"
    r"\s+(\w+)\s+query:\s+\S+\s+(\S+)\s+(\S+)"
)

def analyze_dns_traffic(log_path: str, window_hours: int = 1) -> None:
    cutoff = datetime.utcnow() - timedelta(hours=window_hours)
    transport_counts = Counter()
    rrtype_counts = Counter()
    tcp_by_qtype: Counter = Counter()

    with open(log_path, "r") as f:
        for line in f:
            m = LOG_PATTERN.search(line)
            if not m:
                continue
            ts_str, transport, qname, qtype = m.groups()
            try:
                ts = datetime.strptime(ts_str, "%Y-%m-%dT%H:%M:%S")
                if ts < cutoff:
                    continue
            except ValueError:
                continue

            transport_counts[transport] += 1
            rrtype_counts[qtype] += 1
            if transport == "tcp":
                tcp_by_qtype[qtype] += 1

    total = sum(transport_counts.values())
    if total == 0:
        print("No queries found in the specified time window.")
        return

    tcp_count = transport_counts.get("tcp", 0)
    tcp_pct = (tcp_count / total) * 100

    print(f"=== DNS Transport Breakdown (last {window_hours}h) ===")
    print(f"  UDP: {transport_counts.get('udp', 0):>8} ({100 - tcp_pct:.1f}%)")
    print(f"  TCP: {tcp_count:>8} ({tcp_pct:.1f}%)")
    print(f"  Total: {total:>6}")
    print()

    if tcp_pct > 15.0:
        print(f"  ⚠  ALERT: TCP fallback rate is {tcp_pct:.1f}%.")
        print("     Large DNSSEC responses may be forcing TCP retries.")
        print("     Check whether any upstream zones have added post-quantum keys.")
    elif tcp_pct > 8.0:
        print(f"  ⚡ NOTICE: TCP fallback rate is {tcp_pct:.1f}%. Monitor for increases.")
    else:
        print(f"  ✓  TCP fallback rate ({tcp_pct:.1f}%) is within normal range.")

    # Show which query types incur the most TCP fallback
    if tcp_by_qtype:
        print()
        print("=== TCP Fallback by Query Type ===")
        for qtype, count in tcp_by_qtype.most_common(5):
            pct = (count / rrtype_counts[qtype]) * 100 if rrtype_counts[qtype] else 0
            print(f"  {qtype:<10} {count:>5} TCP / {rrtype_counts[qtype]:>5} total  ({pct:.0f}%)")

    print()
    print("=== Query Type Breakdown ===")
    for qtype, count in rrtype_counts.most_common(10):
        print(f"  {qtype:<10} {count:>6}")

    # Recommendation
    print()
    if tcp_by_qtype.get("DNSKEY", 0) > tcp_by_qtype.get("A", 0) * 0.5:
        print("  ➜  DNSKEY queries have a notably high TCP fallback rate.")
        print("     Your zones or upstream zones may already be publishing")
        print("     large post-quantum keys alongside conventional ones.")


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="DNS TCP fallback monitor for PQ-DNSSEC readiness")
    parser.add_argument("--log", required=True, help="Path to BIND query log file")
    parser.add_argument("--window", type=int, default=1, help="Time window in hours")
    args = parser.parse_args()
    analyze_dns_traffic(args.log, args.window)

Draai dit regelmatig tegen je authoritatieve nameserverlogs. Als TCP-queries voor DNSKEY- of DS-records boven de 10% uitkomen, raken je resolvers de UDP-muur en zijn post-quantum-responses de waarschijnlijke oorzaak.

Stap 4: Benchmark de latentie tussen resolver en authoritatieve server

Gebruik dnsperf om de responsetijden van je authoritatieve server onder belasting te stress-testen, inclusief queries die grote responses triggeren:

# Create a test query file focused on DNSSEC-heavy queries
cat > /tmp/dnssec-bench.txt << 'EOF'
your-game-backend.com DNSKEY
your-game-backend.com DNS
api.your-game-backend.com A
match.your-game-backend.com A
assets.your-game-backend.com A
EOF

# Run with 20 concurrent clients for 20 seconds
dnsperf -s your-ns-ip -d /tmp/dnssec-bench.txt -l 20 -c 20

Vergelijk de gemiddelde latentie en TCP-truncatiepercentages vóór en na het toevoegen van ML-DSA-44-records aan een testzone. Je wilt meetbare cijfers, geen giswerk.

Remediatie: je DNS versterken voor post-quantum responses

1. Maximaliseer EDNS(0)-buffergroottes op authoritatieve servers

Je authoritatieve nameservers moeten de grootste UDP-payload adverteren die ze ondersteunen. Dit voorkomt TCP-fallback voor DNSKEY-responses niet — ML-DSA-44-handtekeningen zijn simpelweg te groot — maar het zorgt ervoor dat niet-DNSSEC-responses en kleinere handtekeningen nog steeds in UDP passen, en het brengt het truncatiesignaal sneller bij clients.

# BIND 9 — named.conf
options {
    edns-udp-size 1232;
    max-udp-size 1232;
    tcp-fast-open 256;
};

De 1.232-byte instelling is specifiek gekozen: 1.280 (IPv6 minimum MTU) − 40 (IPv6-header) − 8 (UDP-header) = 1.232. Dit voorkomt fragmentatie op elk pad dat IPv6's minimum MTU ondersteunt.

# NSD — nsd.conf
server:
    ipv4-edns-size: 1232
    ipv6-edns-size: 1232

2. Schakel TCP Fast Open in op alle nameservers die je beheert

TCP Fast Open (TFO) laat de resolver de DNS-query in het SYN-pakket meesturen, waardoor één round trip uit de TCP-verbindingsopbouw wordt geëlimineerd. Dit verlaagt TCP-fallback van ~2 RTT (handshake + query/response) naar ~1 RTT.

# Linux: enable TFO for both inbound and outbound connections (mode 3)
sudo sysctl -w net.ipv4.tcp_fastopen=3

# Verify
cat /proc/sys/net/ipv4/tcp_fastopen
# Expected output: 3

TFO moet ook zijn ingeschakeld in je DNS-software. BIND 9 (9.18+) en Knot Resolver ondersteunen het. Raadpleeg de documentatie van jouw versie. Voor Unbound is het in recente builds standaard ingeschakeld.

Het netto-effect: een TCP-DNS-query die voorheen ~160 ms kostte (twee round trips van 80 ms) kost nu ~80 ms (één round trip). Dit is nog steeds slechter dan UDP (~80 ms), maar de penalty is gehalveerd.

3. Resolve en cache hostnames bij het opstarten van de game — nooit tijdens gameplay

De meest effectieve mitigatie voor DNS-latentie in gameclients is het vermijden van DNS-lookups tijdens gameplay-kritieke paden. Resolve alle backend-hostnames bij initialisatie en cache de geresolveerde IP-adressen voor de levensduur van de sessie.

// Unreal Engine C++ — resolve game backend hostnames at startup
// and cache IP addresses so players never wait for DNS during connect

void UGameBackendSubsystem::Initialize(FSubsystemCollectionBase& Collection)
{
    Super::Initialize(Collection);

    // All hostnames the game needs during a session
    TArray<FString> Hostnames = {
        TEXT("api.your-game-backend.com"),
        TEXT("match.your-game-backend.com"),
        TEXT("assets.cdn.your-game-backend.com"),
    };

    ISocketSubsystem* Sockets = ISocketSubsystem::Get();

    for (const FString& Host : Hostnames)
    {
        // Resolve at startup — resolves once, not on first connect
        FResolveInfo* ResolveInfo = Sockets->GetHostByName(
            TCHAR_TO_ANSI(*Host)
        );

        // Block until resolution completes (acceptable during loading screen)
        ResolveInfo->WaitUntilComplete(5.0f);

        FInternetAddr Result;
        if (ResolveInfo->GetErrorCode() == 0)
        {
            Result = ResolveInfo->GetResolvedAddress();
            FString ResolvedIP = Result.ToString(false);
            CachedEndpoints.Add(Host, ResolvedIP);
            UE_LOG(LogGameBackend, Log,
                TEXT("Pre-resolved %s -> %s (cached for session)"),
                *Host, *ResolvedIP);
        }
        else
        {
            UE_LOG(LogGameBackend, Warning,
                TEXT("DNS resolution failed for %s (error %d)"),
                *Host, ResolveInfo->GetErrorCode());
            // Store empty — will re-resolve on demand with exponential backoff
            CachedEndpoints.Add(Host, FString());
        }
    }
}

FString UGameBackendSubsystem::GetResolvedAddress(const FString& Hostname) const
{
    const FString* Cached = CachedEndpoints.Find(Hostname);
    if (Cached && !Cached->IsEmpty())
    {
        return *Cached;
    }
    return Hostname; // Fallback to hostname (will trigger real DNS)
}

Dit betekent dat je spelers nooit op DNS wachten tijdens connect-to-server- of asset-downloadstromen. Zelfs als DNS-resolutie 200 ms duurt door TCP-fallback en een koude cache, gebeurt het stil tijdens het laadscherm — niet tijdens de matchmaking-aftelling.

4. Gebruik DNS-over-HTTPS voor infrastructuurqueries

DoH draait over HTTP/2 of HTTP/3 (beide TCP-gebaseerd of QUIC-gebaseerd op de transportlaag), waardoor het de UDP-formaatbeperking volledig omzeilt. Als je game-backendservers, deploymentscripts of CI/CD-pipelines programmatisch DNS queryen, configureer ze dan voor DoH:

# Resolve a hostname using Cloudflare's DoH endpoint
# (requires curl 7.76+)
curl -sS \
  "https://cloudflare-dns.com/dns?name=api.your-game-backend.com&type=A" \
  -H "Accept: application/dns-json" | jq -r '.Answer[0].data'

# For Kubernetes pods, configure CoreDNS to forward to a DoH-capable
# recursive resolver. In practice, this means setting upstream to
# a resolver that natively supports DoH, such as 1.1.1.1 or 8.8.8.8

Dit is vooral relevant voor health-checkscripts die de beschikbaarheid van de backend monitoren, deployment-verificatiepipelines en containerorkestratiesystemen waar pods standaard de resolverconfiguratie van de node gebruiken.

5. Audit de DS-records en algoritme-gereedheid van je zone

Als je je eigen authoritatieve zone beheert, controleer dan dat je DS-records overeenkomen met je huidige algoritme en dat je geen verouderde delegatiegegevens meedraagt.

# Check DS records from the parent zone
dig +short DS your-game-backend.com

# Compare with actual DNSKEY data in your zone
dig +short DNSKEY your-game-backend.com

# Use delv to trace the full DNSSEC validation chain
delv +rtrace api.your-game-backend.com A

Als je verweesde DS-records ziet voor algoritmen die je niet meer gebruikt, kunnen die onnodige fallbacklogica in resolvers veroorzaken. Ruim ze op tijdens je volgende onderhoudsvenster.

Best practices: een post-quantum DNSSEC-gereedheidschecklist

  1. Stel vandaag je DNS-responsegroottes vast als basislijn. Draai dig +dnssec tegen alle zones waar je infrastructuur van afhankelijk is. Noteer MSG SIZE voor DNSKEY-, DS- en typische A-record-queries. Je hebt deze cijfers nodig om toekomstige verslechtering te detecteren wanneer upstream-zones post-quantum records beginnen te publiceren.

  2. Schakel TCP Fast Open in op elke nameserver die je beheert. Deze enkele kernelvlagwijziging verlaagt de TCP-fallbacklatentie met één volledige round trip (~80–160 ms, afhankelijk van de geografie). In combinatie met agressieve DNS-caching maakt het TCP-fallback bijna onzichtbaar voor spelers.

  3. Resolve hostnames bij het opstarten van de game, nooit tijdens gameplay. Alle backend-, CDN- en matchmaker-endpoints moeten tijdens het laadscherm resolven en in het geheugen cachen. Een achtergrondrefresh om de paar minuten handelt TTL-verloop af zonder gameplay te blokkeren.

  4. Monitor TCP-fallbackpercentages wekelijks. Stel de bovenstaande query-loganalyzer of een equivalent daarvan in. Een aanhoudend TCP-percentage boven 10% voor DNSKEY-queries signaleert dat responsegroottes de UDP-limieten overschrijden. Behandel dit zoals je een latentie-SLA-schending zou behandelen.

  5. Plan de tijdlijn voor je DNSSEC-algoritmemigratie. Als je je eigen zone ondertekent, begin dan met het testen van ML-DSA-44 in een staging-subdomein. Publiceer sleutels met dubbele algoritmen en meet de impact op de responsegrootte. Wacht niet tot er een quantumdreiging ontstaat — migratie in DNS wordt gemeten in jaren, niet in sprints. Algoritmemigratie in DNSSEC is een zorg op infrastructuurniveau, en de beveiliging van je accounts, leaderboards en cloud-savegegevens hangt af van de integriteit van de resolutiepaden die je spelers naar die services brengen.

De tijdlijn: wanneer dit voor jou relevant wordt

Dat Cloudflare's 1.1.1.1 ML-DSA-44-validatie inschakelt, is de eerste grote resolverimplementatie. Hier is de globale tijdlijn:

Periode Wat er gebeurt
Nu (2025) Cloudflare 1.1.1.1 valideert ML-DSA-44; early adopters beginnen met testen
2025–2027 Meer resolvers voegen validatie toe; vroege zones beginnen sleutels met dubbele algoritmen te publiceren
2027–2029 Bredere zone-adoptie; resolvers kunnen strenger downgrade-beschermingsbeleid handhaven
2029+ Cloudflare streeft naar volledige post-quantum beveiliging; conventionele algoritmen worden als onveilig beschouwd

Niets hiervan zal je game-servers morgen breken. Maar het migratiepatroon is duidelijk.

De game-backendoperators die nu beginnen met voorbereiden — DNS cachen, TFO inschakelen, zone-algoritmen auditen, TCP-fallbackpercentages monitoren — zullen niets merken wanneer deze transitie voltooid is. Degenen die wachten, zullen tijdens een live game-lancering TCP-fallbacklatentie en DNSSEC-validatiefouten debuggen, precies op het moment dat je het je het minst kunt veroorloven.

Klaar om je te richten op het bouwen van gameplay in plaats van het beheren van infrastructuur? horizOn verzorgt accountauthenticatie, cloud saves, leaderboards en crashrapportage, zodat je je infrastructuurinspanning kunt wijden aan de DNS-, netwerk- en beveiligingslagen die je aandacht nodig hebben. Bekijk de horizOn-documentatie om te zien wat er out of the box wordt meegeleverd.


Bron: 1.1.1.1 ondersteunt nu post-quantum DNSSEC, alle 2.420 bytes ervan