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:

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:

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?