网络协议中,BGP协议的使用在很多程度上来说是比较复杂的。这是因为不同主机的不同IP地址,以及不同的网络接洽,不同终端和硬件接口等问题造成的。所以在我们的网络协议中,路由协议的种类也非常的多。BGP是为TCP/IP互联网设计的外部网关协议,用于多个自治域之间。它既不是基于纯粹的链路状态算法,也不是基于纯粹的距离向量算法。它的主要功能是与其他自治域的BGP交换网络可达信息。各个自治域可以运行不同的内部网关协议。BGP更新信息包括网络号/自治域路径的成对信息。自治域路径包括到达某个特定网络须经过的自治域串,这些更新信息通过TCP传送出去,以保证传输的可靠性。
1.BGP协议简介
BGP(Border Gateway Protocol)是一种自治系统间的动态路由发现协议。BGP 协议早期发布的三个版本分别是BGP-1(请参阅RFC1105)、BGP-2(请参阅RFC1163)和BGP-3(请参阅RFC1267),当前使用的版本是BGP-4(请参阅RFC1771)。BGP-4 适用于分布式结构,并支持无类域间路由CIDR(Classless Inter-Domain Routing)。利用BGP 还可以实施用户配置的策略。
BGP-4正迅速成为事实上的Internet外部路由协议标准,BGP协议经常用于ISP之间。
2.BGP工作机制
BGP系统作为高层协议运行在一个特定的路由器上。系统初启时BGP路由器通过发送整个BGP路由表与对等体交换路由信息,之后只交换更新消息(update message)。系统在运行过程中,是通过接收和发送keep-alive消息来检测相互之间的连接是否正常的。
发送BGP消息的路由器称为BGP发言人(speaker),它不断地接收或产生新路由信息,并将它广告(advertise)给其他的BGP发言人。当BGP发言人收到来自其他自治系统的新路由广告时,如果该路由比当前已知路由好,或者当前还没有该接收路由,它就把这个路由广告给自治系统内所有其他的BGP发言人。一个BGP发言人也将同它交换消息的其他的BGP发言人称为对等体(peer),若干相关的对等体可以构成对等体组(group)。
BGP协议在路由器上以下列两种方式运行:
IBGP(Internal BGP)
EBGP(External BGP)
当BGP运行于同一自治系统(AS)内部时,被称为IBGP;当BGP 运行于不同自治系统之间时,称为EBGP。
BGP协议机的运行是通过消息驱动的,其消息共可分为4类:open messageupdate、 notification message、messagekeep-alive和message
open message是连接建立后发送的***个消息,它用于建立BGP协议对等体间的连接关系。
notification message是错误通告消息。
keep-alive message是用于检测连接有效性的消息。
update message是BGP系统中最重要的信息,用于在对等体之间交换路由信息,它最多由3部分构成,即不可达路由(unreachable)、路径属性(path attributes)和网络可达性信息NLRI(network layer reach/reachable information)。