Automated provisioning of BGP customers

Manual configuration of IP routers is an expensive, time-consuming, and error-prone process. For large Internet service providers, establishing service for new customers is a major part of the financial cost of running the network. Increasingly, these customers want to exchange routing information with their provider(s) using the border gateway protocol (BGP), a complex and highly programmable interdomain routing protocol. This article describes how a provider can configure its connections to BGP-speaking customers, from the technical questions asked of new customers to the individual configuration commands applied to the production routers. We present a case study of a technical questionnaire and describe how the provider assigns unique identifiers such as IP address blocks, interface names, and access control list numbers on behalf of the customer. Next, we describe an example set of provisioning rules that use the customer-specific information to generate a sequence of configuration commands - a "configlet" - for adding the new connection to the network; our configuration rules are expressed using Cisco Internet Operating System (IOS) commands as an example. Then we describe a database schema for storing and accessing the customer-specific data, and discuss how to use a virtual view on this database to populate a template that captures the syntax of the router commands. Our provisioning system provides an inexpensive, efficient, and accurate way for a provider to configure connections to new BGP-speaking customers.