Russ

Author Archives: Russ

Reaction: Issue a press release

Ladies and gentlemen, start your crystal balls—it is close to the end of the year, that favorite time of prognosticators and analysts everywhere to tell us what is going to be “hot” and “not” next year. But before you drop out of a good conversation with your family, or sitting around the dinner table eating one more piece of pie, let me ask—have you ever checked on last year’s predictions?

Here is a favorite of mine: “Books will soon be obsolete in schools.” So up to the minute, right? So in touch with the reality of today. Only it’s not. This is Thomas Edison in 1913. While I wasn’t alive back then to read the papers, I can assure you I’ve heard many other folks make the same prediction in the intervening years. The way these sorts of predictions normally work is this:

  • Choose a technology that seems directly related to an existing way of doing things. The current way of doing things, or the current technology, needs to be widespread, recognizable, and somehow seen as “fundamental.” In the modern networking world, routers would be an equivalent.
  • Choose a date that is just far enough ahead to seem Continue reading

BGP Tools for the DFZ (1)

Why isn’t inbound load balancing working the way I expect? Why are users having a hard time reaching my web site? What is that strange advertisement I see in my local routing table, and where does it lead? The Default Free Zone (DFZ), the land where there is no default route from the edge of the Internet to the core, can seem like an intimidating place to work. There are, however, a number of tools that can help you discover what is going on with your routes, where routes are coming from, and other information. This short series of posts will provide an overview of these tools, and some use cases along the way to help you understand how and where to use them.

Note: throughout this series, I’m going to be using the LinkedIn AS number and routes, as well as the AS numbers of other public companies for illustration. I’m deviating from my normal practice of using addresses and AS numbers reserved for documentation in order to make it possible for readers to perform the same actions and get something like the same results. Do not use these addresses or AS numbers in your network!

Let’s start by Continue reading

snaproute Go BGP Code Dive (13): Finding the tail of the update chain

Just in time for Hallo’ween, the lucky thirteenth post in the BGP code dive series. In this series, we’re working through the Snaproute Go implementation of BGP just to see how a production, open source BGP implementation really works. Along the way, we’re learning something about how larger, more complex projects are structured, and also something about the Go programming language. The entire series can be found on the series page.

In the last post in this series, we left off with our newly established peer just sitting there sending and receiving keepalives. But BGP peers are not designed just to exchange random traffic, they’re actually designed to exchange reachability and topology information about the network. BGP carries routing information in updated, which are actually complicated containers for a lot of different kinds of reachability information. In BGP, a reachable destination is called an NLRI, or Network Layer Reachability Information. Starting with this code dive, we’re going to look at how the snaproute BGP implementation processes updates, sorting out NLRIs, etc.

When you’re reading through code, whether looking for a better understanding of an implementation, a better understanding of a protocol, or even to figure out “what went wrong” on Continue reading