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:
2026-09-30 16:46:07 +00:00
co-authored by Claude Opus 5.5
parent efc7c440f6
commit 24ebcea67f
11 changed files with 914 additions and 3 deletions
@@ -0,0 +1,114 @@
{
"frames": {
"00000000-0000-0000-0000-000000000101": [
{
"time": 723,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
},
{
"time": 956,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"arp": 2,
"senderIp": "192.168.0.10",
"targetIp": "192.168.0.20"
},
{
"time": 959,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 17,
"sourcePort": 57362,
"destinationPort": 53,
"payload": "ID=38187 QR=0 RCODE=0 QDCOUNT=1 ANCOUNT=0 NSCOUNT=0 ARCOUNT=0 \nweb.filius.de. A IN\n"
},
{
"time": 1188,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 17,
"sourcePort": 53,
"destinationPort": 57362,
"payload": "ID=38187 QR=1 RCODE=0 QDCOUNT=0 ANCOUNT=1 NSCOUNT=0 ARCOUNT=0 \nweb.filius.de. A 3600 192.168.0.30\n"
}
],
"00000000-0000-0000-0000-000000000102": [
{
"time": 844,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
},
{
"time": 845,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"arp": 2,
"senderIp": "192.168.0.10",
"targetIp": "192.168.0.20"
},
{
"time": 1072,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 17,
"sourcePort": 57362,
"destinationPort": 53,
"payload": "ID=38187 QR=0 RCODE=0 QDCOUNT=1 ANCOUNT=0 NSCOUNT=0 ARCOUNT=0 \nweb.filius.de. A IN\n"
},
{
"time": 1077,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 17,
"sourcePort": 53,
"destinationPort": 57362,
"payload": "ID=38187 QR=1 RCODE=0 QDCOUNT=0 ANCOUNT=1 NSCOUNT=0 ARCOUNT=0 \nweb.filius.de. A 3600 192.168.0.30\n"
}
],
"00000000-0000-0000-0000-000000000103": [
{
"time": 844,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
}
],
"00000000-0000-0000-0000-000000000104": [
{
"time": 844,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
}
]
},
"events": [
[
712,
"holeIPAdresse web.filius.de called"
],
[
1189,
"holeIPAdresse web.filius.de returned 192.168.0.30"
]
]
}
@@ -0,0 +1,114 @@
{
"frames": {
"00000000-0000-0000-0000-000000000101": [
{
"time": 725,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
},
{
"time": 958,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"arp": 2,
"senderIp": "192.168.0.10",
"targetIp": "192.168.0.20"
},
{
"time": 961,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 17,
"sourcePort": 55842,
"destinationPort": 53,
"payload": "ID=4405 QR=0 RCODE=0 QDCOUNT=1 ANCOUNT=0 NSCOUNT=0 ARCOUNT=0 \nfilius.de. MX IN\n"
},
{
"time": 1191,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 17,
"sourcePort": 53,
"destinationPort": 55842,
"payload": "ID=4405 QR=1 RCODE=0 QDCOUNT=0 ANCOUNT=2 NSCOUNT=0 ARCOUNT=0 \nfilius.de. MX 3600 mail.filius.de.\nmail.filius.de. A 3600 192.168.0.31\n"
}
],
"00000000-0000-0000-0000-000000000102": [
{
"time": 846,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
},
{
"time": 847,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"arp": 2,
"senderIp": "192.168.0.10",
"targetIp": "192.168.0.20"
},
{
"time": 1074,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 17,
"sourcePort": 55842,
"destinationPort": 53,
"payload": "ID=4405 QR=0 RCODE=0 QDCOUNT=1 ANCOUNT=0 NSCOUNT=0 ARCOUNT=0 \nfilius.de. MX IN\n"
},
{
"time": 1079,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 17,
"sourcePort": 53,
"destinationPort": 55842,
"payload": "ID=4405 QR=1 RCODE=0 QDCOUNT=0 ANCOUNT=2 NSCOUNT=0 ARCOUNT=0 \nfilius.de. MX 3600 mail.filius.de.\nmail.filius.de. A 3600 192.168.0.31\n"
}
],
"00000000-0000-0000-0000-000000000103": [
{
"time": 845,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
}
],
"00000000-0000-0000-0000-000000000104": [
{
"time": 845,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
}
]
},
"events": [
[
714,
"holeIPAdresseMailServer filius.de called"
],
[
1191,
"holeIPAdresseMailServer filius.de returned 192.168.0.31"
]
]
}
@@ -0,0 +1,86 @@
{
"frames": {
"00000000-0000-0000-0000-000000000101": [
{
"time": 844,
"source": "02:00:00:00:01:14",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.21",
"targetIp": "192.168.0.99"
},
{
"time": 3585,
"source": "02:00:00:00:01:14",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.21",
"targetIp": "192.168.0.99"
}
],
"00000000-0000-0000-0000-000000000102": [
{
"time": 844,
"source": "02:00:00:00:01:14",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.21",
"targetIp": "192.168.0.99"
},
{
"time": 3585,
"source": "02:00:00:00:01:14",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.21",
"targetIp": "192.168.0.99"
}
],
"00000000-0000-0000-0000-000000000103": [
{
"time": 844,
"source": "02:00:00:00:01:14",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.21",
"targetIp": "192.168.0.99"
},
{
"time": 3585,
"source": "02:00:00:00:01:14",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.21",
"targetIp": "192.168.0.99"
}
],
"00000000-0000-0000-0000-000000000104": [
{
"time": 723,
"source": "02:00:00:00:01:14",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.21",
"targetIp": "192.168.0.99"
},
{
"time": 3473,
"source": "02:00:00:00:01:14",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.21",
"targetIp": "192.168.0.99"
}
]
},
"events": [
[
713,
"holeIPAdresse web.filius.de called"
],
[
14470,
"holeIPAdresse web.filius.de failed TimeOutException"
]
]
}
@@ -0,0 +1,206 @@
{
"frames": {
"00000000-0000-0000-0000-000000000101": [
{
"time": 725,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
},
{
"time": 959,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"arp": 2,
"senderIp": "192.168.0.10",
"targetIp": "192.168.0.20"
},
{
"time": 962,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 17,
"sourcePort": 49846,
"destinationPort": 53,
"payload": "ID=27710 QR=0 RCODE=0 QDCOUNT=1 ANCOUNT=0 NSCOUNT=0 ARCOUNT=0 \nwww.schule.de. A IN\n"
},
{
"time": 1191,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 17,
"sourcePort": 53,
"destinationPort": 49846,
"payload": "ID=27710 QR=1 RCODE=0 QDCOUNT=0 ANCOUNT=2 NSCOUNT=0 ARCOUNT=0 \nschule.de. NS 3600 ns.schule.de.\nns.schule.de. A 3600 192.168.0.11\n"
},
{
"time": 1192,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.11"
},
{
"time": 1414,
"source": "02:00:00:00:01:13",
"destination": "02:00:00:00:01:11",
"arp": 2,
"senderIp": "192.168.0.11",
"targetIp": "192.168.0.20"
},
{
"time": 1415,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:13",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.11",
"protocol": 17,
"sourcePort": 61850,
"destinationPort": 53,
"payload": "ID=14830 QR=0 RCODE=0 QDCOUNT=1 ANCOUNT=0 NSCOUNT=0 ARCOUNT=0 \nwww.schule.de. A IN\n"
},
{
"time": 1638,
"source": "02:00:00:00:01:13",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.11",
"destinationIp": "192.168.0.20",
"protocol": 17,
"sourcePort": 53,
"destinationPort": 61850,
"payload": "ID=14830 QR=1 RCODE=0 QDCOUNT=0 ANCOUNT=1 NSCOUNT=0 ARCOUNT=0 \nwww.schule.de. A 3600 192.168.0.40\n"
}
],
"00000000-0000-0000-0000-000000000102": [
{
"time": 846,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
},
{
"time": 848,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"arp": 2,
"senderIp": "192.168.0.10",
"targetIp": "192.168.0.20"
},
{
"time": 1075,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 17,
"sourcePort": 49846,
"destinationPort": 53,
"payload": "ID=27710 QR=0 RCODE=0 QDCOUNT=1 ANCOUNT=0 NSCOUNT=0 ARCOUNT=0 \nwww.schule.de. A IN\n"
},
{
"time": 1080,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 17,
"sourcePort": 53,
"destinationPort": 49846,
"payload": "ID=27710 QR=1 RCODE=0 QDCOUNT=0 ANCOUNT=2 NSCOUNT=0 ARCOUNT=0 \nschule.de. NS 3600 ns.schule.de.\nns.schule.de. A 3600 192.168.0.11\n"
},
{
"time": 1303,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.11"
}
],
"00000000-0000-0000-0000-000000000103": [
{
"time": 846,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
},
{
"time": 1303,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.11"
},
{
"time": 1303,
"source": "02:00:00:00:01:13",
"destination": "02:00:00:00:01:11",
"arp": 2,
"senderIp": "192.168.0.11",
"targetIp": "192.168.0.20"
},
{
"time": 1526,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:13",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.11",
"protocol": 17,
"sourcePort": 61850,
"destinationPort": 53,
"payload": "ID=14830 QR=0 RCODE=0 QDCOUNT=1 ANCOUNT=0 NSCOUNT=0 ARCOUNT=0 \nwww.schule.de. A IN\n"
},
{
"time": 1527,
"source": "02:00:00:00:01:13",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.11",
"destinationIp": "192.168.0.20",
"protocol": 17,
"sourcePort": 53,
"destinationPort": 61850,
"payload": "ID=14830 QR=1 RCODE=0 QDCOUNT=0 ANCOUNT=1 NSCOUNT=0 ARCOUNT=0 \nwww.schule.de. A 3600 192.168.0.40\n"
}
],
"00000000-0000-0000-0000-000000000104": [
{
"time": 846,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
},
{
"time": 1303,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.11"
}
]
},
"events": [
[
715,
"holeIPAdresse www.schule.de called"
],
[
1639,
"holeIPAdresse www.schule.de returned 192.168.0.40"
]
]
}
@@ -0,0 +1,114 @@
{
"frames": {
"00000000-0000-0000-0000-000000000101": [
{
"time": 726,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
},
{
"time": 960,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"arp": 2,
"senderIp": "192.168.0.10",
"targetIp": "192.168.0.20"
},
{
"time": 963,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 17,
"sourcePort": 56964,
"destinationPort": 53,
"payload": "ID=54840 QR=0 RCODE=0 QDCOUNT=1 ANCOUNT=0 NSCOUNT=0 ARCOUNT=0 \nx.unbekannt.org. A IN\n"
},
{
"time": 1192,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 17,
"sourcePort": 53,
"destinationPort": 56964,
"payload": "ID=54840 QR=1 RCODE=0 QDCOUNT=0 ANCOUNT=0 NSCOUNT=0 ARCOUNT=0 \n"
}
],
"00000000-0000-0000-0000-000000000102": [
{
"time": 848,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
},
{
"time": 849,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"arp": 2,
"senderIp": "192.168.0.10",
"targetIp": "192.168.0.20"
},
{
"time": 1076,
"source": "02:00:00:00:01:11",
"destination": "02:00:00:00:01:12",
"sourceIp": "192.168.0.20",
"destinationIp": "192.168.0.10",
"protocol": 17,
"sourcePort": 56964,
"destinationPort": 53,
"payload": "ID=54840 QR=0 RCODE=0 QDCOUNT=1 ANCOUNT=0 NSCOUNT=0 ARCOUNT=0 \nx.unbekannt.org. A IN\n"
},
{
"time": 1081,
"source": "02:00:00:00:01:12",
"destination": "02:00:00:00:01:11",
"sourceIp": "192.168.0.10",
"destinationIp": "192.168.0.20",
"protocol": 17,
"sourcePort": 53,
"destinationPort": 56964,
"payload": "ID=54840 QR=1 RCODE=0 QDCOUNT=0 ANCOUNT=0 NSCOUNT=0 ARCOUNT=0 \n"
}
],
"00000000-0000-0000-0000-000000000103": [
{
"time": 848,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
}
],
"00000000-0000-0000-0000-000000000104": [
{
"time": 848,
"source": "02:00:00:00:01:11",
"destination": "FF:FF:FF:FF:FF:FF",
"arp": 1,
"senderIp": "192.168.0.20",
"targetIp": "192.168.0.10"
}
]
},
"events": [
[
716,
"holeIPAdresse x.unbekannt.org called"
],
[
1192,
"holeIPAdresse x.unbekannt.org returned null"
]
]
}
@@ -0,0 +1,138 @@
{
"seed": 51,
"nodes": [
{
"id": "00000000-0000-0000-0000-000000000101",
"kind": "pc",
"ports": [
{
"id": "00000000-0000-0000-0000-000000000111",
"label": "eth0"
}
]
},
{
"id": "00000000-0000-0000-0000-000000000102",
"kind": "pc",
"ports": [
{
"id": "00000000-0000-0000-0000-000000000112",
"label": "eth0"
}
]
},
{
"id": "00000000-0000-0000-0000-000000000103",
"kind": "pc",
"ports": [
{
"id": "00000000-0000-0000-0000-000000000113",
"label": "eth0"
}
]
},
{
"id": "00000000-0000-0000-0000-000000000104",
"kind": "pc",
"ports": [
{
"id": "00000000-0000-0000-0000-000000000114",
"label": "eth0"
}
]
},
{
"id": "00000000-0000-0000-0000-000000000105",
"kind": "networkSwitch",
"ports": [
{
"id": "00000000-0000-0000-0000-000000000121",
"label": "sw1"
},
{
"id": "00000000-0000-0000-0000-000000000122",
"label": "sw2"
},
{
"id": "00000000-0000-0000-0000-000000000123",
"label": "sw3"
},
{
"id": "00000000-0000-0000-0000-000000000124",
"label": "sw4"
},
{
"id": "00000000-0000-0000-0000-000000000125",
"label": "sw5"
}
]
}
],
"links": [
{
"id": "00000000-0000-0000-0000-00000000F001",
"sourceNode": "00000000-0000-0000-0000-000000000101",
"sourcePort": "00000000-0000-0000-0000-000000000111",
"targetNode": "00000000-0000-0000-0000-000000000105",
"targetPort": "00000000-0000-0000-0000-000000000121"
},
{
"id": "00000000-0000-0000-0000-00000000F002",
"sourceNode": "00000000-0000-0000-0000-000000000102",
"sourcePort": "00000000-0000-0000-0000-000000000112",
"targetNode": "00000000-0000-0000-0000-000000000105",
"targetPort": "00000000-0000-0000-0000-000000000122"
},
{
"id": "00000000-0000-0000-0000-00000000F003",
"sourceNode": "00000000-0000-0000-0000-000000000103",
"sourcePort": "00000000-0000-0000-0000-000000000113",
"targetNode": "00000000-0000-0000-0000-000000000105",
"targetPort": "00000000-0000-0000-0000-000000000123"
},
{
"id": "00000000-0000-0000-0000-00000000F004",
"sourceNode": "00000000-0000-0000-0000-000000000104",
"sourcePort": "00000000-0000-0000-0000-000000000114",
"targetNode": "00000000-0000-0000-0000-000000000105",
"targetPort": "00000000-0000-0000-0000-000000000124"
}
],
"devices": {
"00000000-0000-0000-0000-000000000101": {
"ip": "192.168.0.20",
"mask": "255.255.255.0",
"dns": "192.168.0.10"
},
"00000000-0000-0000-0000-000000000102": {
"ip": "192.168.0.10",
"mask": "255.255.255.0"
},
"00000000-0000-0000-0000-000000000103": {
"ip": "192.168.0.11",
"mask": "255.255.255.0"
},
"00000000-0000-0000-0000-000000000104": {
"ip": "192.168.0.21",
"mask": "255.255.255.0",
"dns": "192.168.0.99"
}
},
"dnsServers": {
"00000000-0000-0000-0000-000000000102": {
"records": [
"web.filius.de A 192.168.0.30",
"filius.de MX mail.filius.de",
"mail.filius.de A 192.168.0.31",
"schule.de NS ns.schule.de",
"ns.schule.de A 192.168.0.11"
]
},
"00000000-0000-0000-0000-000000000103": {
"records": [
"www.schule.de A 192.168.0.40"
]
}
},
"steps": []
}