Higher BGP Local Preference for IX Peering: Good Practice or Bad?
So I've been working a lot with the Ohio IX an Internet Exchange Provider (IXP) based in, you guessed it, Ohio and noticed after maintenance windows, traffic levels tend to change a bit after BGP sessions are reset. This is likely due to the IX peers having the same BGP characteristics as IP transit peers and therefore selecting to use an IP transit path because it's preferred in BGP path selection. With that I decided to tweet regarding the recommendation that folks use a higher local preference with peering links to make it a little more deterministic to keep using the IXP consistently:
Been working with @ohioixp lately and have some advice for folks who are peering. Be sure to set a higher BGP local pref on your IX and other peering routes than your transits, slightly higher on bilateral peers than multilateral as well.
— Jason Gintert (@bitsinflight) August 31, 2021
I've always heard this from the folks I've worked with and did it myself at the last service provider I worked at so took it for granted. Then Gert Döring responded with the following on my tweet:
This was bad advice 20 years ago, and still is.
— Gert Döring (@Cron2Gert) August 31, 2021
That way you'll prepare arbitrarily long and poor paths "just because you got it via peering".
Get decent upstream providers, and only ever change local pref for BGP customers and for temporary(!) exceptions.
So it really got me thinking and also started a good discussion. It became a bit of a debate on Twitter which I recommend checking out, I won't post it all here. The purpose for this post was to put down some of my thoughts on why I recommended this, why I think it makes sense for a lot of network operators and also garner some opinion from others on their thoughts.
- Operators are always trying to strike a balance between cost and performance. Granted, IP transit is cheap but most IXPs are cheaper so setting higher local pref to prefer the exchange makes a lot of financial sense.
- Many of the smaller members of an exchange are largely regional so it probably makes sense that their traffic stays local on the IXP from a performance standpoint.
- Traffic engineering and regionalization with many CDNs and larger eyeball networks is pretty mature. From our experience, the performance to their prefixes is better at least in our region of Ohio. Many transits drag your traffic back to Chicago, IL or Ashburn, VA which is not always ideal depending on the destination.
So those are some of the reasons we recommend members of an IXP set a higher local preference. What do you think do you agree or disagree?