hcip第十天笔记

BGP----边界网关协议

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

        1,网络范围太大,协议作用有限,需要进行划分;
        2,自治管理:

    

        为了方便区分和标定不同的AS,我们给每个自治系统设计了一个编号----AS号---16位二进制构成----0-65535;其中0和65535为保留值,不使用,所以AS号真正的取值范围为1-65534;我门将64512-65534AS号称为私有AS号。IANA(互联网数字分配机构)------因为传统的AS号存在不够用的问题,所以也存在拓展版AS号---32位构成---绝大多数设备已经支持拓展版AS号。

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

        在目前ipv4环境下,使用最广泛的BGP版本是BGPV4。目前市场上已经存在BGPV4+(又称为MP-BGP--支持多种地址族的应用)

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

        1,重发布技术本身存在缺陷---多点重发布,因为种子度量值问题,必然造成选路不佳。
        2,ASBR设备的归属问题

        BGP之间传递路由信息的方式一定是和rip类似,通过传递路由条目信息来实现。---之所以不使用拓扑信息,主要因为;1.拓扑信息资源占用量太大,而BGP需要传递的数量巨大。2.传递拓扑信息将暴露AS内部的拓扑连接情况。

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

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

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

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

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

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

BGP协议的关注点

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

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

因为BGP协议需要传递大量的路由信息,所以,其本身不可能存在周期更新机制。BGP仅存在触发更新。

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

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

                TCP传输效率低
                TCP传输占用资源大
                TCP协议只能使用单播,所以无法通过组播或广播的形式发送,则将导致IGP协议无法自动发现邻居关系,只能手工指定。

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

BGP因为传输层使用的是TCP协议,所以,只要在TCP协议可以正常建立会话的基础上就可以完成BGP的建邻工作。----BGP支持非直连建邻(网络可达)----BGP的非直连可以建邻建立在IGP(静态)之上。

在BGP中我们把邻居关系叫做对等体关系。

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

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

        因为EBGP对等体之间一般使用直连建邻,所以,EBGP对等体之间发送的数据包中TTL值我们设置为1。如果遇到EBGP对等体之间需要进行非直连建邻,则需要手工修改TTL值。    IBGP对等体关系在AS内部建邻都是非直连,所以数据包TTL值为255.

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

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

1,BGP的数据包

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

        OSPF的HELLO---周期性,发现、建立、保活邻居关系。

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

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

        AS号---创建对等体关系时需要指定邻居所在的AS号,该参数携带在open报文中,对方将比对该AS号和本地的 AS 号是否一致。一致则建立,反之不建立。

        认证---BGP建邻也可以做认证,认证后携带口令,双方需要比对,一致则建立,反之不建立。

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

这个rid将在open报文中携带,发送到对端之后,对端将检测此rid,如果和本地rid不同,则将可以正常建立对等体关系。

手工建立对等体关系时,所指定的建邻IP地址必须和收到的数据包中的源IP地址相同才可以建立对等体关系。否则建立失败。

        Holdtime---保活时间---默认时间180s,保活时间内,如果没有收到对方发送的Keeplive包或update包,则将断开BGP对等关系。这个参数在open报文中被携带,但是双方不一致不影响对等关系建立,但在执行时,这个时间必须一致,则采用双方娇小的保活时间来使用。

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

Keeplive包---周期保活---周期发送时间=保活时间1/3。默认保活时间180s,默认周期发送时间为60s.

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

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

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

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

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

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

   2, BGP的状态机

BGP的状态机描述的是BGP对等体建立过程中状态的变化。因为BGP这个协议可以将邻居建立过程和收发路由过程分开进行。

        IDLE----空闲状态---路由器启动BGP进程之后,将先处于idle状态。当你手工指定邻居关系后,BGP将进行到一个检查环节,检查指定的IP地址在本地路由表中是否可达。如果可达。则将进入到下一个状态----connect。

        Connect---连接状态,该状态完成TCP会话的建立。

                如果TCP会话建立成功,则将进入到opensent状态,发送open报文。

                如果TCP会话建立失败,则进入ACTIVE状态,尝试重新建立tcp会话。

                在建立tcp会话过程中,因为双方都会主动发起建立会话的过程,而最终建立的都是一个双向的会话,所以只需要保留一个会话通道。选择方式是比较后续open报文的rid,保留rid大的会话。

        Opensent---发出本地open报文。收到对端发送的open报文,查看里面的参数,之后,如果确认参数无误。则将回复Keeplive报文进行确认。

        Openconfirm-open报文确认状态---对端也收到本地发送的open报文之后根据里边参数进行确认,确认无误则将发送Keeplive报文,本端收到Keeplive报文后进入下一个状态。

        Established---建立状态---标志BGP对等体关系的建立。

 3, BGP的工作过程

        1,基于igp协议确保网络可达
        2, 指定邻居关系,通过3次握手,建立TCP的会话通道,之后所有BGP的数据包都将基于TCP会话通道来进行传递。
        3,使用open.Keeplive报文进行邻居关系的建立。将邻居关系收集到---邻居表中。
        4,通过update报文传递路由信息。路由条目包含,目标网络号,掩码,各种路径属性。设备会将所有自己发出的和收到的路由信息记录在----BGP表中。
        5,之后将BGP表中最优路径加载到---路由表中。
        6,收敛完成后,BGP将周期使用Keeplive报文进行保活。保活时间180s,周期发送时间默认为保活时间1/3  60s.
        7,若出现错误信息,将使用notification报文进行告警。
        8,若发生结构突变,则将使用update报文进行触发更新。

4,BGP的路由黑洞

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

        1,在r3上将BGP协议的路由信息重发布到IGP当中。X
        2,直接在r4上运行BGP协议。X
        3,MPLS 多协议标签交换

为了避免路由黑洞的产生,BGP提出了同步机制---即当一台路由器从自己的IBGP对等体学习到一条BGP路由时,他将不能把他通告给自己的的EBGP对等体,除非他又从IGP协议当中学习到这条路由。

5,BGP的防环

        BGP使用的防环机制---水平分割

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

                BGP协议将在路由条目中记录所经过的AS编号AS_PATH---记录AS路径的一个属性。(也可作为选路依据)---接收到的BGP路由条目中,其中的AS_PATH属性中,若存在本地的AS号,则拒绝接受。

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

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

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

        1,构建全连的IBGP对等体关系----弊端1.全连导致资源消耗增加;2.可能导致网络的可拓展性降低。
        2,路由反射器
        3,联邦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值