本文共 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/