BGP基础理论详解

文章目录

  • BGP概述
    • 优点:
    • 基本概念
    • BGP 工作原理
    • BGP对等体之间的交互原则
    • BGP 与IGP路由的引入
    • BGP 属性:
    • BGP选择路由的策略
    • 路由反射器
    • BGP联盟

BGP概述

  • 边界网关协议BGP(Border Gateway Protocol)
  • 是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议
  • BGP使用TCP作为其传输层协议(端口号为179),并支持BGP与BFD联动、BGP Tracking和BGP GR和NSR,提高了网络的可靠性。

优点:

  • 保证了网络的安全性:认证GTSM的方式
  • 灵活性: 丰富的路由策略,能够灵活选录
  • 稳定性:防止路由振荡–路由聚合和路由衰减
  • 可靠性:使用TCP作为其传输层协议
  • 高效性:采用按组打包技术分发–邻居数目多、路由量大且具有相同出口,

基本概念

  • 自治系统AS(Autonomous System):

    • AS是指在一个实体管辖下的拥有相同选路策略的IP网络。
    • AS号:
      • 共有:1-64511
      • 私有:64512-65534
      • 记忆办法:
      • 2^16-1=65535,私有AS有1024个,65535-1024=64511,因此为公1-64511有AS
  • BGP分类

    • IBGP:运行于不同AS之间
      • 当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。–防环
    • EBGP:运行于同一AS内部
      • BGP设备不将从IBGP对等体学到的路由通告给其他IBGP对等体
      • 注意:
        • 如果在AS内一台BGP设备收到EBGP邻居发送的路由后,需要通过另一台BGP设备将该路由传输给其他AS,此时推荐使用IBGP。
  • BGP报文交互中的角色:

    • Speaker:发言者—发送BGP报文的设备
    • •Peer:对等体或邻居
  • BGP的路由器号(Router ID)

    • 唯一的
    • 手动配置
    • 设备自动选取
      • 缺省情况下,lookback 接口作为 id
      • 没有配置lookback,最大ipv4 接口地址
      • 一旦配置,不会被抢,除非删除接口地址

BGP 工作原理

  • BGP的报文:5种报文进行交互

    • Open报文:用于建立BGP对等体连接。
    • Update报文:用于在对等体之间交换路由信息
    • Notification报文:用于中断BGP连接。
    • Keepalive报文:用于保持BGP连接
    • •Route-refresh报文:用于在改变路由策略后请求对等体重新发送路由信息。只有支持路由刷新

  • ljl

  • 初始化idle,如果开启,首先进入发起Connect连接,如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。

  • 如果TCP连接失败,那么BGP停留在Active状态。超时,返回,connect转态

  • 在OpenSent状态下,BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证码等进行检查。

    • 如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态。
    • 如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。
  • 在OpenConfirm状态下,BGP等待Keepalive或Notification报文。如果收到Keepalive报文,则转至Established状态,如果收到Notification报文,则转至Idle状态。

  • 在Established状态下,BGP可以和对等体交换Update、Keepalive、Route-refresh报文和Notification报文。

BGP对等体之间的交互原则

  • 从IBGP学到的,只发给它的EBGP
  • 从EBGP学到的,发给所有EBGP、IEBGP
  • 只发最优的给对等体
  • 只发送部分更新的路由

BGP 与IGP路由的引入

  • BGP引入路由时支持Import和Network两种方式:
    • import:将RIP、OSPF、ISIS等协议的路由引入到BGP路由表中,直连,静态也行

    • network:将IP路由表中已经存在的路由引入到BGP路由表中,比Import方式更精确

BGP 属性:

  • 公认必须遵循:可以识别,必须存在更新报文中

    • origin
      • 标记路由来源 :
        • network—igp、egp
        • import ---->incomplete
    • as_path
      • 不接受带有本地as号的路由
    • next_hop
  • 公认任意:可以识别,不要求存在更新报文中

    • local fref
      • 于判断流量离开AS时的最佳路由。
      • 本地有效,不发给其它AS域
      • 缺省 100
  • 可选过度:不识别此类属性,它任会接受,发送

    • 团体属性
      • 用于标识具有相同特征的BGP路由
        • 定义团体属性
        • 公认团体属性
          • internet 属性号 0 ,向任何对等体发送该路由
            • no_advertise 属性号:0xFFFFFF02 不向任何对等体发送该路由
            • no_port 0xFFFFFF01 将不向AS外发送该路由。
            • No_Export_Subconfed (0xFFFFFF03 将不向AS外发送该路由,也不向AS内其他子AS发布此路由。
  • 可选非过度:忽略属性,不发送给对等体

    • med 值
      • 用于判断流量进入AS时的最佳路由
      • 将优先选择MED值较小者作为最佳路由
      • 缺省 0
    • originator-id
    • cluster_list
      • 用于解决路由反射器场景中的环路问题

BGP选择路由的策略

  • 优选协议首选值 (PrefVal)最高的路由。

  • 优选本地优先级 (Local_Pref)最高的路由

  • 优选 汇总、引入(手动、自动、network、inport)

  • 优选AS path (AS_Path)最短的路由

  • 优选 IGP 、EGP 、Incomplete的路由

  • 对于来自同一AS的路由 优选 MED值 MED值最低的路由。

  • 依次优选EBGP路由、IBGP路由、LocalCross路由、RemoteCross路由。

  • 优选到BGP下一跳IGP度量值metric最小的路由

  • 优选Cluster_List最短的路由

  • 优选Router ID最小的设备发布的路由

  • 选从具有最小IP Address的对等体学来的路由\

  • 总结:

    • 首选值 比大
    • 本地优先级 比大
    • 汇总 手动>自动
    • AS-PATH 最短的
    • 起源 IGP > EGP >引入的
    • MED 比小
    • 路由 EBGP IBGP 、隧道实例路由
    • 下一跳 IGP 度量值 metric 最小的
    • Cluster_List最短的路由
    • Router ID 最小的
    • 最小ip 地址学路由
  • 顺口溜:

    • 首选 本地 汇总 AS 起源
    • MED 路由 下一跳度量
    • Cluster_List Router ID 最小ip
  • 需要熟悉的是 起源 AS-PATH next-hop MED local-preference Community

路由反射器

  • 为啥使用BGP反射器?

    • 为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。–不能同步,防止黑洞
    • 当设备数目很多时,设备配置将十分复杂
    • 网络资源和CPU资源的消耗都很大
  • 路由反射器相关角色

    • 路由反射器RR(Route Reflector)
    • 客户机(Client)
    • 非客户机(Non-Client)
    • 集群(Cluster)–用于表示RR的域
  • 对等体之间的关系

    • Client 只需要维护与RR之间的IBGP会话
    • 如果有多个RR ,RR之间需要建立IBGP全互联
    • 非客户端和非客户单也需要建立IBGP全互联
    • RR 域 非客户端需要建立IBGP
      全互联
  • 路由反射宣告原则:

    • 从非客户端学到的路由会发给RR的所有客户端
    • 从EBGP 收到的路由会发给所有客户端和非客户端
    • 配置很简单
    • 防环:
      • 同过一个Cluster ID 标识一个Cluster
      • Originator ID ,RR传来的路由,打上 originator id (默人就是始发者router id)

BGP联盟

  • 联盟(RFC3065)

    • 将大的AS分成若干大小的AS ,而小AS之间建立EBGP对等体关系
  • 联盟术语

    • 联盟AS—原来大的as
    • 成员as—小的as
  • 回顾as -path

    • AS 分类
      • AS_SET:由一系列as 号无序组成,包含在updata消息里面
      • AS_SEQUENCE:有一系列as号顺序组成,包含在U盘data包里面
      • AS_CONFED_SEQUENCE:顺序组成,本地联盟内传递
      • AS_CONFEO_SET:无序组成,本地联盟内传递

你可能感兴趣的:(网络)