BGP学习笔记

这里写自定义目录标题

BGP

BGP基础

  1. BGP是什么:BGP是一种在自治系统AS之间传递并选中最佳路由的高级矢量路由协议,共有四个版本,现在使用的是BGP-4
  2. BGP将AS视为一个节点,以TCP作为底层传输机制
  3. AS内运行iBGP,AS之间运行eBGP
  4. AS_path中会记录报文经过的AS号,且当AS号改变时才会记录
  5. AS_path可以防止环路,出现环路时,数据报会被丢弃
  6. BGP和IGP之间区别
区别IGPBGP
使用范围AS内使用AS间使用
收敛速度迅速,只在邻居间工作
功能发现和计算路由控制路由的传播和选中最佳路由
适用网络中小心企业网大型,超大型运营网络
其他路由选择实施复杂支持CIDR
只发送更新路由,减少带宽,适用于在互联网上传播大量路由信息
解决环路问题
下一跳地址可以是非直连路由器的接口IP
  1. 无需用到BGP场景

    • 单宿主自治系统: 用户和ISP之间只有一条线连接,直接用静态路由(缺省路由)就行
    • 多宿主到单一的自治系统:一条主用链路,一条备用链路
      在这里插入图片描述
  2. 需要用到BGP场景:跨运营商传递路由,且需要路由协议进行自动选路

邻居建立

  1. 邻居关系:eBGP和iBGP邻居关系

  2. eBGP:不同AS之间的BGP,可防止AS间产生环路。

  3. iBGP:AS内的BGP,为了防止AS内产生环路,在AS内需要保持全连接的iBGP邻居

  4. 邻居建立的属性

    • 路由器标识(router-id):可手动设置,缺省情况下,选择loopback地址作为router-id
  5. BGP状态:
    在这里插入图片描述

状态描述接收事件动作备注
idle空闲状态startstart事件之后
1.对资源初始化
2.重置连接计时器
3.发起TCP连接请求
4.开始侦听远端对等体发起连接的端口,并转至connect状态
start状态由操作者配置/重启BGP过程
connect启动连接重传定时器,等待TCP完成连接1.如果TCP连接成功,BGP向对等体发送Open报文,并转至OpenSent状态
2.如果连接失败 转至Active状态
3.如果连接重传定时器超时,继续尝试进行TCP连接
4.其他事件,退回Idle状态
Acitve1.试图建立TCP连接1.如果连接成功,发送Open报文,并转至OpenSent状态
2.如果连接失败,停留在Active状态
3.连接重传定时器超时,转至Connect状态
4.其他事件,退回Idle
OpenSent1.等待对等体的Open报文
2.对收到Open报文中的AS号,版本号,认证码进行检查
1.如果收到报文正确,发送Keepalive报文,并重置Keepalive定时器,转至OpenConfirm状态
2.如果收到报文有误,发送Notification状态,并转至Idle状态
OpenConfirm等待Keepalive报文或Notification报文1.收到Keepalive报文,转至Established状态
2.收到Notification报文,Idle状态
Established与对等体交换Update,Keepalive,Route-refresh报文和Notification报文1.收到正确的Update或Keepalive报文,保持BGP连接
2.错误的Update或Keepalive报文,发送Notification报文并转至Idle状态
3.Route-refresh报文不会改变BGP状态
4.Notification报文,转至Idle状态
5.TCP拆除通知,BGP断开连接,转至Idle状态
  1. BGP邻居无法建立的原因(未处于Established状态)

    • 地址不可达
    • AS配置错误
    • eBGP跳数问题
    • 更新源问题
    • BGP认证错误
    • 报文协商失败
    • Router_ID冲突
    • 联盟和非联盟之间BGP连接配置错误
    • 错误报文导致连接中断,如BGP的Marker值错误
  2. BGP对等体之间交互原则

    • BGP将最优路由加入BGP路由表
    • 从iBGP对等体收到的路由,只发布给eBGP对等体
    • eBGP收到的路由,发给所有对等体
    • 只发送最优路由给对等体
    • 只发送更新路由
    • 接收所有对等体发送的路由

路径属性

  1. 属性分类
    在这里插入图片描述

    • 公认必遵(Well-known Mandatory):必须存在Update报文中,且所有BGP设备都可识别的
    • 公认任意(Well-known Discretionary):都可以识别,但不一定存在在报文中
    • 可选过渡(Optional Transitive):可以不识别,1.如果识别则转发该属性的更新,2.如果不识别,如果放置了过渡标记,则把该属性转发并通告给下游设备
    • 可选非过渡(Optional Non-transitive):可以不识别,如果设备不识别,且过渡标记没有被设置,则更新中不通告该属性
  2. 属性

属性描述类型备注
origin表示BGP路由起源1.IGP:从内部网关协议学习到的
2.EGP:通过EGP学习到的
3.incomplete:未知源,一般通过import引入路由表中
1.聚合路由可以是IGP,也可以是incomplete,这依赖于聚合路由的成员路由的origin属性。若有些成员路由是IGP,有些成员路由是incomplete,则生成的聚合路由是incomplete
2.优先顺序 IGP>EGP>incomplete
AS_PATH记录路由沿途经过的AS
  1. BGP路由信息库:存放用于决策的BGP路由

    • Adj-RIB-In:对等体接收到的更新,但没有经过处理
    • Loc-RIB:经过BGP的输入策略引擎,运行策略之后存储的信息库,用于本地路径选择
    • Adj-RIB-Out:经过BGP输出策略引擎,用于通告给其他对等体
  2. 决策过程

在这里插入图片描述

  • 1.收到更新数据包,存储在RIB(Routing Information Base),并指明是来自哪个对等体的(Adj-RIB-In)
  • 2.经过BGP输入策略引擎修改属性或路由过滤
  • 3.路径选择算法,为每一条前缀确定最佳路径
  • 4.最佳路径存储在Loc-RIB中,并加载到IP-RIB,用于路由选择
  • 5.输出策略引擎,存储在Adj-RIB-Out,通告给其他对等体
  1. 选路规则

    • PrefVal 大优
    • Local_Pref 大优
    • 手动聚合路由 > 自动聚合路由 > network通告路由 > import-route引入路由 > 对等体学习路由
    • AS_PATH 短优
    • Origin:IGP > EGP > incomplete
    • MED 小优
    • eBGP>iBGP
    • Metric 小优
    • Cluster_List 短优
    • Router_ID 小优
    • 邻居IP 小优
  2. 负载分担

    • BGP路由等价条件:前八个属性相同,且AS_Path也相同
    • 负载分担两种形式:1.BGP路由负载分担, 2.下一跳路由负载分担
  3. BGP负载分担

    • 若最优路由为iBGP,则只有iBGP形成负载分担,若最优路由为eBGP,则只有eBGP形成负载分担。
    • 负载分担只对本设备有效,给其他对等体发送时会发送最优路由
  4. 下一跳路由负载分担

    • 当BGP依赖下一跳转发数据,且下一跳是负载分担的,则也能算得上是BGP负载分担

  5. 路由聚合:手动聚合和自动聚合

    • aggregate:手动聚合,对BGP本地路由表中路由进行聚合
    • summary automatic:自动聚合

路由控制

  1. 介绍:定义路由器如何接收路由以及如何通告路由,选择合适的路径
  2. BGP最大优势:通过调整路由属性进行选路控制
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值