BGP动态路协议
边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。在EGP协议中,引入了AS ( Autonomous System ,自治系统)的概念。AS是指由同一个技术管理机构管理,使用统- -选路策略的一些路由器的集合。
AS的内部使用IGP来计算和发现路由,同一个AS内部的路由器之间是相互信任的,因此IGP的路由计算和信息泛洪完全处于开放状态,人工干预很少。
不同AS之间的连接需求推动了外部网关协议的发展, BGP作为一种外部网关协议,用于在AS之间进行路由控制和优选。
文章目录
1.BGP基本概述
自治系统(AS)
是由一个技术管理机构管理,使用统一选路策略的一组路由器集合,
自治系统编号范围:1-65535,其中1-64511是互联网上注册公有AS号,类似公网IP地址。
64512-65535是私有AS号,类似私网IP地址
http://www.iana.org/
使用BGP作为传递路由的协议,则用户的路由域被作为一个整体和其他路由域进行路由交换,这个路由域即AS。AS的概念是若干台路由器以及这些路由器组成的网络集合,这些路由器均属于同一个管理机构,并执行统一的路由策略。
运行BGP协议需要一个统一的自治系统号来标识路由域,即AS编号。每个自治系统都有唯 一的一个编号,这个编号由IANA分配。2009年1月之前,只能使用最多2字节长度的AS号码,即1-65535。其中1-64511为公有AS,64512-65534为私有AS。在2009年1月之后,
IANA决定使用4字节长度AS,范围是65536-4294967295。
2.动态路由的分类
按自治系统分为
IGP:自治系统内部路由协议,主要:RIP1/RIP2、OSPF、ISIS、EIGRP(思科私有协议)
IGP是运行在AS内部的路由协议,主要解决AS内部的选路问题,发现、计算路由
EGP:自治系统之间的路由协议,通常:BGP
EGP是运行在AS与AS之间的路由协议,他解决AS之间选路问题。
按协议类型分类
距离矢量路由协议:rip1/2、BGP(路径矢量协议)、EIGRP(高级距离矢量协议)
链路状态路由协议:OSPF、ISIS ###SFP最短路径算法
3.BGP的概念
BGP是一种运行在AS与AS之间的动态路由协议,主要作用是在AS之间自动交换无环路由信息
以此来构建AS的拓扑图,从而消除路由环路并实施用户配置的路由策略。目前公网网络条目众多,
IGP协议无法承载,而BGP可以轻松应对,通常BGP协议用于ISP和ISP之间或跨域地域总、分公司之间
的路由信息交换
4.BGP的特征
传输协议:TCP,端口号179
BGP是外部路由协议,用来在AS之间传递路由信息
是一种增强的路径矢量路由协议
拥有可靠的路由更新机制
具备丰富的Metric度量方法
无环路协议设计
为路由条目附带多种属性信息
支持CIDR(无类别域间选路)
丰富的路由过滤和路由策略
无需周期性更新
路由更新时只发送增量路由
周期性发送KeepAlive报文以保持 TCP连通性
5.BGP工作原理
BGP协议被设计运行在AS之间传递路由,AS之间是广域网链路,数据包在广域网上传递是可能出现不可预测的链路拥塞或丢失等情况,因此BGP使用TCP作为其承载协议来保证可靠性。
BGP使用TCP封装建立邻居关系,端口号为179,TCP采用单播建立连接,因此BGP协议并不像RIP和OSPF一样使用组播发现邻居。单播建立连接也使BGP只能手动指定邻居
5.1 BGP报文
-
Open报文
BGP通过报文的交互完成邻居建立、路由更新等操作,共有Open、Update、 Notification、Keepalive和Route-refresh等5种报文类型。 -
OPen报文
OPen报文是TCP建立后发送的第一个报文,用于建立BGP对等体之间的连接关系,
主要包含BGP版本号、本地AS编号、Holdtime等信息BGP邻居在接收到Open报文并协商成功后,将发送Keepalive报文确认并保持 连接的有效性。确认后,BGP邻居间可以进行Update、Notification、Keepalive和 Route-refresh报文的交换。 -
UPdate报文
Update报文用来在BGP之间更新路由信息,Updata报文可以通告多条属性相同的可达路由信息,也可以撤销多条路由不可达的路由信息 -
Notification报文
Notification报文的作用是当BGP检测到错误状态时候,立即向对等体发送NOtification报文,之后BGP就会中断
只要收到Notification报文就会返回idle状态 -
Route-Refresh
Route-Refresh报文用来告知对等体所支持路由的刷新能力,BGP的入口策略路由发生变化,本地的BGP路由会向对等体发送Route-Refresh报文,收到信息后,对等体将其路由信息重新发送给本地BGP路由器 -
KeepAlive
该报文在对等体之间周期的发送报文,用以保持连接的有效性并维护其连接,KeepAlive报文只有一个BGP报文头,默认KeepAlive报文发送周期为60S,保持时间180S,这个类似于OSPF中的Hello报文
5.2 BGP数据库
- IP路由表:全局路由信息库,包括最优的IP路由信息
- BGP路由表:BGP路由信息库,包括本地BGPSpeak通告的路由信息,将其最优的添加到路由表中
- 邻居表:对等体邻居清单表,包括对等体两端的邻居信息及邻居列表
- Adi-RIB-In:对等体宣告给本地的Speak的未处理的路由信息库
- Adjust-RIB-OUT:本地Speak宣告给指定的对等体路由信息库
5.3 BGP的类型
两种邻居:IBGP和EBGP
IBGP:同一个AS内部BGP邻居关系,IBGP邻居是指运行BGP协议的对等体两端在同一个AS域内,属于BGP AS内部
EBGP:AS之间的BGP邻居关心,EBGP通常指运行BGP协议的对等体两端在不同AS内部
BGP路由的生成
生成BGP路由的方式有两种:第一种是使用配置命令network,第二种是使用配置命令 import。
Import命令是根据运行的路由协议( RIP , OSPF , ISIS等)将路由引入到BGP路由表中,同时import命令还可以引入直连和静态路由。
BGP通告原则
1.仅将自己最优的路由发布给邻居
2.通过EBGP获得的最优路由发布给所有BGP邻居
3.通过IBGP获得的最优路由不会发布给其他的IBGP邻居
4.BGP与IGP同步
5.4 BGP配置思路
1、启用BGP,后面跟AS系统号
2、宣告Route-id,建立邻居关系用
3、宣告和谁建立邻居关系,
4、通告BGP路由,(network、import)
建立EBGP邻居关系时,一般使用直连接口的IP地址;建立IBGP邻居关系时,一般使用Loopback接口的IP地址。
配置
R1、R2、R5建立IBGP邻居关系
R1与R2、R5建立对等体关系
[R1] router-id 1.1.1.1
[R1] bgp 100
[R1-bgp] peer 2.2.2.2 as-number 100
[R1-bgp] peer 2.2.2.2 connect-interface LoopBack 0
[R1-bgp] peer 5.5.5.5 as-number 100
[R1-bgp] peer 5.5.5.5 connect-interface LoopBack 0
R2与R1、R5建立对等体关系
[R2] router-id 2.2.2.2
[R2] bgp 100
[R2-bgp] peer 1.1.1.1 as-number 100
[R2-bgp] peer 1.1.1.1 connect-interface LoopBack 0
[R2-bgp] peer 5.5.5.5 as-number 100
[R2-bgp] peer 5.5.5.5 connect-interface LoopBack 0
R5与R1、R2建立对等体关系
[R5] router-id 5.5.5.5
[R5]bgp 100
[R5-bgp] peer 1.1.1.1 as-number 100
[R5-bgp] peer 1.1.1.1 connect-interface LoopBack 0
[R5-bgp] peer 2.2.2.2 as-number 100
[R5-bgp] peer 2.2.2.2 connect-interface LoopBack 0
R2和R3建立EBGP邻居关系
R2
[R2] router id 2.2.2.2
[R2] bgp 100
[R2-bgp] peer 23.0.0.2 as-number 200
R3
[R3] router id 3.3.3.3
[R3] bgp 200
[R3-bgp] peer 23.0.0.1 as-number 100