Separate on purpose
Radar route leaks have their own queue and dossier, outside Proofline. KEV and EPSS guide vulnerability collection; they do not label routing incidents. Country context does not enter routing features.
Learn what BGPKit adds to Signal Atlas.
Replay the evidence. Challenge the model.
Know exactly where the claim must stop.
7 guided modules · interactive exercises · no installation required
BGPKit adds reach into history.
Observer lineage determines independence.
Inspect an advertised path. Separate prepending from a non-adjacent repeat. Replay an origin change.
Open the workbench ↗02 / CHALLENGEAdd six receipts and watch independent observer counts refuse to follow the number of tools.
Test the lineage ↗03 / INTEGRATEExtend the existing model with replay features, honest evaluation and explicit abstention.
Design the experiment ↗Signal Atlas already solves source-overlap accounting. BGPKit belongs upstream of that contract as historical acquisition and parsing—not beside it as a new confidence vote.
Seven short missions. Read the objective, work the example, then defend your answer. Progress is saved in this browser.
A source-grounded map of Signal Atlas at 16ba3e2. Select a stage to inspect its behavior and implementation anchors.
Radar route leaks have their own queue and dossier, outside Proofline. KEV and EPSS guide vulnerability collection; they do not label routing incidents. Country context does not enter routing features.
RIPE Atlas has an approved-request lifecycle, but result receipt ingestion is not built. Planet catalog is default-off. Mission and intelligence governance need identity/provider completion; OAP keeps those claims locked.
“Current” means implemented in the reviewed repository. Deployed configuration, source freshness and production parity are separate checks. Source file names are review anchors, not public repository links.
Inspect a plain AS sequence before turning it into a feature. These calculations run locally; this is not an MRT parser or an attack detector.
Expected origin AS64500 · one synthetic collector-peer view
Observation time: when the collector saw it. Fetch time: when the adapter retrieved it. Validation time: when authorization was assessed. A current ROA lookup cannot silently become historical proof.
Toggle the inputs. The exercise applies Atlas’s conservative peer-AS counting rule; it does not run the complete production Proofline evaluator.
Radar’s exposed peer set in this exercise is {AS64510}. Unknown overlap is not a certificate of independence. All direct examples describe the same prefix, origin and time window.
A receipt digest protects provenance. A semantic observation key links replay and live transports. Then peer-AS lineage bounds independent support. Keep all three layers; collapsing them into one hash loses either provenance or the duplicate relationship.
Two existing read-only data paths. Nothing runs until you request it. Discovery finds archives; Radar supplies provider-reported candidate events.
UTC timestamps only. Results are capped at 10 files; this is not an exhaustive search. An empty result is an archive-discovery gap, not proof of no routing activity.
Minimum provider confidence filter: 8. Scores remain provider values, not probabilities. Radar may share underlying peers with your direct collectors; independence requires case-specific overlap checks.
Broker returns the MRT file URL. The external Parser then streams route elements for a bounded investigation. Keep the file hash, record position, peer identity, parser version and original path. The browser exercise above is a separate teaching tool.
import bgpkit
# Use an archive URL returned by Broker.
parser = bgpkit.Parser(url=archive_url)
for elem in parser:
# Preserve the native record before normalizing.
print(elem)API illustration based on the current official Python bindings; not an installed or executed parser job. Pin and validate the package version on the replay runner before use.
The first model decision is architectural: extend and evaluate the existing pipeline before introducing a second anomaly score.
deterministic-knn-v1 compares bounded cases. The committed baseline is four benign and four suspicious synthetic analogues. It abstains without enough eligible reviewed examples. Its index is uncalibrated.
Add origin novelty against a pre-event baseline, effective path-length change, prepend ratio, withdrawals, visibility loss and new adjacencies. Version the feature contract; retain missingness and collector coverage.
The model may rewrite fixed narrative slots. Code owns facts, citations, hypotheses and actions. The OAP branch does not currently consume kNN output. A model never releases an alert.
This is a design check, not a trained model or measured accuracy result.
No target accuracy is claimed. Establish the current deterministic/kNN baseline first, then report held-out differences and uncertainty.
Fit scalers on training folds only. Keep unknown labels out of the benign class. Retraining and probability calibration require a real reviewed corpus.
Evaluate Isolation Forest as a shadow novelty-ranking challenger on clean pre-event numeric features. Compare against the existing kNN and deterministic rules. Retain it only if analyst utility improves under the same holdout and review budget. No inference or training is running in this lab.
The lab is implemented. The production adapter below is a proposal, anchored to the real receipt contract—not a claim that Atlas already ingests BGPKit.
Exact prefix and event window, prior RIB, ordered updates, collector inventory, bounded downloads, raw file hashes, parser version and gap ledger. Execute on existing compute, outside the request-serving Worker.
Extend ControlPlaneSource and SQL source CHECK constraints deliberately. Retain underlying collectorFamily, collectorLineage and peerLineage. Preserve AS sets; add message type and historical mode. Do not masquerade replay as live.
Replay the same bundle twice: same semantic observations, no new independent peers. Change fetchedAt only: no new historical claim. A withdrawal, set, stale validator or missing segment must not become fabricated evidence.
Compare historical features with the current model in shadow mode. Review failures and counterevidence. Promote only after receipt, freshness, lineage, retention, licensing and governed access tests pass.
| Replay input | Atlas contract | Required treatment |
|---|---|---|
| Collector + peer ASN/IP | collectorFamily / collectorLineage / peerLineage | Retain RIS or RouteViews; peer-as:<ASN> remains the boundary. |
| Prefix + path segments | watchedPrefix / observedPrefix / asPath / originAsns | Exact case scope. Preserve sets; do not invent one origin. |
| Record time + retrieval time | observedAt / fetchedAt | Historical mode is explicit; retrieval time cannot refresh evidence age. |
| Archive + record position | sourceNativeId / sourceUrl / raw | Add file digest, position, message type and parser version. |
| Transform + run provenance | observationDigest / transformVersion / retrievalRunId / licenseClass | Keep integrity digest; add cross-transport semantic linkage separately. |
Production source union currently permits only ripe-ris-live and routeviews-rib. A new identifier requires an explicit migration and corresponding readers/tests. No schema changes have been applied by this lab.
Source review: fetched Forgejo origin/main on 7 September 2026; clean checkout at 16ba3e2ff66866870e06ee701460340ad0bc6c5b. Inspected ingestion, receipt types/persistence, source-lineage rules, Proofline, graph features, model assurance and deployment configuration. This is a focused integration review, not a full security audit or proof of deployed/source parity.
BGPKit’s lookup tools can add ASN, IP and community context. They are enrichment aids—not evidence of physical path or an actor. Historical ROA lookup is an integration candidate requiring event-time and validation checks.