This book is about Border Gateway Protocol Version 4 (BGP4). At the time of this writing, BGP4, the latest version of BGP, has been deployed extensively on routers within the Internet. BGP is a routing protocol for the Internet Protocol (IP). A routing protocol is defined by a set of message formats for describing the reachability and preference for network addresses along with rules for processing information learned through these messages. The role played by routing protocols in networks is to ensure that information can be sent between computers connected to the network. For example, an individual dialing into the Internet from home probably wants to access information, make a purchase, or communicate with friends or colleagues. These resources may be far away from the user's computer, and it is the routing protocols that are responsible for making sure that information can be exchanged between the user and the resources.
BGP is an inter-domain routing protocol. The Internet is a collection of many thousands of networks-from the largest backbones to the smallest dial-up providers and from multinational corporations to an individual dentist's office. Routing protocols are run completely internally to each of these networks as well as between a network and its neighbor. Inter-domain routing protocols such as BGP are the glue that ties the various networks together to make sure that a user of one network can reach a resource no matter where it connects to the network.
The number of people who either need or want to know about BGP has increased dramatically in the past few years, for two reasons. First, the growth in the number of Internet service providers has beenexplosive in the recent past. Second, many companies depend on the Internet for mission- critical exchange of information or for revenue stream either through Internet sales or through the sale of advertising space on Web pages. Such organizations often need to understand and use BGP either because of their sheer size or as a way of maximizing the efficiency or reliability of their Internet connection(s).
This book presents a practical introduction to BGP and is structured so that it can serve as a reference for people who need to use BGP. Chapter 1 gives an introduction to the TCP/IP protocol suite and to routing in general. Chapter 2 describes the protocol itself, including the messages and the rules for processing information learned through the protocol. Chapter 3 describes how BGP is used and explains the operational details that are important to know to use BGP. Chapter 4 describes the major extensions that have been made to the original specification to increase the protocol's usability, stability, and scope of operation.
The intended audience is people who have a solid understanding of general computing and at least a cursory familiarity with networks. The background presented in Chapter 1 is as brief as possible, although it attempts to give enough information so that someone who is not an expert in IP can understand the operational details of BGP as well as the reasons for some of the design choices. For readers who are curious about either TCP/IP in general, routing in general, or some particular area of BGP, the Appendix lists a number of references for further reading.