一、BGP的概述
不同于RIP、OSPF之类的路由协议,BGP是在自治系统之间进行路由学习及选路的协议。举例来说:把一个城市当做一个自治系统,RIP、OSPF路由协议就像是城市中的公交;BGP则相当于火车、高铁运行在城市与城市之间。
1.自治系统
自治系统(AS)是由同一个技术管理机构管理,使用统一选路策略(运行同一种动态路由协议)的一组路由器的组合。自治系统的编号取值范围为165535。其中164511是互联网上注册的公有AS号,类似于公网地址,是全球唯一的且不可重复使用;64512~65535是私有AS号,类似于私网地址,可以重复使用但是互联网上是不可见的。
2.动态路由的分类
动态路由协议有很多种分类方法,其中按自治系统分类、按协议类型分类是比较常用的两种。
(1)按自治系统分类
IGP:即自治系统内部的路由协议,主要包含RIPv1/v2、OSPF、ISIS、EIGRP(Cisco私有协议)。IGP是运行在AS内部的路由协议,它主要解决AS内部的选路问题。其主要作用是发现、计算路由;
EGP:即自治系统之间的路由协议,通常指BGP。EGP是运行在AS与AS之间的路由协议,它主要解决的是AS之间的选路问题。BGP的主要作用是控制路由的传播和选择最优路由;
通常情况下,会先使用IGP协议在自治系统内部计算和发现路由条目,再通过BGP协议将IGP协议产生的路由传递至其他的自治系统。
(2)按协议类型分类
距离矢量路由协议:RIPv1/v2、BGP(路径矢量协议)、EIGRP(高级的距离矢量协议);
链路状态路由协议:OSPF、ISIS;
3.BGP的概念
BGP是一种运行在AS与AS之间的动态路由协议,主要作用是在AS之间自动交换无环路由信息,以此来构建AS的拓补图,从而消除路由环路并实施用户配置的路由策略。目前公网路由条目众多,IGP协议无法承载,但是对于BGP来说却能轻松应对。而且BGP相比IGP具有更多的属性特性,更加便于在大规模的网络中使用多种路由策略,所以BGP协议常用于ISP与ISP之间或跨地域总、分公司之间的路由信息交互。
BGP解决的是自治系统之间的路由学习问题。当今互联网是全球互联,在中国,互联网运营商有电信和联通。每个公司都有自己的自治系统,并且内部运行IGP协议。但是互联网又要求互联,所以通过BGP就可以在电信和联通之间的学习路由,是电信的用户可以和联通的用户之间上网聊天,发送邮件等。
4.BGP的特性
BGP具有以下特性:
(1)传输协议:TCP,端口号179;
(2)BGP是外部路由协议,用来在AS之间传递路由信息;
(3)是一种增强的路径矢量路由协议;
(4)拥有可靠的路由更新机制 ;
(5)具备丰富的Metric度量方法;
(6)无环路协议设计;
(7)为路由条目附带多种属性信息;
(8)支持CIDR(无类别域间选路);
(9)丰富的路由过滤和路由策略;
(10)无需周期性更新;
(11)路由更新时只发送增量路由;
(12)周期性发送KeepAlive报文以保持 TCP连通性;
二、BGP的工作原理
BGP是跨公网、跨自治系统的路由协议,可以在自治系统之间学习路由。BGP的动态学习路由也是基于邻居,只有邻居关系正常,BGP才可以正常工作。
1、BGP邻居关系
运行BGP的路由器通常被称为BGPSpeaker(发言者),相互之间传递报文的Speaker之间互称为对等体(Peer)。BGP邻居关系的建立、更新和删除是通过对等体之间交互5种报文、6种状态机和5个表等信息来完成的,最终才可以形成邻居关系。
(1)BGP报文
BGP报文头中的Type定义了BGP的报文类型。BGP对等体之间通过5种报文进行路由信息的交互。下面详细介绍5种报文的详细信息。
(1)Open报文
Open(打开)报文是TCP连接建立后发送的第一个报文,用于建立BGP对等体之间的连接关系,主要包含BGP版本、本地AS编号、Hoidtime(保存时间)等信息。对等体在接收到对端发过来的Open报文并协商成功后,将发送KeepAlive报文确认并保持连接的有效性。BGP对等体关系确认后,对等体之间才可以进行发送剩下的报文,交换路由信息。
(2)Update报文
Update(更新)报文用来在BGP对等体之间更新路由信息。
Update报文可以通过多条属性系统同的就可达路由信息,也可撤销多条不可达路由信息。
网络可达信息(NLRI):通过此字段发布多条具有相同属性的可达路由,这些路由信息可共享同一组路由属性,此字段由可达的目的IP地址前缀和掩码组成;
撤销多条不可达路由:通过该字段发布应经失效或者不可达的路由信息。此字段由不可达的目的IP