Evaluate traffic on Internet Exchanges (IX) and Data Centers (PNI) with PeeringDB
Some features are hidden jewels that are hard to spot: they don't come with a shiny UI that make them stand out, but they pack some heavy punch and you wouldn't know unless someone reveals their true power to you.
This is one of those features. More often than not, assessing the benefits (aka the amount of traffic that can be peeled off to the IX) in joining a certain exchange requires so much discouraging work that these decisions end up being made on a gut feel, almost as an act of faith.
Enter the Data Explorer PeeringDB filter dimensions!
The theory
Let's say we want to evaluate how much of our actual traffic could be peered off at a specific Internet Exchange. What do we do as a Network Engineer without access to Kentik ?
- Collect source ASN or destination AS flow data inbound and outbound, then dump it in a spreadsheet
- For each ASN in that breakdown, list all Internet Exchanges that they are present either via leveraging the PeeringDB public API, or manually by reviewing all ASNs' PeeringDB record – some ASNs are at tens if not hundreds of exchanges...At the same time, note what their peering policy is.
- Run that ASN list through a sieve to only keep those at the Internet Exchange you are interested in, and that have a peering policy you can comply with.
- Sum all the resulting traffic.
Having done this routinely in my career, I can safely say that:
Either you have coding skills and you can code your way out of it... or you don't and this will take multiple hours. This outlines the issue of inefficient peering decisions: analytical decisions are gated by an inordinate difficulty in collecting and correlating simple data sets together, and the common result is that hunches and arcane culture end up replacing the science.
So how does it work ?
Here's how we wanted this to work: add filters to Data Explorer, so that users can make these types of queries – let's think SQL for a second:
Show me my top Destination ASNs where said ASNs are registered in this specific IX, with an open policy
When the query is run, Kentik's Data Engine issues a two steps query:
- Pulls the list of top destination ASNs,
- Pulls the list of ASNs at this specific IX and filter it by the list returned in the first step.
Remember, Kentik is mirroring the PeeringDB database daily, so this information is always fresh.
and Voila !
Cool story bro, now just show me a real life example kthx.
Let's try this with a concrete example: Kentik is present at Linx NoVA. I want to know how much inbound traffic we can peel off from our Transit upstreams at this exchange. We've got a few peering sessions there, but I have a hunch I can reclaim quite a bit of bandwidth through this exercise – let's see if I'm right.
I'm going to look at these dimensions, no surprise here
But when building my filter, I'm going to use this new PeeringDB section here, where I can now set whatever IX I want my source top ASNs to be part of:
Notice how you can leverage this same dimension with a "SOURCE or DESTINATION ASN is member of this IX"
You'll notice that this filter item sources its values directly from PeeringDB, so I'll enter "LINX NoVA" for "Source ASN is Member of IX" – note that I'm filtering on Source Network Boundary = External because I just want to see the traffic coming into my network.
My intuition gets confirmed: if I look at the resulting SanKey diagram, it appears that only a small part of traffic towards LINX NoVA member ASNs I receive traffic from is actually coming through my IX port at LINX NoVA, see for yourself.
According to this query, I could peel ~384Mbps from inbound Transit traffic to this exchange by establishing the right sessions with these ASNs on the right side of diagram I'm currently receiving traffic from.
Now If I really want to get a realistic estimate, I need to ensure that I'm only considering traffic from ASNs with an Open Peering Policy - no problem: PeeringDB also has that information, so let's just add it to the filter
And so the Transit part of the previous SanKey gets revised with a bit less traffic because the query engine is now discarding source ASNs without an Open Policy:
As always, there's more!
There are more use cases that this well-hidden gem empowers our users to do:
- Reclaim Transit traffic and convert it to IX peering traffic, and more importantly maximize the use of your IX ports
- Identify PNIs to secure with IX peering as a fallback, or additional peering locations you can meet your existing peers at for more resilience
- More than anything: evaluate which IX to deploy to next based on how much assured traffic you can peer off and estimate the port capacity you will need.
All of these are focused around IXes, but the same applies to this other filter dimension set: "<Source | Destination | both> ASN member is available at <specific datacenter facility>" – which helps you answer the same use case, but from a data center standpoint for PNIs.
This is a pivotal step towards an even better outcome: what if every day, Kentik ran a report on all of your top Source or Destination ASNs and made informed, analytical suggestions about which of them you should go next?
Watch this space, because this is where we are headed.