BGP-边界问关协议
AS-自治系统–由单机构缄组织管理的-一些列P网路及其设备的集
台
1。 网络范围太大.协议跑不过来。要进行划分,.
2.自治管理
为了方便区分和标定不同的AS,我们给每个自治系统设计了-一个编
号- S号-- 160:二进制构成- 0- 65535:5期中065535为保留
值.不用所以。AS号真正的取值范围为1 - 6534;我们将64512 -
65534A5号称为队有A5号。-因为传统的AS号存在不够用的问题.所
以目前也存在拓展额的AS号-- 32位构成–目前绝大多数设备已经支
持拓展版的AS号
EGP协议在之前还存在一款协议-- EGP.但是由于其功能有限,后来
在其基础上进行优化和改进。生成了现在的BGP呦议。前AS之间馒用
最广泛的协议就是BGP协议
在目前IPV4环境下。使用最广泛发BGP版本是BGPV4。目前市场上已
经存在BGPV4+. BGPV4+又可以称为MP.BGP -可以支持多种地址族
的应用。
在没有BGP协议的情况下,仅使用重发布技术.也可以实现AS之间的
路由信息的共享。但是.之所以不采用这种方案其原因如下:
1.重发布技术本省存在缺陷一在多点重发布中。因为种子度量值
问题,必然造成遗路不佳
2. ASBR设备的归属问题
BGP之间传递路由信息的方式-定是和RIP类.通过传递路由条目信
息来实现一之所以不使用拓扑信息, 主要因为: 1,招扑信息资灏占
用量太大而BG需要传递的数量是巨大的。2. 传递扑信息格暴露本
AS内部的拓扑连接情况
BGP -无类别的路径矢量型胁议
距离矢量-在距离矢量型协议中。距离是开锄的体现,搬眺數
作为开销值的评判标准。将一个路由器看作是-个单位计算距
距离矢量是算法的概念。因为NGP协议本身需要通过算法来针
算出未知网段的路由信息.
路径矢量-是将- -个AS看作-个整体
路径矢量不牵扯鄭去。因为GPR仅是将口计算出来的路由
信息发送到其他s之中,相当于仅将现成的路由进行传递而
不需要计算。
GP-选路佳。收做快。占用资源少
8@协议的关注点
1.可控性- 6S之间需要传强大量的路由信息所谓可控。就
是可以更方便的干涉选路。更容易做路由策略。
为了保证可控型。BG啥弃了开销值。骑代之的是BGP始
每条路由信息附加了很多路经属性。之后.可以置过这些属性来
进行逃路因为多种属性的存在。将导致我们的造路变的更加的
灵活和方便.使得BGP协议具有强大的可操控型。
因为BCP协议需要传递大的路由信息.所以。其本身不可能存在周期更新机制BGP仅存在触发更新.
2。可靠性-需要保证数据传输的可靠BGP为了保证传输的可靠性,其传输层协议直按选择使用TCP协议使用TCP的179
号端口进行工作.
IGP协议不选择使用P的原因:
1.TCP传输效率较低
2.TCP传输占用资涮交大
3.TCP协议只能实现单播,所以。无法道过组播或者广播的形式发送,则将导致IGP协议无法自动发现邻貂关系,只手工指定
因为BGP选择使用的是TP协议,所以。BGP需要手工建立邻居关系.
BGP因为传输层使用的是TaP协议,所以,只要在TCP协议可以正常建立会话的基础上就可以完成威GP的建邻工作----BGP支持非直连建邻(网络可达)—BGP的非直连建邻建立在IGP(静态)之上
在BGP中,我们将邻居关系称为对等体关系
EBGP对等体关系—如果建立对等体的两台路由器位于不同的AS中,则他们的关系被称为EBGP对等体关系。
IBGP对等体关系–如勇典建立对等体的两台路由器位于同一个的AS中,则他们的关系被稔为IBGP对等体关系.
因为,田GP对等体之间一般使用直连建邻,所以。EBGP对等体之间发送的数拓包中的IIL值龙们格其设置为1。如果遇到EBGP对等体之间需要进行非直连建邻,则需要手工修改T1L值。IBGP对等体关系在As内部一般都是非直连建邻。所以.TTL值设置为255.
3,AS-a1AS–在BGP当中,我门们将一个心s看作一个整体。BP协议是不支持负载均衡的。一–在BGP当中,如果到达同一个目标网段存在多条路径可以走时,BGP将会根据其中的路径属性来选择一条最优的如加载到路由表中,而不会进行负
载均衡,
1,BGP的数据包
BGP协议所有数拓包的传输的可靠性均由TcP协议来保证。所有BGP数据包均基于TcP建立的会话通道发送。
OSPF的Hello —可以周期性的发现,建立和保活邻居关系。
在BGP中,发现邻居关系的过程变为由人手工指定。主要因为TP协议需要建立会话通道,之后才会基于通道发送数据包.
opan包—建立BGP对等体关系。----邻居关系的建立无非就是参数协商的过程。BGP建立邻居关系需要通过OPEN包来携带参数,进行比对协商
As号—在创建邻居关系时需要指定邻居所在的AS号。这个参数将被携带在OPEN报文中发送给对方,对方将比对这个AS号和本地所在的AS号是杏一致,如果一致,则可以正常建立邻居关系。认证—BGP建邻也可以做认证,做认证后将挑带认证口令,认证口令双方需要比对,一致则可以正常建立邻居关系。
ROUE-ID-区分和标定路由器的。也是出3z位二进制构成,按照IP地址的格式来表示.—1.手工配置;2.自动获取(先看设备是否存在环回接口,如果存在则将选择环回接口中IP地址最大的地址作为RID,如果没有环回接口,则将在物理接口中选择IP地址最大的作为RID)
这个RID将在OPEN包中携带,发送到对端之后,对端将检测这个RID,如果和本地的RID不同,则将可以正常的建立邻居关系。
手工建立邻居关系时所指定的建邻的IP地址必须和收到的open包中的匆P地址相同才能正常郸建立邻居关系。杏则,邻居关系将建立失败
Holdtime —保活时间—默认时间为180S,在保活时间为,如果没有收到对方发送的keeplive包成者update包,见则将断开BGP
邻居关系。这个参数在open报文中将被携带。但是,双方不一致不会影响邻居关系的建立,但是在执行时,这个时间必须是一致的,见则将采用双方中较小的保活时间来使用.
路由器是否支持肠新功能也将成为OPEN报文中所携带的一个协商参数.
kecpivc包—周期保活—周期发送时间等于保活时间的1/3。默认保活时间180S,则默认的困期发送时间为60S.
除了保活之外,keeplive包还将在open报文协商参数时临时充当确认包的作用.
TcP协议进行确认的目的是为了保证数据专输的可靠性,而keepve报文确认的目的是为了确认认可对方发送的opcn报文中的参数。
update包—更新包—携带需要传递的路由信息的数据包。表示一条路由条目信息,需要携带的参数主要就是目标网络号和子网掩码信息,以及路径属性
在更新包中,存在一个澈销路由条目字段,在这个字段下的路由条目将需要对端删除,而不再需要通过带毒传输的方式来裁达。
no tificaton包—BGP中设计的一个告警机制.
outo-rfrcsh包一用于改变路由策略变更后请求对等体重新发送路由信息(前提条件是双方均支持路由疑新功能才行.,
2.BGP的状态机
BGP的状态机描述的是BGP对等体建立过程中状态的变化。因为BGP这个协议可以将邻居建立过程和路由收发过程分开进行。
BGP的状态机—6种
IDLE—空闲状态—路由器启动BGP进程之后,将先处于idle状态。当你手工指定邻居关系后,BGP将进入到一个检查环节,检查指定的IP地址在本地路由表中是否可达。如果可达,则将进入到下一个状态— connect.
Connect —连接状态,该状态完成TCP会话的建立。
如果TCP会话建立成功,则将进入到opensent状态,发送open报文
如果TCP会话建立失败,则将进入ACTIVE状态,尝试重新建立TCP会话。
在建立TCP会话过程中,因为双方都会主动发起建立会话的过程,而最终建立的都是一个双向的会话。所以,最终只需要保持一个会话通道即可。选择方式是通过后续open报文中的RID进行比较,选择保留RID大的设备发起的TCP会话.
Opensent —发出本地的open报文。收到对端发送的open报文,查看里面的参数,之后,如果确认参数无误。则将回复keeplive报文作为确认。
Openconfirm — open报文确认状态—对端也收到本地发送的open报文,之后根据里面的参数进行确认。如果确认无误则将发送
keeplive报文。本段收到对方发送的keeplive报文之后将进入下一个状态。
Established —建立状态-…标志着BGP对等体关系的建立。
3.BGP的工作过程
1,基于IGP协议实现IP可达
2,指定邻居关系,通过三次握手,建立TCP的会话通道。之后所有BGP的数据报都将基于TCP会话通道来进行传递。
3,使用open报文和keeolive报文进行邻居关系的建立。之后将邻居关系收集到一张表中—邻居表。
4,通过update报文传递路由信息。传递的路由条目信息中主要包含目标网络号,掩码信息,以及各种路径属性。之后,设备会将所有自己发出的以及收到的路由信息记录在一张表中—BGP表.
5,之后将BGP表中的最优路径加载到路由表中
6,收敛完成后,BGP将周期使用keeplive报文进行保活。保活时间默认为180s,周期发送时间默认为保活时间的1/3,即6os.
7,若出现错误信息,将使用notification报文进行告警.
8,若发生结构突变,则将使用update报文进行触发更行.
4,BGP的基本配置
由于BGP协议支持非直连建邻,故可能出现BGP协议跨越未运行BGP协议的路由器。导致BGP路由传递后,控制层面可达,但是数据层面,在经过未运行BGP协议的路由器时无法通过。形成路由黑洞
1,在R3上将BGP协议的路由信息重发布到IGP当中。2,直接在R4上运行BGP协议
3,MPLS
为了避免路由黑洞的情况产生,BGP提出了同步机制—即当一台路由器从自己的BGP对等体学习到一条BGP路由时,他将不能把他通告给自己的EBGP对等体,除非他又从IGP协议当中学习到这条路由.
5,BGP的防环
BGP使用的防环机制—水平分割机制
EBGP的水平分割-一种专门应用在EBGP对等体之间,用来解决EBGP对等体之间可能出现的环路问题。
BGP协议将在路由条目中记录所经过的As编号---- AS_PATH—记录As路径的一个属性。(这个属性除了可以完成BGP的水平分割外,还可以作为选路的依据。)—接收到的BGP路由条目中,其中的AS_PATH属性中,若存在本地的AS号,则将拒绝接受。
IBGP的水平分割…一种专门应用在IBGP对等体之间,用来解决IBGP对等体之间可能出现的环路问题.
IBGP水平分割—当一个路由器从一个BGP对等体处学习到某条BGP路由时,他将不能在将这条路由信息通告给其他的IBGP对等体关系。
因为BGP水平分割的限制,导致BGP对等体之间的路由信息只能传递一跳,在这情况下,可能会造成通信障碍。解决方案:
1,构建全连的BGP对等体关系—这样的方法弊端在于1,全连建邻会导致资源消耗增加;2,可能会导致网络的可拓展性降低.
2,路由反射器3,联邦
6.BGP的基本配置