HICP之BGP基础

目录

HICP之BGP基础

自治系统 --- AS

定义

形成原因

AS号

BGP

BGP之间传递路由信息的方式

BGP --- 无类别的路径矢量型协议

BGP --- 特点

在BGP中,我们将邻居关系称为对等体关系:

BGP的数据包

open包

Keeplive包

update包

notification包

Router - refresh包

BGP的状态机

BGP的状态机 --- 6种

BGP的工作过程

BGP的路由黑洞

形成原因:

解决方法:

BGP的防环

使用的防环机制


HICP之BGP基础

自治系统 --- AS

定义

       AS --- 自治系统 --- 由单一机构或组织管理的一系列的IP网络及其设备所构成的集合

形成原因

        1.网络范围太大,协议跑步过来,需要进行划分

        2.自治管理

AS号

        由16位二进制构成 --- 0 - 65535,其中0和65535保留,1 - 65534,其中64521-65534被称为私有AS号 --- 目前也存下扩展板的AS号 --- 由32位二进制构成 --- 目前绝大多数设备已经支持拓展版的AS号   

        EGP协议在之前还存在一款协议 --- EGP,但那是由于其功能有限,后来在其基础上进行优化和改进,生成了现在的BGP协议。目前AS之间使用最广泛的协议就是BGP协议

        目前市场上针对IPV4环境使用的BGP协议版本为BGPV4,目前市场上已经存在BGPV4+(MP -BGP --- 可以支持多种地址族)协议。

BGP存在的意义 --- 进行选路的管理:

        没有BGP协议的情况下,仅使用重发布技术,也可以实现AS之间的路由信息的共享。但是,之所以不采用这种方案,其原因为:

        1.重发布技术本身存在缺陷 --- 在多点重发布中,因为种子度量值问题,必然造成选路不佳

        2.ASBR设备的归属问题

BGP

BGP之间传递路由信息的方式

        与RIP类似,通过传递路由条目来实现 --- 不使用拓扑信息的原因:1,拓扑信息占用量太大,二BGP需要传递的数量是巨大的。2,传递拓扑信息将暴露本AS内部的拓扑连接情况

BGP --- 无类别的路径矢量型协议

        距离矢量 --- 在距离矢量型协议中,距离是开销的体现,将跳数作为开销的评判标准。讲一个路由器看做是一个单位计算距离

                距离矢量是算法的概念,因为IGP协议本身需要通过算法来计算未知网段的路由信息

        路径矢量 --- 是将一个AS看做一个整体

                路径矢量不牵扯算法,因为BGP仅仅是将IGP计算出来的路由信息发送到其他AS之中,相当于仅将线程的路由传递而不需要计算。

BGP --- 特点

        IGP --- 选路佳,收敛快,占用资源少

        1.可控性 --- AS之间需要传递大量的路由信息,所谓可控,就是可以更加方便的干涉选路,更容易做路由策略。

                为了保证可控性,BGP舍弃了开销值。取而代之的BGP给每条路由信息附加了很多路径属性。之后,可以通过这些属性来进行选路。因为多种属性的存在,将导致我们的选路变得更加的灵活和方便。使得BGP协议具有强大的可操控性

注意:

        因为需要传递大量的路由信息,索引不存在周期更新机制。BGP仅存在触发更新

        2.可靠性 --- 需要保证数据传输的可靠性。BGP为了保证传输的可靠性,其传输层直接选择使用TCP协议。使用TCP的179号端口进行工作

IGP协议不选择使用TCP的原因:

        1.TCP传输效率较低

        2.TCP传输占用资源大

        2.TCP协议只能实现单播,所以,无法通过组播或者广播的形式发送,则将导致IGP协议无法自动发现邻居关系,只能手工指定。

        因为BGP选择使用的是TCP协议,所以BGP需要手工建立邻居关系

        BGP因为传输层使用的是TCP协议,所以只要在TCP协议可以正常加你会话的及出生就可以完成BGP的建邻(对等体关系)工作。 --- BGP支持非直连建邻(网络可达) --- BGP的非直连建立在IGP(或静态)之上

在BGP中,我们将邻居关系称为对等体关系:

        EBGP对等体关系 --- 如果建立对等体的两台路由器位于不同的AS中,则他们的关系被称为EBGP对等体关系

        IBGP对等体关系 --- 如果建立对等体的两台路由器位于同一个的AS中,则他们的关系被称为IBGP对等体关系

        因为,EBGP对等体之间 一般使用直连建邻,所以,EBGP对等体之间发送的数据包中的TTL值我们将其设置为1。如果遇到EBGP对等体之间需要进行 非直连建邻,所以TTL值设置为255.

        3.AS - BY -AS --- 在BGP当中,我们将一个AS看做一个整体。

        在BGP协议中不支持负载均衡 --- 在BGP当中,如果到达同一个目标网段存在多条路径可以走时,BGP将会根据其中的路径属性来选择一条最优的加载到路由表中,二不会进行负载均衡

BGP的数据包

        BGP协议所有数据包的传输的可靠性均由TCP协议来保证。所有BGP数据包均基于TCP建立的会话通道发送

                OSPF的Hello --- 可以周期性的发现,建立和保活邻居关系。

        在BGP中,发现邻居关系的过程变为由人手工指定。主要因为TCP协议需要建立会话通道,之后才会基于通道发送数据包。

open包

        --- 建立BGP对等体关系。 --- 邻居关系的建立无非就是参数协商的过程。BGP建立关系需要通过OPEN包来携带参数,进行对比协商

        AS号 --- 在创建邻居关系时需要指定邻居所在的AS号,这个参数将被携带在OPEN报文中发送给对方,对方将比对这个AS号和本地所在的AS号是否一致,如果一致,则可以正常建立邻居关系

       认证 --- BGP建邻也可以做认证,做认证后携带认证口令,认证口令双方需要比对,一致则可以正常建立邻居关系

       PORUTE - ID --- 区分和标定路由器的。也是由32位二进制构成,按照IP地址的格式来表示。 --- 1.手工认证,2.自动获取(先看设备是否存在环回接口,如果存在则将选择环回接口中IP地址最大的地址作为RID,如果没有环回接口,则将在物理接口选择IP地址最大的作为RID)

        这个RID将在OPEN包中携带,发送到对端之后,对端将检测这个RID,如果和本地RID不同,则将可以正常的建立邻居关系

        手工建立领句关系时所指定的建邻的IP地址必须和收到的open包中的源IP地址相同才能正常建立邻居关系。否则,邻居关系将建立失败

        Holdtime --- 保活时间 --- 默认时间为180S,在保活时间内,如果没有收到对方发送的Keeplive包或者update包,则将断开BGP邻居关系。

        open报文中将被携带,但是,双方不一致不会影响邻居关系的建立,但是在执行时,这个时间必须是一致的,则将采用双方中比较小的保活时间来使用。

        路由器是否支持刷新功能也将成为open报文中所携带的一个协商参数

Keeplive包

        --- 周期保活 --- 周期发送时间等于保活时间的1/3.默认保活时间为180s,则默认的周期发送时间为60s

        除了保活之外,Keeplive包还将在open报文协商参数时,临时充当确认包的作用

注意:   

        TCP协议进行确认的目的是为了保证数据传输的可靠性,而Keeplive报文发送确认的目的是为了确认认可对方发送的open报文中的参数

update包

        --- 更新包 --- 携带需要传递的路由信息的数据包。表示一条路由条目信息,需要携带的参数主要就是目标网络号和子网掩码信息,以及路径属性。

        在更新包中,存在一个撤销路由条目字段,在这个字符安下的路由条目将需要对端删除,而不需要通过带毒传输的方式来表达。

notification包

         --- BGP中设计的一个告警机制

Router - refresh包

        --- 用于改变路由策略变更后请求对等体重新发送路由信息。(前提 --- 双方均支持路由刷新功能才行)

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 

        Established --- 建立状态 --- 标志着BGP对等体的建立

BGP的工作过程

1.基于IGP协议实现网络可达

2.指定邻居关系,通过TCP三次握手,建立TCP的会话通道。之后所有BGP的数据报文都将基于TCP会话通道来进行传递

3.使用open报文和Keeplive报文进行邻居关系的建立。之后将邻居关系收集到一张表中 --- 邻居表

4.通过update报文传递路由信息。传递的路由条目信息中主要包含目标网络号、掩码信息、以及各种路径属性。 --- BGP表

5.之后将BGP表中的最优路径加载到路由表中。

6.收敛完成后,BGP将周期使用Keeplive报文进行保活。保活时间默认为180s,周期发送时间默认为保活时间的1/3,即60s

7.若出现错误信息,将使用notification报文进行告警。

8.若发生结构突变,则将使用update报文进行除法更新。

BGP的路由黑洞

形成原因:

        由于BGP协议支持非直连建邻,故可能出现BGP协议跨越未运行BGP协议的路由器,导致BGP路由传递后,控制层面可达,但是数据层面,在经过未运行BGP协议的路由器(R4)时无法通过,形成路由黑洞

解决方法:

        1.在R3上将BGP协议的路由信息重发布到IGP当中。

        2.直接在R4上运行BGP协议

        3.MPLS

为了避免路由黑洞的情况产生,BGP提出了同步机制 --- 即当一台路由器从自己的IBGP对等体学习到一条BGP路由时,它将不能把它通告给自己的EBGP对等体,除非它又从IGP中学习到这条路由 --- 需要手动开启

BGP的防环

使用的防环机制

        水平分割机制 

        --- EBGP的水平分割 --- 一种专门应用在EBGP对等体之间,用来解决EBGP对等体之间可能出现的环路问题

                BGP协议将在路由条目中记录 所经过的AS编号 ---AS PATH --- 记录AS路径的一个属性。(这个属性除了可以完成EBGP的水平分割外,还可以作为选路的依据) --- 接受到的BGP的路由条目中,其中的AS_PATH属性中,若存在本地AS号,则将拒绝接收

        --- IBGP的水平分割 --- 一种专门应用在IBGP对等体之间,用来解决EBGP对等体之间可能出现的环路问题

         IBGP水平分割 --- 当一个路由器从一个IBGP对等体处学习到某条BGP路由时,他将不能将这条路由信息通告给其他的IBGP对等体关系。

        

         因为IBGP水平分割的限制,导致IBGP对等体之间的路由信息只能传递一跳,在这情况下,可能造成通信障碍。解决方案

                1.构建全连的IBGP对等体关系 --- 弊端 1. 全连建邻会导致资源消耗增加;2.可能会导致网络的可拓展性降低

                2.路由反射器

                2.联邦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

White乄joker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值