Border Gateway Protocol, or BGP, has long been used to route packets across the internet. Now, BGP routing is finding...
a role within large software-defined networks. Until recently, most SDNs used the OpenFlow protocol to manage how packets flow through the network. The concern for operators of large, distributed networks is controllers in OpenFlow-based networks will be swamped with the volume of requests.
In an OpenFlow-based network, when an application initiates a new source-to-destination packet flow, every switch along the path generates an OpenFlow request. The controller must respond to each switch, informing it how to direct the flow's packets. On the other hand, using BGP reduces the number of requests to the controller, while maintaining the controller's role in setting the policies that determine how packets flow through the network.
BGP routing operations
BGP's role since the early days of the internet has been to direct packets between autonomous systems (AS) -- networks managed by a single operator, such as a service provider or an enterprise. Packets must travel from AS to AS each time a request is made to an external service. Accessing a webpage may result in packets being directed through multiple autonomous systems on their way from the requesting browser and the web server in a distant AS.
BGP routers are configured with the addresses of BGP routers of neighboring autonomous systems. Each local BGP router reports its AS identifier and the IP address prefix of systems in its local network to its neighbors. Neighboring routers respond with a list of distant autonomous systems, their prefixes and their distance -- defined as the number of autonomous systems a packet must pass through on its way. BGP routers do not exchange any information describing quality-of-service (QoS) characteristics of AS-to-AS links, which include available throughput, delay or jitter.
Businesses commonly connect to more than one local service provider, and local providers connect to multiple backbone providers to ensure continuous service. Configured policies may direct a BGP router to favor one local service provider over others when the distance to the destination is the same, or, possibly, as long as the favored provider is functioning. When a packet is addressed to a system in a remote AS, the local BGP router determines which neighbor to forward the packet to -- a decision based on policy and the distance to the remote AS.
BGP can also be used within a large network. Internal routing protocols, such as Open Shortest Path First (OSPF), create complete network maps. These maps can become quite extensive. Subdividing the network into separate OSPF domains connected by BGP enables OSPF to operate efficiently in each region.
BGP routing's growing role in SDN
The role of the network controller changes when BGP replaces OpenFlow. The controller continues to set policies that determine packet flows, but it is no longer required to configure each individual flow or continue to maintain a Transmission Control Protocol connection to each switch.
Instead of responding to individual flow requests, the controller exchanges BGP messages with routers. BGP has been extended beyond its original specification to define how policies and policy updates can be encoded within BGP messages.
The use of BGP routing makes it possible for the network to continue to operate if the controller fails, or if the link from the controller to the routers goes down. Routers would no longer be able to exchange updates with the controller on network operations, status and policy, but packets would continue to flow based on previously set policies.
BGP is a path vector protocol that maintains path information that gets updated dynamically and in which routing decisions are based strictly on distance and policy. Unlike link-state protocols, like OSPF, they do not create a complete network map or maintain QoS information. The size of the internet makes it virtually impossible to create and maintain a map describing each of the thousands of autonomous systems and the links between them.
Large service provider networks may contain thousands of links, but do not compare to the size of the internet. BGP routers maintain a complete map in these environments. The Internet Engineering Task Force recently released RFC 7752, which defines how BGP can be extended to maintain and update the controller with information on individual links and their QoS characteristics. The controller is then able to use QoS information to create policies that determine how flows with QoS requirements move through the network.
Using BGP as the control protocol within software-defined networks is a relatively new development. BGP routing will no doubt continue to evolve as operators gain experience and further enhance the BGP protocol.
Why BGP is being adapted for SDN
There's more than OpenFlow: SDN protocol options
Is OpenFlow protocol being overtaken?