test(java-oracle): DnsRun records DNS as Java FILIUS runs it
A resolver's lookup on the new dns-lan network (A, MX, a referral by NS, an unknown name, a missing server): every frame and the call's result. ScenarioNetwork installs a scenario's DNS servers. The Swift comparison reads only scenarios with a Swift result. Measured: Java's text messages (ID=... QR=... header, question and record lines), no question in the answer, RCODE 0 always, a referral in the answer section, an iterative resolver waiting 5 RTT per query. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -222,3 +222,28 @@ Gemessen (30.09.2026, 90 %, RTT 2750 ms), was Swift anders macht:
|
||||
SYN+ACK nie.
|
||||
* Startnummern aus einem Zähler über alle TCP-Sockets (1000000, 2000000, …),
|
||||
wie im Kern; der freie Port ist zufällig.
|
||||
|
||||
## DNS zur Laufzeit
|
||||
|
||||
`DnsRun` ruft auf dem Netz von `dns-lan` den Resolver eines Clients auf, wie
|
||||
Filius' Programme es tun, und schreibt nach `dns-java-<ablauf>.java.json` die
|
||||
Frames jeder Karte und das Ergebnis des Aufrufs. `ScenarioNetwork` richtet
|
||||
dazu die `dnsServers` des Szenarios ein: installiert, Einträge über
|
||||
`hinzuRecord` in `/dns/hosts` (Zeilen `name TYP ziel`, TTL 3600),
|
||||
eingeschaltet. Server 192.168.0.10 kennt `web.filius.de`, den Mailserver
|
||||
von `filius.de` und verweist `schule.de` an 192.168.0.11, der
|
||||
`www.schule.de` kennt.
|
||||
|
||||
* `address`, `mail`, `referral`, `unknown`: A, MX (samt A des Mailservers),
|
||||
Verweis per NS, unbekannter Name.
|
||||
* `noServer`: der DNS-Server des Clients (192.168.0.99) fehlt.
|
||||
|
||||
Gemessen (30.09.2026), Javas Format, das Swift durch ein eigenes ersetzt:
|
||||
Jede Nachricht ist Text, `ID=… QR=… RCODE=… QDCOUNT=… ANCOUNT=… NSCOUNT=…
|
||||
ARCOUNT=… ` und dann je Zeile eine Frage `name. TYP IN` oder ein Eintrag
|
||||
`name. TYP ttl ziel`. Die ID würfelt Java (`Math.random`). Die Antwort
|
||||
wiederholt die Frage nicht (`QDCOUNT=0`), RCODE ist immer 0, auch für einen
|
||||
unbekannten Namen (leere Antwort), und ein Verweis steht mit NS und A des
|
||||
Nameservers im Antwortteil. Der Resolver folgt dem Verweis selbst
|
||||
(iterativ) und wartet je Anfrage 5 RTT (13750 ms bei 90 %); ohne Server
|
||||
fragt ARP zweimal im Abstand einer RTT, dann scheitert der Aufruf.
|
||||
|
||||
Reference in New Issue
Block a user