博客
关于我
BGP边界网关协议及相关命令
阅读量:523 次
发布时间:2019-03-08

本文共 1830 字,大约阅读时间需要 6 分钟。

BGP边界网关协议全解析

BGP概述

边界网关协议(BGP, Border Gateway Protocol)是一种用于实现自治系统(AS)之间路由可达及选择最佳路由的矢量性协议。早期版本包括BGP-1、BGP-2和BGP-3,1994年开始使用BGP-4(RFC1771),而2006年之后,单播IPv4网络使用BGP-4(RFC4271),其他网络使用MP-BGP(RFC4760)。

BGP特点

  • 传输层协议:BGP使用TCP作为传输层协议,监听端口号为179,提高了协议的可靠性。
  • 外部路由协议:BGP用于AS之间的路由传递,非常注重稳定性。
  • 对等体逻辑连接:BGP对等体之间必须逻辑上连通,使用TCP连接,目標端口号为179,本地端口号可任意。
  • 对等体类型:BGP对等体与IGP对等体不同,BGP对等体是指使用TCP建立连接的两端,不需直连即可运行。
  • 路由控制:BGP仅负责路由控制,数据转发依赖于静态或IGP路由。
  • 地址类别域:支持无类别域间路由CIDR。
  • 路由更新优化:仅发送路由更新的路由,大幅减少路由信息的传播带宽。
  • 增强距离矢量:设计上有效避免了路由环路。
  • AS路径标记:携带AS_path信息,避免跨AS环路。
  • 内AS学习机制:学习路由后不会通告给内部BGP邻居,避免内AS环路。
  • 灵活路由策略:提供丰富的路由策略选项。
  • 路程衰减机制:通过路由衰减防止路由振荡,提高网络稳定性。
  • 协议扩展性:支持IPv4单/组播及NV6的扩展,主要通过TLV实现。
  • BGP分类

    BGP按运行方式分为EBGP和IBGP:

  • EBGP:用于不同AS之间的BGP,接收到EBGP对等体路由时,会将带有本地AS号的路由丢弃。
  • IBGP:用于同一AS内部的BGP,互不通告路由,同时建立全连接。
  • IBGP水平分割规则

    基于水平分割规则,内BGP学习到的路由不能直接传递给外BGP对等体。通常通过BGP联盟或路由反射器解决这种传输阻碍。

    BGP路由器ID

    BGP Router-ID为32位值,通常是IPv4地址形式。在BGP会话建立时发送的Open报文中携带。设备需配置唯一Router-ID,否则无法建立BGP连接。默认情况下,设备使用Loopback接口的IPv4地址,若无Loopback接口,则选取最大的Loopback地址(如10.0.0.1)作为Router-ID。

    BGP工作原理

    BGP对等体的建立、更新和删除涉及5种报文、6种状态机和9个原则。

    BGP报文

  • Open报文:TCP连接建立后发送的首表报文,协商BGP参数。
  • Update报文:交换路由信息。
  • Notification报文:报告BGP错误,中断连接。
  • Keepalive报文:维持BGP连接。
  • Route-refresh报文:在路由策略变化时刷新路由信息。
  • BGP状态机

    状态包括:

  • 空闲(Idle):拒绝连接请求。
  • 连接(Connect):TCP连接重传。
  • 主动(Active):持续尝试连接。
  • 发送Open(OpenSent):等待对等体响应。
  • 确认Open(OpenConfirm):处理对等体Open报文。
  • 已建立(Established):正常路由交换。
  • BGP交互原则

  • 将最优路由放入BGP路由表。
  • 从IBGP对等体获取的路由只发布给EBGP。
  • 从EBGP对等体获取的路由发布给所有对等体。
  • 多路径选择最优路由。
  • 只传递路程更新的路由。
  • 接收所有对等体发送的路由。
  • EBGP路线下一跳改变,IBGP路线下一跳不变。
  • EBGP路线TTL设为1,IBGP路线TTL为255。
  • 对等体建立注意事项

  • IBGP对等体:确保下一跳可达,特别是边界IBGP对等体需下一跳指向自己。
  • EBGP对等体:highest-hop JBGPmax-hop设置为2。
  • 回环接口:建议使用回环接口建立对等体,以提高稳定性。
  • 配置示例

    配置示例:

  • IP设置:配置各路由器的IP地址。
  • OSPF配置:在OSPF网络中配置区域和网络。
  • BGP配置:
    [R1] bgp 100[R1-bgp] router-id 1.1.1.1[R1-bgp] peer 2.2.2.2 as-number 100 connect-interface LoopBack0[R1-bgp] peer 3.3.3.3 ...
  • EBGP处理:设置EBGP最大跳数及静态路由。
  • 通过以上配置,BGP设备可实现高效的路由交换和网络稳定性。

    转载地址:http://pkziz.baihongyu.com/

    你可能感兴趣的文章
    Python:假与 0
    查看>>
    Python:函数使用
    查看>>
    Python:函数进阶
    查看>>
    Python:在整数的二进制表示中查找最长的二进制间隙
    查看>>
    Python:如何从二进制转换为 base 64 并返回?
    查看>>
    Python:如何以非阻塞方式读取子进程的标准输出
    查看>>
    Python:如何使用 plotly 制作阴影区域或交替背景颜色?
    查看>>
    Python:如何根据日期时间获取值的计数
    查看>>
    python:如何检测串行 COM 上的设备名称/ID
    查看>>
    Python:如何模拟 datetime.utcnow()?
    查看>>
    Python:如果DataFrames之间的其他值匹配,则对DataFrame中的值求和
    查看>>
    Python:字典思维
    查看>>
    Python:将 HEX 字符串转换为字节
    查看>>
    Python:将列表与范围列表合并
    查看>>
    Python:将列表列表初始化为一定大小,
    查看>>
    Python:带有生成器的给定集合的幂集
    查看>>
    Python:按字符的位置拆分字符串
    查看>>
    Python:替换嵌套字典中的值
    查看>>
    Python:爬取数据出现response.status_code为403解决方法
    查看>>
    Python:爬取数据出现response.status_code为418解决方法
    查看>>