BGP(边界网关协议)
AS(自治系统)
定义:由一个单一的机构或者组织所管理的一系列IP网络及其设备所构成的集合
AS划分的原因:
1.整个网络规模较大,伴随的是路由表中的路由数量进一步增加,路由表规模变大,,路由收敛速度变慢,设备性能消耗加大(范围太大)
2.AS之间可能是由不同的机构、公司,相互之间无法完全信任,使用IGP协议可能存在暴露AS内部的网络信息风险
BGP协议介绍
1.RIP是基于UDP进行传输的,而UDP是一个不可靠的协议,它在传输过程中可能会丢失某些数据
2.缺省情况下,RIP协议的路由更新报文的发送间隔是30s,而如果两个AS内部的路由表非常大,30s的时间可能还不够将所有的路由信息传递给对方AS,这样整条链路完全就是为了RIP的通告报文服务,而不能转发数据流量
解决方法:
1.将UDP协议更换为TCP协议,不用担心数据丢失,并且TCP会预先建立连接,也就让路由器有一个准备的时间,而不是像RIP一样毫无准备的接收大量更新数据
2.取消周期更新,改为触发更新
在第一次路由数据同步完成后,如果有路由增加,就发送通告路由增加的报文,如果路由删除,就发送一个通告路由删除的报文
如果路由信息发生改变,就先发送一个通告路由删除的报文,在发送一个通告路由增加的报文
运行BGP协议之间的设备传递路由信息,原因在于若传递拓扑信息,会导致路由器负载过高,并且会让对端AS看到本端的拓扑信息,引发安全问题
BGP需要传递所有的通过BGP学习到的路由信息,并且运行了BGP协议的路由器,所维护的路由表是包含了整个互联网的所有路由信息的
BGP特点:
BGP基于TCP,只要能够建立TCP连接,就可以建立BGP连接
触发式更新,不再进行周期性更新
只传递路由信息,不再进行周期更新
不传递拓扑的原因
拓扑信息资源占用量大
会暴露AS背部的拓扑连接情况
无类别的路径矢量型协议
无类别:传递时携带真实子网掩码
矢量:方向性,谁传递的路由,谁为下一跳
距离矢量:将一个路由器看做一个单位计算距离
路径矢量:将一个AS看做一个整体,从而计算一跳
IGP协议的主要任务是将AS内部的未知网段信息计算获取到,而BGP则主要是将IGP协议计算出来的路由信息进行搬运和传递,并不去计算路由
BGP的特征
IGP协议特点:
1.选路佳
2.收敛快
3.占用资源少
可控性
因为在重发布的过程中,由于会抹除原有的度量值,会导致出现选路不佳的情况,而BGP为了弥补这个不足点,直接舍弃了开销值,取而代之的是设计了很多的路径属性
可靠性
BGP因为只有触发更新而不存在周期更新,所以需要确保其可靠性,使用TCP为传输层协议,端口号为179(BGP会话的建立是手工指定的(单播形式))
IGP协议不选择使用TCP的原因:
1.TCP传输效率低
2.TCP传输占用资源大
3.TCP只能实现单播,所以无法通过组播或者广播的形式发送数据,将导致IGP协议无法自动发现邻居关系,只能手工指定
AS-BY-AS
BGP将一个AS看做是一个整体
BGP协议不支持负载均衡
BGP存在两种对等体关系类型:EBGP、IBGP
EBGP对等体关系:
位于不同自治系统的BGP路由器之间的BGP对等体关系
EBGP对等体一般使用直连建立对等体关系。EBGP邻居之间的报文中TTL值被设置为1
两台路由器之间要建立EBGP对等关系,需要满足如下条件:
1.两个路由器属于不同AS
2.在配置时,peer命令所指定的对等体的IP地址必须路由可达,TCP连接必须正常建立
IBGP对等体关系:
位于相同自治系统的BGP路由器之间的BGP对等体关系
IBGP对等体一般使用非直连建邻,IBGP邻居之间的报文中TTL值被设置为255
在IBGP对等体中,常使用环回接口地址作为源目的IP地址
1.环回接口稳定
2.并且可以借助AS内部的IGP和冗余拓扑来保证可靠性
BGP特点
1.无类别路径矢量协议(AS-BY-AS)
2.使用单播更新来发送消息,基于TCP 179号端口工作
3.增量更新机制(仅触发更新,无周期更新)
4.具有丰富的路径属性来取代IGP中的度量值进行选路,可以由多个属性共同控制协议
5.可以在流量的进出口实行路由策略(可控性)
6.默认不被用于负载均衡(会通过各种选路规则仅仅产生一条最佳路径)
7.BGP支持认证和聚合
BGP的工作过程
1.基于IGP协议或者静态路由实现邻居IP可达
2.启动BGP协议,并指定邻居关系
(1)邻居之间单播传输报文,通过三次握手机制,建立TCP会话通道
(2)后续BGP所有的通讯都将基于TCP会话通道来传输,包括传输所需要的可靠性机制
3.使用open报文和keepalive报文进行对等体关系的建立,open报文用来携带建立对等体关系时所需要使用的参数,keepalive报文用于参数的确认,最终完成对等体关系的建立,生成邻居表
4.使用update报文来共享路由信息,信息中将携带目标网络号、掩码以及路径属性,之后设备会将所有的自己发送的以及接收的路由信息记录在一张表中(BGP表)
5.将BGP表中的最优路由信息(通过路径属性选择)加载到全局路由表中
6.此时,路由收敛完成,将使用keepalive报文进行周期保活,默认保活时间为180s,周期发送时间默认为保活时间的三分之一,即60s
7.如果出现错误信息,则将使用notification报文进行告警
8.如果出现结构突变,则将使用update报文进行触发更新