不同于之前介绍的动态路由协议,BGP是在自治系统之间进行路由学习及选路的协议。跟RIP、OSPF这些协议相比,BGP属于外部网络协议,RIP和OSPF属于内部网络协议。
自治系统:
自治系统(Autonomous System)简称SA;是由同一个技术管理机构管理,使用统一选路策略并且允许同一路由协议的一组路由器的集合。自治系统的编号取值范围为1~65535。
动态路由的分类:
动态路由协议有多种分类方法,其中按自治系统分类,按协议类型分类为较常用的两种。
自治系统分类:
IGP:即自治系统内部的路由协议,主要包含RIPv1/v2、OSPF、ISIS、EIGRP;
IGP是运行在AS内部的路由协议,他解决AS内部的选路问题。
EGP:即自治系统之间的路由协议,通常指BGP。
EGP:是运行在AS与AS之间的路由协议,他解决的是AS之间的选路问题。
协议类型分类:
距离矢量路由协议:RIPv1/v2、BGP(路由矢量协议)、EIGRP(高级的距离矢量协议)
链路状态路由协议:OSPF、ISIS。
BGP概念:
BGP是一种运行在AS与AS之间的动态路由协议,主要作用是在AS之间自动交换无环路由信息。以此来构建AS的拓扑图,从而消除路由环路并实施用户配置的路由策略。BGP协议一般用于公网,所以BGP洗衣经常用于ISP与ISP之间跨地域之间的路由信息交互。
BGP的特征:
传输协议:TCP,端口号179。
BGP是外部路由协议,用来在AS之间传递路由信息。
是一种增强的路径矢量路由协议。
拥有可靠的路由更新机制。
具备丰富的Metric度量方法。
无环路由协议设计。
支持CIDR(无类别域间选路)。
丰富的路由过滤和路由策略。
无需周期性更新。
路由更新时只发送增量路由。
周期性发送keepAlive报文,以保持TCP连通性。
BGP报文:
BGP报文头中的Type定义了BGP的报文类型,BGP对等之间通过5种报文进行路由信息的交互。
Open报文:是TCP链接建立后发送的第一个报文,用于建立BGP对等体之间的连接关系,主要包括BGP版本,本地AS编号,Holdtime等信息。
Update报文:主要用来在BGP对等体之间更新路由信息。Update报文可以通告多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。
Notification报文:主要作用是当BGP检测到错误状态时,立刻向对等体发出Notification报文,之后BGP连接就会被中断。不管当前BGP什么状态,只要收到Notification报文就会返回idle状态。
Route-Refresh:主要用来告知对等体本地所支持路由的刷新能力。简单的说就是刷新路由的。
KeepAlive:该报文在对等体之间周期性地发送,用以保持连接的有效性并维护其连接。简单的说,就是持续发送keepAlive报文,只要不发送了,表示路由瘫痪了。
BGP状态:
BGP状态描述的是BGP邻居的建立过程,BGP状态共有六中。下面是六中的解释:
ldle状态:BGP拒绝任何进入的连接请求,ldle状态是BGP的初始状态。Ldle状态下,BGP拒绝所有邻居发送的连接请求。
Connect状态:BGP等待TCP连接的建立完成后再决定后续的操作。等待状态,通常是三十秒,等待TCP完成连接,如果连接成功则发送open报文并转至OpenSent状态
Active状态:BGP将尝试进行TCP连接建立,是BGP的中间状态。在Active状态下,BGP总是试图建立TCP连接,如果连接成功则发送open报文并转至OpenSent状态,如果连接失败,那么BGP停留在Active状态;连接超时,BGP则转至connect状态
Opensent状态:BGP等待对等体的Open报文,并收到的Open报文中的AS号,版本号,holdtime等进行检查。
OpenConfirm状态:BGP等待keepAlive或Notification报文;收到keepAlice报文转至Establish状态,如果收到Notification报文则转至ldle状态
Established状态:BGP可以在对等体之间交换update、keepAlice、route-refresh报文和Notification报文。
BGP邻居关系类型:
主要分为两个IBGP和EBGP
IBGP:同一个AS内部的BGP邻居关系,IBGP邻居通常是指运行BGP协议的对等体两端均在同一个AS域内,属于同一个BGP AS内部
EBGP:AS之间的BGP邻居关系,EBGP邻居通常是指运行在BGP协议的对等体两端分别在不同AS内
通告BGP路由方法:
BGP路由是通过BGP命令通告而成的,而通过BGP路由的方法有两种:
Network和Import
Network方式:使用network命令可以将当前设备路由表中的路由发布到路由表中并通告给邻居。
Import方式:使用Import命令可以将所学到的路由信息重分发到BGP路由表中,是BGP宣告路由的一种方式,可以引进BGP的路由包括:直连路由、静态路由
动态路由。
BGP的配置:
实验演示:
基础配置:配置好IP地址
R1的配置:
R2的配置:
R3的配置:
R4的配置:
BGP配置:
R1的配置:
R2的配置:
R3的配置:
R4的配置:
在R1路由器上查看:
这里呢就已经完成了本次案例。