BGPlay Integrated in RIPEstat
Routing data is very extensive and can be rather difficult to analyse and understand in its raw textual format. A better understanding can be achieved by describing the routing history of a set of Internet number resources in graphical terms.
BGPlay allows you to visualise changes in BGP routes associated with an Internet number resource (IP prefix or origin AS) or a group of resources. It provides a graphical representation of the links across all AS paths between the BGP collection points and the target resource(s). It also animates this graph over time via standard 'play' controls.
This lets you visualise and understand a variety of routing scenarios, such as prefix announcements/withdrawals, multi-origin prefixes, single/multi-homing, route flapping, prefix hijacking, AS interconnectedness, etc.
The new BGPlay tool is available at https://stat.ripe.net/bgplay
The original BGPlay was developed at Roma Tre University and relied on data collected by the RIPE NCC Routing Information System (RIS) from 2004 to 2009. The tool could be queried within a web browser as a Java applet.
Due to popular demand, the RIPE NCC teamed up once again with to produce an enhanced version of the tool, extending the functionality further and exploring modern web technologies.
The BGP data used in the visualisation is provided by RIS. Its 13 Route Collectors (RRCs) around the globe continuously collect data regarding BGP updates.
This data is filtered based on the user-requested subset of resources, time period and collection points (RIS Route Collectors), and served via the RIPEstat data API in two computed sections:
- The BGP initial state at the start of the time period - representing all the AS paths from the Route Collectors towards the set of prefixes/origin Autonomous Systems.
- All the BGP updates that occurred in the complete time period - representing the evolution of the BGP routes over the selected time period.
This computed data is also available and queryable as stand-alone in JSON format. A more extensive description of it can be found in the RIPEstat data API .
Integration with RIPEstat
This iteration of BGPlay is integrated into the RIPEstat framework and available as a widget. This allows you to take advantage of all the RIPEstat widget features, such as the ability to:
- Embed it on your own website
- Share permalinks to illustrate a routing scenario
- Access JSON source data directly
- Include it in your own personalised view on the RIPEstat website
- Switch between fullscreen and widget mode
- Integrated documentation and feedback
Find more about the RIPEstat widget API.
The controller is the sliding panel located in the upper right corner of the widget. It allows the user to specify details of a new query: a time interval, a set of Route Collectors and whether to ignore re-announcements or not.
The animation is controlled via the play/pause, step-back and step-forward buttons. Contrary to the previous BGPlay version, the time interval between two events is taken into account, with the objective of representing a proper perception of time. The animation of the time interval between two events is logarithmically proportional to the real interval in order to speed up the total animation. Moreover, the overall speed of the animation can be increased or decreased using the slider control in the widget footer 'options' panel.
The play/pause button starts and stops the animation. The stop button halts the animation and reloads the initial state; it is visible only when the animation is in progress. It's possible to re-animate the last event by shift- or ctrl-clicking the play button, which causes it to change to a repeat button.
The target origin AS is represented as a red node; an AS peering directly with a RIS Route Collector (AS12654) are the "leaf" nodes, represented in blue; any other traversed AS is shown in black. When a BGP announcement occurs, the creation of a new path connecting a set of nodes is animated. Each event involving that path triggers an animation specific to the event type.
The graph is initially centred and fitted to the window, but the user can pan and zoom using the mouse. All the static paths that do not change their route during the whole time interval are collapsed together in a dashed path and, if there is no ambiguity, they are also coloured the same.
When hovering over an AS node or link, all the paths passing through it are highlighted, and details about it are shown in the info panel. This can be useful for focusing on specific parts in very populated graphs.
The graph layout is automatically computed, but the user can still freely modify it by simply dragging nodes. Since dragging individual nodes can be tiresome, it's possible to select a set of nodes by double-clicking on them. Further, double-clicking and holding allows the user to add all the descendants of that node to the selection.
A custom graph layout can be saved in JSON format and later restored using the “layout” panel in the widget footer. The same panel also allows the user to retrieve a static SVG drawing of the graph.
There are two sections in the timeline panel. The first, called Control Timeline, shows the trend of the number of events over time. The second, called Selection Timeline, shows individual events ordered chronologically.
Both timelines feature a red cursor pointing to the current time instant. Clicking on the Control Timeline causes the current instant to change; the graph is consequently updated with all the events occurring between the old position and the new one.
The Selection Timeline is the most accurate tool to analyse single events. Each block represents a set of events occurring in the same second, coloured according to the event type. Clicking on an event will cause a jump to the time instant of that event, animating all the changes in between.
This timeline could potentially be very long (thousands of events); therefore, it auto-scrolls (and can also be dragged manually) to keep the current instant visible.
Each time the current instant changes, all available details about the last event is shown in the info panel.
The two green selectors in the upper part of the Control Timeline can be used to focus on a significant portion of the time interval. This limits the animation to only the BGP events within the selected time period, and is also indicated in the Selection Timeline.
Here are a few examples that illustrate different routing scenarios using BGPlay. Clicking on the images will open the particular scenario in the BGPlay widget.
1) Prefix Announcement and Withdrawal
2) Check IPv6 Connectivity
3) Load for Multiple Resources
4) View Multi-Origin Prefixes
5) Identify Bogon Route Announcements
There is one caveat that we need to add. Unfortunately, the current data set underlying the new BGPlay is not yet complete, so you may still miss some events when playing out some time periods in BGPlay at this moment. This is temporary, as we are working on a replacement for the existing back-end database and expect to be able to migrate to the new and complete data set in the weeks following the RIPE 66 Meeting. We will have a separate announcement about this when it's completed.
The BGPlay source code is freely available.
Do you have a suggestion, contribution, bug report or just general feedback regarding the new BGPlay? Please don't hesitate to contact us, either via the in-widget feedback or through any of these channels.