概念
BGP协议是一种外部网关协议,用来连接不同自治系统中的主机
为什么使用BGP协议
在不同自治系统之间的路由选择,为什么不能使用内部网关协议?因为以下两点:
- 互联网的规模太大,使得自治系统之间路由选择非常困难。连接在互联网主干网上的路由器,必须对任何有效的IP地址都能在路由表中找到匹配的目的网络。如果使用链路状态协议,则每一个路由器必须维持一个很大的链路状态数据库。对于这样大的主干网,计算最短路径花费的时间也太长。另外,由于自治系统各自运行自己选定的内部路由选择协议,并使用本自治系统指明的路径度量,因此,当一条路径通过几个不同的的自治系统时,要想对这样的路径计算出有意义的代价是不可能的。
- 自治系统之间的路由选择必须考虑有关策略。由于相互连接的网络的性能相差很大,根据最短距离找出来的路径,可能并不合适。再比如自治系统AS1要发送数据报给自治系统AS2,本来最好是经过自治系统AS3,但AS3不愿意让这些数据报通过本自治系统的网络,因为“这是他们的事情,和我没有关系”。因此,自治系统之间的路由选择协议应当允许使用多种路由选择策略,这些策略包括政治、安全或经济方面的考虑。
BGP路由
在一个自治系统中有两种不同功能的路由器,边界路由器(也叫BGP发言人)和内部路由器,一个AS至少要有一个边界路由器和相邻AS的边界路由器相连。
两个自治系统的BGP发言人之间建立eBGP连接,而同一个自治系统中的路由器之间建立iBGP连接。由此可见,BGP协议并非仅运行在AS之间,也运行在AS内部
BGP报文种类
- OPEN(打开)报文,用来与BGP连接对等端建立关系。
- UPDATE(更新)报文,用来通告某一路由的信息,以及列出要撤销的路由
- KEEPALIVE(保活)报文,用来周期性地证实与对等端的连通性。
- NOTIFICATION(通知)报文,用来发送检测到的差错。
不同路由选择协议的比较
BGP是一种路径向量路由选择协议,他和RIP、PSPF之间的区别如下:
-
路径矢量路由协议(path-vector routing protocol )是一种网络路由协议,它维护动态更新的路径信息。通过网络循环并返回到同一节点的更新很容易被检测和丢弃。该算法有时用于 Bellman–Ford algorithm路由算法,以避免“数到无穷”问题。它不同于距离矢量路由和链路状态路由。路由表中的每个条目都包含目的地网络、下一个路由器和到达目的地的路径。
-
距离矢量路由协议(distance-vector routing protocol):数据网络中的距离矢量路由协议根据距离确定数据包的最佳路由。距离向量路由协议通过分组必须通过的路由器数量来衡量距离,一个路由器算作一跳。一些距离矢量协议还考虑了网络延迟和影响给定路由上流量的其他因素。为了确定跨网络的最佳路由,在其上实现了距离矢量协议的路由器相互交换信息,通常是路由表加上目的地网络的跳跃计数,以及可能的其他交通信息。距离向量路由协议还要求路由器定期通知其邻居网络拓扑变化。距离矢量路由协议使用Bellman-Ford算法和Ford-Fulkerson算法来计算最佳路由。
-
链路状态路由协议(Link-state routing protocols):是分组交换网络中用于计算机通信的两类主要路由协议之一,另一类是距离矢量路由协议。链路状态路由协议的例子包括开放最短路径优先(OSPF)和中间系统到中间系统(IS-IS)。链路状态协议由网络中的每个交换节点(即准备转发数据包的节点;在互联网中,这些被称为路由器)执行。
链路状态路由的基本概念是,每个节点以图的形式构建到网络的连接映射,显示哪些节点连接到哪些其他节点。然后,每个节点独立计算从它到网络中每个可能目的地的下一个最佳逻辑路径。然后,每个最佳路径集合将形成每个节点的路由表。这与距离矢量路由协议形成鲜明对比,距离矢量路由协议的工作原理是让每个节点与其邻居共享其路由表,在链路状态协议中,节点之间传递的唯一信息与连接性有关。链路状态算法有时被非正式地描述为每个路由器,“向世界讲述它的邻居”
iBGP和IGP的区别
iBGP是内部边界网关协议,是要告诉结点去外部的结点应该怎么走,应该找哪个网关、怎么找网关。而IGP是内部网关协议,是一个自治系统内部使用的网关协议,包含OSPF、RIP等。是要告诉结点到每个内部结点应该怎么走。
标签:协议,自治,BGP,链路,路由,路由器 From: https://www.cnblogs.com/AH20/p/18462488