• 这个漂亮老男人你记住了吗?——BGP学习



    复习

    IGP协议(内部网关协议)

    • RIP(已淘汰)
    • OSPF
    • IS-IS

    EGP协议(外部网关协议)

    • BGP
    • IGP用来计算和发现路由,BGP路由控制和路由优选(13条选路原则)
    • IGP是在自治系统(AS)内部使用,EGP是在自治系统间使用

    BGP基本概述

    • BGP可以跨越多跳路由建立邻居关系
    • 通过单播发送报文
    • 基于TCP,端口号179,为应用层协议

    BGP邻居关系建立与配置

    • BGP基于TCP,所以建立邻居前会先建立三次握手
    • 先启动BGP的一端先发起TCP连接

    BGP邻居类型

    EBGP

    • 外部边界网关协议
    • 运行在不同的AS之间的BGP路由器建立的邻居关系叫EBGP(External BGP)邻居关系

    IBGP

    • 内部边界网关协议
    • 运行在相同AS内部的BGP路由器建立的邻居关系为IBGP(Internal BGP)邻居关系
    • 在AS内部,不使单独用BGP协议,通常是IGP+BGP

    BGP配置

    • router-id 1.1.1.1指定router-id
    • bgp 300进入到自身的AS区域
    • peer 10.1.1.3 as-number 100对方的IP和AS区域
    • peer 2.2.2.2 connect-interface loopback 0指定更新源,更稳定
    • BGP是在多个站点之间传递路由,并不是为了在AS内部打通路由
    • EBGP之间建邻居一般使用直连接口
    • IBGP之间建邻居一般使用环回口

    【BGP练习实验】

    BGP邻居关系建立

    • BGP报文格式
      • BGP报文头部
      • OPEN报文,建立连接
      • UPDATE报文,更新路由
      • NOTIFICATION报文,通知错误
      • KEEPALIVE报文,维护TCP的连接
      • REFRESH报文,请求得到路由

    BGP邻居建立

    • 先建立TCP连接
    • TCP连接建立后,发送Open报文,另一端接收到报文后,会进行检验
    • 检验符合,回复Keepalive,邻居建立成功
    • Keepalive60s发送一次,180s收不到就认为对端down了
    • Update路由发生变化时,会发送Update报文

    BGP状态机

    BGP状态机

    • IDLE等待触发邻居建立的事件
    • Connect配置好BGP后,开始建立TCP连接
      • TCP连接建立成功,进入Open-sent状态
      • TCP连接建立失败,进入Active状态,重新建立TCP连接
    • open-sent向外发送OPEN报文,收到正确的报文,进入Open-confirm状态
    • 接收到Keepalive报文,进入Established状态,邻居建立成功

    BGP路由生成方式

    • Network,只能宣告路由表中有的路由,且与路由表中的路由完全相同
    • import,根据运行的路由协议,将路由引入到BGP路由表中,还可以引入直连和静态路由

    BGP通告原则和路由处理

    • BGP通过Network和import两种方式生成路由,BGP邻居关系建立后,开始将路由封装在Update报文中通告给邻居
    • Update报文主要用来通告可用路由和撤销路由,Update包含:
      • 网络层可达信息(NLRI):公布IP前缀和前缀长度,发布路由
      • 路径属性:为BGP提供环路检测,控制路由优先
      • 撤销路由:描述无法到达且从业务中撤销的路由前缀和前缀长度

    BGP通告原则

    • 仅将自己最优的路由发布给邻居
    • 通过EBGP获得的最优路由发布给所有的BGP邻居
    • 通过IBGP获得的最优路由不会发布给其他的IBGP邻居(水平分割,防环)
    • BGP与IGP同步(默认关闭)

    BGP路由信息处理

    BGP路由信息处理

    • 从BGP邻居收到更新信息后,进行路径选择
    • 将路由信息,写入本地的路由表
    • 将BGP路由表中最优的路由下发到全局路由表,为后面的数据转发做准备
    • 把本地的最优路由发布给其它邻居

    在发布最优路由之前,如果接口有策略,需要先过策略,再转发给BGP邻居

    BGP常用属性介绍

    BGP属性

    • 公认必遵:公共认可,并且三个属性必须存放在Update报文中

      • Origin(起源,初始):定义路径信息的来源。i是network引入的,?是import引入的,e是EGP引入的
      • AS_Path(AS路径):标识AS区域号,每经过一个AS区域,AS号会附加。防止环路
      • Next_hop(下一跳):路由传给IBGP邻居时下一跳不变,路由传给EBGP邻居时,下一跳为和对方建邻居的地址
    • 公认任意:公共认可,可有可无的属性

      • Local_Prefference:本地优先级。在AS内,IBGP之间传递路由,默认本地优先级为100,越大越优,影响本AS出去的流量
      • MED:在两个AS间,EBGP之间传递路由,默认值为0,越小越优,影响本AS进来的流量,且只能传递一个AS,用于判断流量进入AS时的最佳路由
    • 可选过渡:无论是否可以识别报文信息,都必须转发

      • Community:团体属性。表示路由,限定路由的传播范围,打标记,便于对符合相同条件的路由进行统一处理
    • 公认团体属性:
      • Internet:缺省属性,此路由可以通告给左右的BGP邻居
      • No_Export:不将此路由发布到其他AS
      • No_Advertise:不将此路由通告给其他的BGP邻居
      • No_Export_Subconfed:联盟中使用
    • 拓展的团体属性:
    • 可选非过渡:不管是否可以识别报文信息,可以转发也可以不转发
    • BGP防环:
      • AS内防环:通过IBGP获得的最优路由不会发布给其他的IBGP邻居(水平分割)
      • AS间防环:AS_Path增加AS区域号

    BGP选路原则

    • BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况:
      • 该路由是到达目的地的唯一路由,直接优选
      • 对到达同意目的地的多条路由,优选优先级最高的
      • 对到达同同一目的地且具有相同优先级的多条路由,必须用更新的原则去选择一条最优的

    BGP13条选路原则

    • BGP计算路由优先级的13条规则:
      1. 丢弃下一跳不可达的路由
      2. 优选Preference_Value值最高的路由(私有属性,仅本地有效)---------P
      3. 优选本地优先级(Local_Preference)最高的路由---------------------------L
      4. 优选手动聚合->自动聚合->network->import->从对等体学到的------------L
      5. 优选AS_Path短的路由---------------------------------------------------------------A
      6. 起源类型IGP->EGP->Incomplete-------------------------------------------------O
      7. 对于来自同一AS的路由,优选MED值小的-------------------------------------M
      8. 优选从EBGP学来的路由(EBGP>IBGP)-------------------------------------E
      9. 优选AS内部下一跳的IGP的Metric最小的路由---------------------------------N
      10. 优选Cluster_List最短的路由(有RR的环境)
      11. 优选OrGinator_ID最小的路由(有RR的环境)
      12. 优选Router_ID最小的路由器发布的路由(同时是IBGP或EBGP邻居)
      13. 优选具有较小IP地址的邻居学来的路由(同时是IBGP或EBGP)
    • PLLAOMEN漂亮老男人
    • PPreference_Value(越大约优,仅限路由器本地)
    • LLocal_Preference,本地优先级 (越大越优,同一AS内的路由器)
    • L手动聚合->自动聚合->network->import,为本地始发
    • AAS_Path(短的优先)
    • OOrigin,起源 i(network)>e(EBGP)>?(import-route)
    • MMED(值越小越优,本AS内或上游AS内所有路由器,EBGP邻居上设置)
    • EEBGP优于IBGP(前面都一样,比不出最优路径时)
    • NNext-Hop,下一跳(BGP选择IGP下一跳cost值最小的)

    前8条选路原则完全相同,最大负载条目大于等于2,就不会再向后比,直接负载

    各种属性对选路的影响

    Preference_Value

    • Preference_Value是BGP的私有属性,Preference_Value相当于BGP选路规则中Weight值,仅在本地路由器生效,Preference_Value值越大,越优先

    聚合

    • 聚合路由优先级:手动聚合>自动聚合

    EBGP邻居的路由优于IBGP邻居的路由

    • AS内的路由器收到IBGP和EBGP的路由,会优先选择EBGP学习到的路由

    AS内部IGP的Metric

    • 调整IGP的Cost,提升带宽

    路由策略详细介绍

    BGP路由聚合

    • BGP在AS之间传递路由信息,AS的数量增多,单个AS规模扩大,BGP路由表变大,带来的问题:
      • 存储路由表占用大量内存资源,传输和处理路由信息消耗大量贷款
      • 传输的路由条目出现频繁的更新和撤销,对网络的稳定性造成影响

    BGP路由聚合的必要性

    • 将以下路由聚合
      • 10.1.8.0/24
      • 10.1.9.0/24
      • 10.1.10.0/24
      • 10.1.11.0/24

    静态

    • 静态一般用的较少
    ip route-static 10.1.8.0 22 null 0
    network 10.1.8.0 22
    

    自动聚合

    summary automatic  //自动聚合,按主类聚合,掩码为8
    

    手动聚合

    【聚合实验及详细说明】

    以上内容均属原创,如有不详或错误,敬请指出。
    
    本文作者: 坏坏
  • 相关阅读:
    UVM训练场
    无法解析具体reference那个同名文件
    Verdi技巧
    verilog disable 用法 (易错!)
    Unicode 和 UTF-8 有何区别?
    gcc编译过程简述
    js对象中什么是可枚举性(enumerable)?
    JSON.stringify 语法实例讲解
    ECMAScript5 Object的新属性方法
    Can someone explain Webpack's CommonsChunkPlugin
  • 原文地址:https://www.cnblogs.com/bad5/p/13232822.html
Copyright © 2020-2023  润新知