[PDB Data Ownership-TF] IXP IP address assignment race condition and a possible solution

Chris Caputo ccaputo at alt.net
Thu Oct 10 10:04:19 PDT 2019


First, I'd like to apologize for using actual organization names during 
the meeting, especially since it is not critical to the issue discussed.  
I hope my words did not come across as disparaging, since they were not 
meant to.  Both are very fine organizations.  :-)

Upon examination, the particular issue would not have been helped by 
careful ordering/procedure, because unless the IX-F JSON export data is 
updated first and the IXP has knowledge of when PeeringDB has pulled and 
made use of the data, there will generally be a race condition between the 
IP address assignment by an IXP and the currency of the IX-F JSON export 
data present in PeeringDB.

Thus I believe this race condition should be accepted as being normal, and 
we need to expect it and design for it accordingly.

Like many, I agree that an IXP owns its address space and is the ultimate 
arbiter regarding it.  Thus I propose...

In cases where IX-F JSON export data is provided by an IXP and a 
particular network has set Allow_IXP_Update==no:

  - the conflicted data be indicated as such on the network's /net/ page, 
    possibly with an asterisk or color indicating it isn't in agreement 
    with the IXP.  A legend for the asterisk or color could indicate that 
    the data may become accurate over time or may simply be inaccurate.  
    If over time, such as a future IX-F JSON import, the data becomes 
    correct, then the indication would change toward affirmative or 
    neutral depending on the UI design.  Further, if decided appropriate 
    such as by ProductComm, there could be automatic emails to the network 
    explaining any conflict, and additional email explaining if and when a 
    conflict is automatically resolved.

In cases where IX-F JSON export data is provided by an IXP and regardless 
of Allow_IXP_Update setting of a given network:

  - conflicted data would not be present in an /ix/ page, thus maintaining 
    the authority of the IXP

  - conflicted data would not be present in data queried by the API (for 
    example: https://www.peeringdb.com/api/ixlan/13), thus maintaining the 
    authority of the IXP and preventing usability by provisioning systems 
    until the IXP confirms data requested by the network (either in the 
    form of manual entry by the network or Allow_IXP_Update==yes)

The above enables the IXP to remain authoritative (should they choose to 
be by providing IX-F JSON export) while enabling networks that manage 
their own data (Allow_IXP_Update==no) to enter data into PeeringDB at 
their convenience without it being erased.

The IX-F JSON importer, when it ran, was running once per day.  If there 
are concerns about delays in allowing provisioning systems to make use of 
updated data, the importer could be made to run more frequently.

Thoughts?

Chris


More information about the DataOwnership-TF mailing list