User Tools

Site Tools


provenance:design:dns

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
provenance:design:dns [2026/09/17 02:16] – Follow-up 2026-09-17: reconciled the ZMap/XMap counts with programming:internet_scanning (one compound tools[] string, not an overlap); scanner-generic 156->155, ZGrab 31->32, residue 976->975. Authored by Claude karel.kubicek.claudeprovenance:design:dns [2026/09/17 09:37] (current) – Record RFC prose follow-up and source checks; Authored by Claude karel.kubicek.claude
Line 167: Line 167:
     34 papers   34 spellings  home-grown DNS code     34 papers   34 spellings  home-grown DNS code
  
-[scanner-generic] union 155 papers corpus-wide, 37 of them in DNSPOP — reported only, NOT in the population rule +[scanner-generic] union 154 papers corpus-wide, 37 of them in DNSPOP — reported only, NOT in the population rule 
-   111 papers   13 spellings  ZMap / XMap+   110 papers   13 spellings  ZMap / XMap
     33 papers    4 spellings  Scapy     33 papers    4 spellings  Scapy
     32 papers    7 spellings  ZGrab     32 papers    7 spellings  ZGrab
Line 206: Line 206:
  
 --- F. FOLD RESIDUE AND WHAT WAS DELIBERATELY EXCLUDED --- --- F. FOLD RESIDUE AND WHAT WAS DELIBERATELY EXCLUDED ---
-candidate tool tuples matched by the loose sweep: 975+candidate tool tuples matched by the loose sweep: 974
 unmapped residue: 2 distinct strings, 2 tuples unmapped residue: 2 distinct strings, 2 tuples
     1  "IEEE Organizationally Unique Identifier registry"     1  "IEEE Organizationally Unique Identifier registry"
Line 213: Line 213:
 mapped but excluded from the population rule (papers): mapped but excluded from the population rule (papers):
    113  adjacent:registry-metadata — WHOIS / RDAP    113  adjacent:registry-metadata — WHOIS / RDAP
-   111  scanner-generic — ZMap / XMap+   110  scanner-generic — ZMap / XMap
     75  vantage-platform — RIPE Atlas     75  vantage-platform — RIPE Atlas
     52  adjacent:registry-metadata — Public Suffix List / TLD lists     52  adjacent:registry-metadata — Public Suffix List / TLD lists
Line 552: Line 552:
  
 **One quote is normalised and says so on the page.** Ager et al. (IMC 2010) is rendered "2 , 000" and "10, 000" with a stray space and "dif- fer" hyphenated across a line break — in ''paper.cols.txt'' **and** in a ''pypdf'' re-extraction of ''paper.pdf'', so it is the source's own typesetting, not a column-repair artefact. The page carries a footnote saying so. **One quote is normalised and says so on the page.** Ager et al. (IMC 2010) is rendered "2 , 000" and "10, 000" with a stray space and "dif- fer" hyphenated across a line break — in ''paper.cols.txt'' **and** in a ''pypdf'' re-extraction of ''paper.pdf'', so it is the source's own typesetting, not a column-repair artefact. The page carries a footnote saying so.
 +
 +===== RFC prose follow-up (2026-09-17) =====
 +
 +The external-currency pass in [[#Review log]] intentionally left RFC 9460, RFC 9567, RFC 9520 and RFC 9606 out of the page: four bare RFC numbers would be a reading list, not measurement guidance. This follow-up adds one measurement-facing paragraph for each. It adds no corpus figure and no bibliography entry. The four paragraphs were checked against the [[https://www.rfc-editor.org/rfc-index/|RFC Editor index]] and the individual RFC records on 2026-09-17.
 +
 +<code>
 +Command run:
 +bash scripts/external_checks_dns.sh | awk '/^== RFCs the page names/{show=1} /^== GitHub repositories/{show=0} show {print}'
 +
 +Relevant checker output on 2026-09-17:
 +RFC9460   November 2023  PROPOSED STANDARD  obs_by=-          upd_by=-            Service Binding and Parameter Specification via the DNS
 +RFC9520   December 2023  PROPOSED STANDARD  obs_by=-          upd_by=-            Negative Caching of DNS Resolution Failures
 +RFC9567   April 2024     PROPOSED STANDARD  obs_by=-          upd_by=-            DNS Error Reporting
 +RFC9606   June 2024      PROPOSED STANDARD  obs_by=-          upd_by=-            DNS Resolver Information
 +
 +Source records read:
 +https://www.rfc-editor.org/info/rfc9460/
 +https://www.rfc-editor.org/info/rfc9567/
 +https://www.rfc-editor.org/info/rfc9520/
 +https://www.rfc-editor.org/info/rfc9606/
 +</code>
 +
 +The required delegated model 'sonnet' external-currency pass was attempted for this prose change, but the available delegation service rejected model ''sonnet'' (only GPT models were exposed). No alternate model was substituted. I manually re-read the four fetched RFC Editor records and found no correction to the four paragraphs; this environment limitation is recorded rather than mislabeled as a Sonnet result.
  
 ===== External checks ===== ===== External checks =====
Line 1337: Line 1360:
 ^ Family ^ Was ^ Now ^ Why ^ ^ Family ^ Was ^ Now ^ Why ^
 | ''ZGrab'' | 31 papers, 6 spellings | **32**, 7 spellings | the compound string now also counts as ZGrab, which is what the paper says | | ''ZGrab'' | 31 papers, 6 spellings | **32**, 7 spellings | the compound string now also counts as ZGrab, which is what the paper says |
-| ''ZMap / XMap'' | 112 papers | **111** | unchanged by the split; **−1** from the tuple suppression below | +| ''ZMap / XMap'' | 112 papers | **110** | unchanged by the split; **−2** from the tuple suppressions below | 
-| ''scanner-generic'' union | 156 corpus-wide, 38 in DNSPOP | **155**, **37** | same suppression | +| ''scanner-generic'' union | 156 corpus-wide, 38 in DNSPOP | **154**, **37** | same suppressions | 
-| candidate tuples in the loose sweep | 976 | **975** | same suppression |+| candidate tuples in the loose sweep | 976 | **974** | same suppressions | 
 + 
 +**The tuple suppressions.** Two papers, both found while hand-auditing the other fold, and each costing this page one ''ZMap / XMap'' paper. They live in ''scripts/tool_use_overrides.mjs'', which //both// report scripts import, because "this tuple is not an instrument the paper used" is a fact about the tuple and not about either page. 
 + 
 +  - **IMC 2024 //Have you SYN me?//** is a pure network-telescope study that never ran the scanners its ''tools[]'' names — the extraction's own ''purpose'' fields read //"Fingerprint ZMap-generated scanning traffic"//, and the paper says //"we find no evidence of Unicorn being used for Internet-wide scanning"//. Four tuples suppressed, one of them ZMap. 
 +  - **USENIX 2022 //Spoki//** did run ZMap, but only inside its own machine: //"A local pair of virtual Ethernet interfaces route packets between the packet source and Spoki. We use ZMap to generate TCP SYN packets, passing the MAC address of the destination interface along with a probing rate and a range of IP addresses to use as a source."// The address range is a synthetic //source// prefix; nothing is probed. Found by a review pass on 2026-09-17, **after** the first version of this section had already been published saying the count was 111.
  
-**The tuple suppression.** While hand-auditing the other fold, IMC 2024 //Have you SYN me? Characterizing Ten Years of Internet Scanning// turned out to be a pure network-telescope study that never ran the scanners its ''tools[]'' names — the extraction's own ''purpose'' fields read //"Fingerprint ZMap-generated scanning traffic"// and the paper says //"we find no evidence of Unicorn being used for Internet-wide scanning"//. Four of its tuples are suppressed in ''scripts/tool_use_overrides.mjs'', which //both// report scripts import, because "the paper did not run this" is a fact about the tuple and not about either page. One of the four is ZMap, so this page loses one paper from ''ZMap / XMap''. The paper's ''massDNS'' entry is **not** suppressed and DNSPOP is unchanged at **244**.+Neither paper's other DNS tuples are suppressed, and **DNSPOP is unchanged at 244**.
  
-After both changes the two pages agree exactly: ZMap ∪ XMap = **111** on both sides, ZGrab = **32** on both, symmetric difference **0**. ''reconcile_zmap.mjs'' exits 1 if they ever diverge again, and also if a new compound ''tools[]'' name appears whose lost part is a ''DNS_KIND'' here or a membership kind there. It was mutation-tested on 2026-09-17: removing the ''%%zgrab/zmap%%'' entry produced three failures.+After all of it the two pages agree exactly: ZMap ∪ XMap = **110** on both sides (94 + 16 there), ZGrab = **32** on both, symmetric difference **0**. ''reconcile_zmap.mjs'' exits 1 if they ever diverge again, and also if a new compound ''tools[]'' name appears whose lost part is a ''DNS_KIND'' here or a membership kind there. It was mutation-tested on 2026-09-17: removing the ''%%zgrab/zmap%%'' entry produced three failures.
  
 **Compound-name recall.** A blanket split would be wrong — ''miekg/dns'' is a GitHub path this fold depends on reading whole. The sweep is therefore a guard, not a rule: it looks at every used-or-produced ''tools[]'' name containing ''/'', '' + '', '' and '', '' & '' or a comma (**263 tuples**) and prints each one whose parts fold to a family the whole string does not. There are **four**. Only ''%%ZGrab/ZMap%%'' touches a figure on either page; ''%%HTTP/OneProbe%%'' is one product name, and ''%%tcpdump/libpcap%%'' and ''%%WireShark/tshark%%'' fold to kinds neither page counts. All four are printed in the reconciler's output whether or not they were split. **Compound-name recall.** A blanket split would be wrong — ''miekg/dns'' is a GitHub path this fold depends on reading whole. The sweep is therefore a guard, not a rule: it looks at every used-or-produced ''tools[]'' name containing ''/'', '' + '', '' and '', '' & '' or a comma (**263 tuples**) and prints each one whose parts fold to a family the whole string does not. There are **four**. Only ''%%ZGrab/ZMap%%'' touches a figure on either page; ''%%HTTP/OneProbe%%'' is one product name, and ''%%tcpdump/libpcap%%'' and ''%%WireShark/tshark%%'' fold to kinds neither page counts. All four are printed in the reconciler's output whether or not they were split.
Line 1368: Line 1396:
 | [[:design]] | DNS row added to the namespace table and the page count corrected | | [[:design]] | DNS row added to the namespace table and the page count corrected |
 | [[design:automated_measurements]] | the scan row of the routing table now points at [[design:dns]] for DNS rather than at the TLS and IP pages | | [[design:automated_measurements]] | the scan row of the routing table now points at [[design:dns]] for DNS rather than at the TLS and IP pages |
-| [[design:dns]] //(2026-09-17)// | rev 1787872903 → 1789611329: the generic-scanner sentence now gives 111/32/37 and names the agreement with [[programming:internet_scanning]]; the fold-residue sentence 976 → 975 |+| [[design:dns]] //(2026-09-17)// | rev 1787872903 → 1789612622, saved twice: the generic-scanner sentence now gives **110**/32/37 and names the agreement with [[programming:internet_scanning]]; the fold-residue sentence 976 → **974**. The first save said 111 and 975; a review pass then found the Spoki tuple. |
  
 ===== Review log ===== ===== Review log =====
provenance/design/dns.1789611395.txt.gz · Last modified: by karel.kubicek.claude