一、背景
边界网关协议(Border Gateway Protocol, BGP)是用来处理像因特网规模大小的网络协议,能够妥善处理好不相关路由域间的多路连接协议。BGP一般用于企业和企业之间,也就是运营商骨干网的通信,一般使用在AS内或AS间通信,在大型企业网中实现的比较多。
内部网关协议只用关心AS自治系统内部的情况,无需考虑自治系统外部其他方面的策略,而外部网关协议这一类别的协议,是用于自治系统之间的路由选择,典型的就是BGP协议。由于不同自治系统内部,度量路由的“代价(包括时延、带宽、距离)”可能不同,因此对于自治系统之间的路由选择,使用“代价”作为度量来寻找最佳路由是不可行的。
由上图所示,AS4可以通过哪些路径到达AS5呢?有很多中路径:
- AS4->AS1->AS2->AS5
- AS4->AS1->AS3->AS5
- AS4->AS1->AS2->AS3->AS5
- ...
那么如何选择最优路径呢?由于没有统一的度量,因此不能像之前内部网关协议那样考虑。此外,自治系统之间的路由选择还要考虑其他因素,如政治、经济、安全等。比如国内站点互相传送数据时,不应该经过国外的AS,特别是对国内有威胁的国家。基于以上考虑,BGP只能力求寻找一条能够到达目的网络且比较好的路由,而并非要寻求一条最佳路由。
二、BGP基本工作原理
在配置BGP时,每个自治系统的管理员要选择至少一个路由器作为该自治系统的“BGP发言人”。而BGP发言人往往就是BGP路由器,不同自治系统的BGP发言人要交换路由信息,首先需要建立TCP连接,端口号是179.
在此TCP连接上交换BGP报文以建立BGP会话,利用BGP会话交换路由信息。
利用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站(neighbor)或对等站(peer)。BGP发言人除了运行BGP协议外,还必须运行自己所在自治系统所使用的内部网关协议IGP比如RIP或者OSPF。BGP发言人交换网络可达性信息,就是要到达某个网络所要经过的一些列自治系统。
当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各自治系统的较好的路由,也就是构造出不存在回路的自治系统连接图(树形结构)
三、BGP优势
BGP适用于多级结构的因特网,如下图展示了BGP发言人交换路径向量的树形结构。
这里的(AS1,AS2)就是路径向量,AS3收到路径向量后,会判断AS3是否包含在其中,在的话则不能采用这条路径,否则会兜圈子。BGP版本4中规定的四种报文:
- 打开报文(OPEN):用来与相邻的另一个BGP发言人建立关系,使通信初始化
- 更新报文(UPDATE):用来发送某一路由的信息,以及列出要撤销的多条路由
- 保活报文(KEEPLIVE):周期性地证实邻站的连通性
- 通知报文(NOTIFICATION):用来发送检测到的差错
在BGP协议刚刚运行时,BGP的邻站交换整个BGP路由表,但以后只需要在发生变化时更新有变化的部分,这样做对节省网络带宽和减少路由器的处理开销都有好处。
BGP是一个用来处理像因特网大小的网络协议,能够妥善处理好不相关路由域间的多路连接协议,平时接触这个协议可能会比较少。
四、对路由选择协议三剑客进行总结
RIP使用UDP协议,OSPF使用IP,而BGP使用TCP。
RIP协议采用UDP是因为RIP每周期需要全网组播路由信息,路由信息数量较大,故使用UDP协议可以提高效率。
OSPF全网路由器保持着同样的一个LSDB(链路状态数据库),当拓扑发生变化时,需要携带的变更信息较少,通过IP协议即可完成。
BGP因携带的路由信息较多,且可能跨不同网络传送路由信息,为保证可靠性,需要使用TCP协议,可兼顾容量和可靠性。
问题:为什么RIP周期性地和邻站交换路由信息而BGP不这样做?
内部网关协议主要是设法使数据报文在一个自治系统中尽可能有效的从源站传送到目的站,在一个自治系统内部并不需要考虑其他方面的策略,然而BGP使用的环境却不同。
- 因特网规模太大,使得自治系统之间的路由选择非常困难
- 对于自治系统之间的路由选择,要寻找最佳路径并不现实
- 自治系统之间的路由选择必要考虑有关策略
由于以上情况,BGP只能是力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路径,所以BGP不需要像RIP那样周期性地和邻站交换路由信息。
标签:协议,自治,--,报文,系统,BGP,路由,三剑客 From: https://www.cnblogs.com/bonne-chance/p/18159542