It is not sufficient to merely learn how to configure BGP. A network operator also needs to know how to go about automating the deployment of this configuration.
As discussed in “Operational Consequences of Modern Data Center Design”, the mantra of automation in the data center is simple: automate or die. If you cannot automate your infrastructure—and the network is a fundamental part of the infrastructure—you’ll simply become too inefficient to meet the business objectives. As a consequence, either the business will shrivel up or evolve to improve its infrastructure.
In this chapter, we begin the journey of building an automatable BGP configuration. We won’t show automation with any particular tool such as Ansible, because sites vary in their use of these tools and each has its own syntax and semantics that deserve their own documentation. Instead, we’ll focus on BGP.
Automation is possible when there are patterns. If we cannot find patterns, automation becomes extremely difficult, if not impossible. Configuring BGP is no different. We must seek patterns in the BGP configuration so that we can automate them. However, detecting patterns isn’t sufficient. The patterns need to be robust so that changes don’t become hazardous. We must also avoid duplication. In the section that follows, we’ll examine both of these problems in detail, and see how we can eliminate them.