NETDISCO - Network discovery for peering

Let's say you have a network. In fact, you are the head IP ninja of AS23456 and you want to peer away some traffic for all the usual reasons...

Your flow collection system has determined, to no ones astonishment, that 50% of your traffic is from Google, Akamai and NetFlix and you are now seeking to interconnect with these networks.

Now, how do you go about peering with these networks?

Usually the process is something like; look in peeringdb.com and find an entry for the network in question. Hopefully they have an updated entry and perhaps an email address that you can reach out to. Once contact is established with a human you will verify that the locations specified in peeringdb.com indeed do work out and that they can meet you with 10G PNI in location X, Y and Z or perhaps over IX K, L and M.

If there isn't a peeringdb entry, you'll find some contact info through some other means, like `whois ASx` and the rest of the process is roughly the same.

With only three networks to peer with, this might be an acceptable solution but as your network scales out, so does the amount of networks to peer with and the number of locations. At a certain point you want to minimize the amount of manual work involved.

I would like to propose a mechanism for automatic network discovery. Through the use of simple YANG models a network can describe the PoPs available for peering and by publishing that in a standardized way, other networks can find the list of PoPs and find common PoPs suitable for interconnection.

For the purpose of peering, we already have an identifier (the AS number) of the remote network so all we need is a directory to look up a remote party to communicate with, in this case what I call, a YANG service node and then request from that YANG service node a list of PoPs available for peering. The most reliable directory created to date is probably DNS, so let's use that.

Each AS number has a corresponding entry under the TLD .netdisco (for NETwork DISCOvery) - like ASx.netdisco. The entry should point to a service that communicates YANG models. Let's say as23456.netdisco points to 192.0.2.1, which is your YANG service node (YSN). Another network could then issue a request to your YSN asking about a list of PoPs for the purpose ("service") of peering. Your YSN will return a list, the other network can find common PoPs and then send another request, this time for peering, with the list of proposed interconnection points and it is now up to your YSN to handle the request. You could have a policy that simply states that all AS numbers with more than X Mbps of traffic to/from your network should be automatically accepted or you could get a prompt for every request received.

If an IX is used for the interconnection, it is particularly easy to have an auto-accept mode for requests of peering over IX's.

What do you think? Would you like a cup of automatic peering?