Proposal to Display History of Objects in the RIPE Database

Kaveh Ranjbar — Mar 27, 2013 01:35 PM
Contributors: Denis Walker
Filed under:
Objects are created in the RIPE Database and are updated regularly by their maintainers. However, at the moment there is no mechanism to see the history of changes to an object. There are many cases where RIPE Databases users want to investigate the history of changes to an object. We would like to propose building this functionality in the RIPE Database.

Update 12 April 2013: After receiving the go-ahead on the Database Working Group mailing list, this service has now been deployed as a Beta service. 

Background

The RIPE NCC keeps the history of changes to all objects in the RIPE Database, and some historical data of objects is available through RIPEstat’s registry browser widget. However, it has never been exposed through the RIPE Database directly.

If the proposal is approved, the data will be made available through all interfaces to the RIPE Database, including port 43 queries, web based queries and RIPE Database query API.

How will it work

Using the legacy port 43 interface to the RIPE Database as an example, we can provide the data with a special flag. First, we will provide a facility to lookup version changes for a specific object:

$whois -h whois.ripe.net -- "--list-versions ORG-RIEN1-RIPE"
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: this output has been filtered.
%       To receive output for a database update, use the "-B" flag.

% Version history for object "ORG-RIEN1-RIPE"
% You can use "--show-version rev#" to get an exact version of the object.


rev#  Date              Op.

1     2012-03-09 14:21  ADD/UPD
2     2012-03-09 14:24  ADD/UPD
3     2012-03-09 15:06  ADD/UPD
4     2012-03-09 15:30  ADD/UPD
5     2012-03-09 16:04  ADD/UPD
6     2012-03-09 16:04  ADD/UPD
7     2012-03-09 16:07  ADD/UPD
8     2012-03-16 11:23  ADD/UPD
9     2012-03-19 17:32  ADD/UPD
10    2012-03-20 13:15  ADD/UPD
11    2012-04-16 14:48  ADD/UPD
12    2012-04-18 09:44  ADD/UPD
13    2012-04-25 09:58  ADD/UPD
14    2012-04-25 09:59  ADD/UPD
15    2012-04-25 10:02  ADD/UPD
16    2012-05-03 16:54  ADD/UPD
17    2012-06-28 10:29  ADD/UPD
18    2012-08-10 15:41  ADD/UPD
19    2012-08-10 15:57  ADD/UPD
20    2012-08-10 16:00  ADD/UPD
21    2012-08-10 16:19  ADD/UPD
22    2013-03-19 17:10  ADD/UPD

% This query was served by the RIPE Database Query Service version 1.57.1 (WHOIS4)


Then there will be a facility to lookup a specific version of the object, for example:

$ whois -h whois.ripe.net -- "--show-version 1 ORG-RIEN1-RIPE"
% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: this output has been filtered.
%       To receive output for a database update, use the "-B" flag.

% Version 1 of object "ORG-RIEN1-RIPE"
% This version was a UPDATE operation on 2012-03-09 14:21
% You can use "--list-versions" to get a list of versions for an object.

% Information related to 'ORG-RIEN1-RIPE'

organisation:   ORG-RIEN1-RIPE
org-name:       Reseaux IP Europeens Network Coordination Centre (RIPE NCC)
org-type:       RIR
descr:          RIPE NCC Operations
address:        Singel 258
1016 AB Amsterdam
NETHERLANDS
phone:          +31205354444
fax-no:         +31205354445
mnt-ref:        RIPE-NCC-HM-MNT
mnt-by:         RIPE-NCC-HM-MNT
source:         RIPE # Filtered

% This query was served by the RIPE Database Query Service version 1.57.1 (WHOIS4)

 

Basis for the service

In many cases users contact the RIPE NCC in order to look up the history of changes for an object. One of the common use cases is to investigate the state of route objects in the past or to investigate an operational change, in many cases involving an organisation’s own objects.

Other than network operators, researchers have also asked the RIPE NCC for this feature: Providing history of changes gives them access to a lot of data which helps with analysing the changes in behaviour of Internet systems and in general how the Internet evolves.

The data has always been publicly available, through the RIPE Database itself as well as through our NRTM feed and nightly dump files. Some of the interested parties have already collected this dataset in order to be able to perform their analysis, but with this new service it won’t be necessary to do so.

The RIPE Database's historical dataset is quite accurate. However, there might have been cases were some changes are missing in the history, mainly for technical reasons. So the historical data will be provided with no guarantee of the integrity. Having said that, we believe the dataset is very reliable.

Restrictions

We will not return objects with personal data (i.e. person and role objects) in the result list nor show any version of them. The historical data in those objects might have been removed based on a user’s request.

We also do not show history of deleted objects. At the moment the service only works with objects that are currently in the RIPE Database. If the community finds it useful to add deleted records to the history, we can always implement that.

Since we do not return any objects with personal data, no data protection limitations are in place for this service. Like RIPE Database normal behaviour, access to all data (except for person and non abuse-contact role objects) is unlimited.

As this new service will be offered via the RIPE Database, access to it will be covered by the RIPE Database Terms and Conditions as well as RIPE Database Acceptable Use Policy. Our legal department is currently looking into our policies and agreements to make sure that the new service will be fully in line with RIPE NCC’s legal obligations and practices.

The way forward

If there are no objections to the new service, we will add it to the RIPE Database query interfaces and will announce the service as a Beta feature of the RIPE Database.

After that, we can improve it based on the feedback received from the community, for example we can add a diff. functionality to highlight differences between different versions of an object. Another possible idea is to provide a date-based change history beside the version-based history or to add deleted objects to the change list.

If you are interested in the service or have any comments or concerns, please kindly participate in the discussion in the RIPE Database working group.