主要内容
bgp的概念
bgp的结构和功能
bgp的特点
bgp的消息类型以及状态转换
一、边界网关协议:BGP
BGP/BGP4:Border Gateway Protocol,边界网关协议
1、释义
(1)BGP是运行于TCP上的一种自治系统的路由协议。BGP是唯一一个用来处理因特网大小的网络的协议;也是唯一能够妥善处理好不相关路由域间的多路连接的协议,bgp构建在egp的经验之上。
(2)bgp系统的主要功能是和其它的bgp系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了AS互联的拓扑图,并由此清除了路由环路,同时在AS级别上可实施策略决策。
(3)bgp路由选择协议中使用了4种分组:
a,打开分组open
b,更新分组update
c,存活分组keepalive
d,通告分组notification
二、bgp的结构和功能
1、结构
(1)bgp用于在不同的自治系统(AS)之间交换路由信息,当两个AS需要交换路由信息时,每个AS都必须指定一个运行bgp的节点,来代表as与其它的as交换路由信息。这个节点可以是一个主机,但通常是路由器来执行bgp,两个as中利用bgp交换信息的路由器也被称为边界网关(border gateway)或者边界路由器(border router).
(2)由于可能与不同的as相连,在一个as内部可能存在多个运行bgp的边界路由器。
(3)同一个自治系统(AS)中的两个或多个对等实体之间运行的bgp成为IBGP;归属于不同的AS的对等实体之间运行的bgp称为EBGP。
(4)在AS边界上与其它交换信息的路由器被称为边界路由器,在互联网操作系统中,IBGP通告路由的距离为200,优先级比ebgp和任何内部网关协议(IGP)通告的路由都低。其它的路由器实现中,优先级顺序也是EBGP高于IGP,而IGP又高于IBGP。
2、功能
(1)BGP属于外部网关路由协议,可以实现自治系统间无环路的域间路由。
(2)BGP是沟通Internet广域网的主要路由协议,例不同的省份、不同的国家之间的路由大多要依靠BGP协议。
(3)BGP可以分为IBGP(Internet BGP)和EBGP(External BGP)。
(4)BGP的邻居关系是通过人工配置实现的,对等实体之间通过TCP(端179)会话交互数据。
(5)BGP路由器会周期地发送19字节的保持存活keep alive消息来维护连接(默认周期30s)。在路由协议中,只有BGP使用TCP作为传输层协议。
三、bgp的特点
1、bgp概述
(1)BGP属于外部或域间路由协议。bgp的主要目标是为处于不同AS中的路由器之间进行路由信息通信提供保障。
(2)BGP不是纯粹的矢量距离协议,也不是纯粹的链路状态协议;通常被称为通路向量路由协议。由于bgp在发布到一个目的网络的可达性的同时,包含了在ip分组到达目的网络过程中所必须经过的AS的列表。
(3)通路向量信息是十分有用的,只要简单地查找一下BGP路由更新的AS编号就能有效地避免环路的出现。
2、bgp特点
(1)实现自治系统间通信,传播网络的可达信息。BGP是一个外部网关协议,允许一个AS与另一个AS进行通信。bgp允许一个AS向其它的AS通告其内部的可达性信息,或者通过该AS可达的其它网络的路由信息。同时,AS也能够从另一个AS中了解这些信息。与距离向量选路协议类似,bgp为每个目的网络提供的是下一跳(next-hop)结点的信息。
(2)多个bgp路由器之间的协调。如果在一个自治系统内部有多个路由器分别使用bgp和其它自治系统中对等路由器进行通信,bgp可以协调一系列路由器,使这些路由器保持一致性。
(3)bgp支持基于策略的选路(policy-base routing),一般的距离向量选路协议确切通告本地选路中的路由。而bgp可以实现由本地管理员选择的策略,bgp路由器可以为域内和域间的网络可达性配置不同的策略。
(4)bgp路由信息的传输采用了可靠的TCP协议。
(5)路径信息。在bgp通告目的网络的可达信息时,除了指定目的网络的下一条信息之外,通告中还包括了通路向量(path vector),即去往该目的网络需要经过的AS的列表,使接受者能够了解去往目的网络的通路信息。
(6)增量(delta)更新。BGP不需要所有路由更新报文中传送完整的路由数据库信息,只需要在启动时交换一次完整信息;后续的路由更新报文中只通告网络的变化信息。
(7)bgp支持无类型编制(CIDR)和VLSM方式,通告的所有网络都以网络前加子网掩码的方式表示。
(8)路由聚集。bgp允许发送方把路由信息聚集在一起,用一个条目来表示多个相关的目的网络,以节约带宽。
(9)bgp允许接受方对报文进行鉴别和认证,以验证发送方的身份。
四、BGP消息类型(四种消息类型)
BGP邻居关系就是对等体关系;BGP邻居就是BGP对等体(peer)
1、open消息:open消息是tcp连接建立后发送的第一个消息,用于建立bgp对等体之间的连接关系。
2、keepalive消息:bgp会周期性的向对等体发出keep alive消息,用来保持连接的有效性。
3、update消息:update消息用于在对等体之间交换路由信息;既可以发布可达路由信息,也可以撤销不可达路由信息。
4、notification消息:当bgp检查到错误状态时,就向对等体发出notification消息,之后bgp连接会立即中断。
五、bgp邻居建立中的过程(6个)
1、空闲(IdIe):为初始状态,当协议激活后开始初始化,复位计时器,并发起第一个TCP连接,并开始倾听远程对等体所发起的连接,同时转向Connect状态。
2、连接(Connect):开始TCP连接并等待连接成功的消息,如果TCP连接成功,则进入Open Sent状态;如果TCP连接失败,进入Active状态。
3、行动(active):bgp总是试图建立TCP连接,若连接计时器超时,就会退回到connect状态,tcp连接成功就会转为opensent状态。
4、open发送(open sent):tcp连接已建立,自己发送第一个open报文,等待接收对方的open报文,并对报文进行检查;如果发现错误则发送notification消息报文并退回到IdIe状态;如果检查无误则发生keepalive消息报文,keepalive计时器开始计时时,并转为open confirm状态。
5、open证实(open confirm):bgp等待keep alive报文,同时复位保持计时器;如果收到了keep alive报文,就转为Established状态,邻居关系协商完成。如果系统收到一条更新或者keep alive消息它将重新启动保持计时器,如果收到notification消息,bgp就退回到空闲状态。
6、已建立(Established):建立了邻居(对等体)关系,路由器和邻居交换update报文,同时复位保持计时器。