Published
Edited
Nov 16, 2021
1 fork
Insert cell
# Routing Beacons
RIS routing beacons are BGP prefixes that are announced and withdrawn at regular 2hr intervals. They are a good resource to learn about how BGP data propagates.

## Announce

## Withdraw

Withdrawal of a route is a messy affair. Depending on the networks between where you collect data and the origin of the withdrawal

Idea: how much of the signal we get from routing beacons is 'noise'
Insert cell
viewof starttime = Inputs.datetime()
Insert cell
viewof endtime = Inputs.datetime()
Insert cell
Plot.plot({
height: 4000,
marginLeft: 60,
facet: {
data: data,
y: "src"
},
marks: [
Plot.tickX(data, {
x: "ts",
strokeOpacity: (d) => {return d.type == "A" ? 0.2: 1.0},
stroke: (d) => {return d.type == 'A' ? "black" : "red"},
title: (d) => `src: ${d.src}`,
render: (d) => { console.log( "init" + d ) }
})
]
})
Insert cell
Plot.plot({
facet: {
data: data,
y: "type"
},
marks: [
Plot.tickX(data, {x: "ts", strokeOpacity: 0.1})
]
})
Insert cell
Plot.plot({
facet: {
data: data,
y: d => d.src.substr(0,2)
},
marks: [
Plot.tickX(data, {x: "ts", strokeOpacity: 0.1})
]
})
Insert cell
data = {
const url = "https://stat.ripe.net/data/bgplay/data.json?resource=84.205.67.0%2F24&unix_timestamps=TRUE&starttime=${starttime.getTime()/1000}&endtime=${endttime.getTime()/1000}";
let x = await fetch(url).then(j => j.json());
return x.data.events.map( x => {
let y = {};
y.ts = d3.timeParse("%s")( x.timestamp );
y.src = x.attrs.source_id + "-" + x.type;
y.type = x.type;
return y
});
}
Insert cell
updates_per_peer = {
const upd = data.reduce( (acc,u) => {
console.log( acc, u );
if (!acc[u.src]) {
acc[u.src] = [];
}
acc[u.src].push( u )
return acc
},
{});
return upd
}
Insert cell
import {Plot} from "@mkfreeman/plot-tooltip"
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more