Routing Information Service Live (RIS Live)

RIS Live is currently only a prototype. If you would like us to continue developing it, please fill in our survey.

RIS Live is a feed that offers BGP messages in real-time. It collects information from the RIS Route Collectors (RRCs) and uses a WebSocket JSON API to monitor and detect routing events around the world. A non-interactive full stream ("firehose") is also available.

RIS Live has already been used by some organisations for academic and research purposes. In 2017, INSPIRE group and CAIDA used RIS Live to develop ARTEMIS, a real-time BGP hijack detection tool. The software development stage had received funding from the RIPE NCC Community Projects Fund 2017.

RIS Live is currently only a prototype. Please give us your feedback by filling in our survey. This will help us assess if we should continue developing it as a way of accessing RIS, together with RIPEstat and the RIS Raw Data dumps. Any bug reports or queries should be sent to rislive@ripe.net.

Quickstart

  • You can play with the demo below to get an idea of the data and filters that are provided.
  • You can then look at the code examples and the manual to learn how to integrate RIS Live in your own tools.
  • Fill in the survey!

Demo

Subscriptions to the stream are sent as a JSON object containing various filter parameters. You can adjust the parameters below and see the messages that are streamed on the right.



            

Code examples

Below are simple examples of using the RIS Live WebSocket interface. For a full guide, see the RIS Live manual.

/*
Subscribe to a RIS Live stream and output every message to the javascript console.

The exact same code will work in Node.js after running 'npm install ws' and including the following line:

const WebSocket = require('ws');
*/
var ws = new WebSocket("?client=js-example-1");
var params = {
    moreSpecific: true,
    host: "rrc21",
    socketOptions: {
        includeRaw: true
    } 
};
ws.onmessage = function(event) {
    var message = JSON.parse(event.data);
    console.log(message.type, message.data);
};
ws.onopen = function() {
    ws.send(JSON.stringify({
        type: "ris_subscribe",
        data: params
    }));
};
"""
Subscribe to a RIS Live stream and output every message to stdout.

IMPORTANT: this example requires 'websocket-client' for Python 2 or 3.

If you use the 'websockets' package instead (Python 3 only) you will need to change the code because it has a somewhat different API.
"""
import json
import websocket

ws = websocket.WebSocket()
ws.connect("?client=py-example-1")
params = {
    "moreSpecific": True,
    "host": "rrc21",
    "socketOptions": {
        "includeRaw": True
    }
}
ws.send(json.dumps({
	"type": "ris_subscribe",
	"data": params
}))
for data in ws:
    parsed = json.loads(data)
    print(parsed["type"], parsed["data"])

Live RIS BGP messages

Connecting
0 matching messages   ~0 kbit/s