Monday, November 06, 2006

The ugly face of circuit tracking


Long post on a long topic. The image above was taken from a brainstorming session this morning on how we should name circuits in the new network. At issue are all the different pieces and how to keep them together. There are three main things we need to keep track of:


  • The Level3 Infinera circuit IDs and the trunk fiber that "holds" the circuit
  • The I2 metro Infinera IDS (Chicago, New York and Seattle) and the trunk fiber that "holds" the circuit.
  • The fiber patches in the middle and at the end


So, you can end up with an end-to-end connection that spans dark fibers, different DWDM systems and rack-to-rack fiber patches. How do we glue all those together and how do we name them?

The Level3 circuit naming convention was going to be "I2-A-CITY-B-CITY-CUSTOMER-INDEX". So, a circuit from LA to New York for customer "Wackynet" would look like "I2-LOSA-NEWY-WACKYNET-00125". But those circuit IDs are unique to the DWDM system they run on. What we want to be able to give our customers is just a single circuit ID that our NOC can reference to find the more complete path with all the multiple "internal" circuit IDs.

Fortunately, that piece is almost ready to go. Ed Balas has been working on this for months and has a pretty darn good system in place. The new circuit database can be built in heirarchical layers. So, we can come up with a top-level circuit ID that can be drilled down into the sub-pieces. It also tracks the intra-pop fiber jumpers that each get unique identifiers. All of this is in place today, though not 100% production. Clicking on a circuit shows a nifty graphic with all the sub-pieces, color-coded by what type of sub-piece they are. It's all very 2007, in a 2006 world. My hats off to Mr. Balas for a very badly needed piece of software.

Now, how to name all those circuits. When we decided to put the customer name into the Level3 circuits, we locked ourselves in to changing the circuit ID if a particular A-Z connection is abandoned and re-used by someone else. You'd have to change the circuit ID just to get the customer name right. We started thinking more about that and we expect circuits to be abandoned and reused by other projects with more frequency than I had initially thought. So, the current plan is to remove the customer name from the Level3 circuit ID (with the exception of ESNET, since they have a more direct relationship with Level3) and provide the customer with a more top-level circuit ID that has a bit more metadata about the circuit's use. That top-level circuit ID will contain not only the Level3 Infinera system, but also the I2 metro piece (if part of the path) and all the miscellaneous fiber patches to get between the customer demarcs.

Pretty nifty stuff, huh?

It gets better. Not only can this system handle circuits in a heirarchical fashion, it can also handle sub-channels within those circuits. So, we can easily click on a particular 10GigE wave and see what VLANs are provisioned. Or we can see MPLS tunnels on an IP circuit. STS channels on a SONET circuit! Tracking them for documentation purposes is only one application. We can build maps and create monitoring tools that sanity check themselves against actual configurations. This is where the direct TL-1 access to the Level3 Infinera pool is really important.

Again, my hats off to Mr. Balas and our system engineering team for their work. It will really start to pay off here. I was freaking out a bit over the weekend on how much of this stuff is done in spreadsheets on my laptop harddrive. Now everyone else can play!