BGP基础

BGP基础
樂乐BGP基础
前言
为方便管理规模不断扩大的网络,网络被分成了不同的AS(Autonomous System,自治系统)。早期,EGP(Exterior Gateway Protocol,外部网关协议)被用于在AS之间动态交换路由信息。但EGP设计简单,存在诸多不足,很快无法满足网络管理的要求。BGP(Border Gateway Protocol,边界网关协议)是为取代EGP而设计的,能够进行路由优选、避免路由环路、更高效地传递路由和维护大量路由信息。
目标
- 描述BGP基本概念
- 描述BGP的对等体类型
- 阐明BGP对等体建立过程
- 阐明BGP状态机
- 实现BGP基本配置
目录
- BGP概述
- BGP的基本概念
- BGP的基本配置
AS(自治系统)
- AS指的是在同一个组织管理下,使用统一选路策略的设备集合。
- AS号存在16bit、32bit两种表示方式,由IANA负责分发。
- 私有AS号范围:16bit为64512-65534,32bit为4200000000-4294967294。
使用IGP传递路由的局限性
- AS之间需要直连链路或通过VPN协议构造逻辑直连。
- 使用IGP存在暴露AS内部网络信息的风险。
- 路由数量增加导致路由表规模变大,路由收敛变慢,设备性能消耗加大。
使用BGP传递路由
- BGP基于TCP,只要能够建立TCP连接即可建立BGP。
- 只传递路由信息,不会暴露AS内的拓扑信息。
- 采用触发式更新,而不是周期性更新。
BGP发展历史
- 1980年左右提出AS概念,使用EGP。
- 1989年发布第一个BGP RFC(RFC1105),即BGP-1。
- 1990年发布的RFC1163提出了路径属性概念。
- 1994年开始使用BGP-4(RFC1771)。
- 2006年之后,单播IPv4网络使用的版本是BGP-4(RFC4271),其他网络(如IPv6)使用的版本是MP-BGP(RFC4760)。
BGP在企业中的应用
- 大型企业分支间采用BGP进行路由传递。
- 企业与运营商之间可使用BGP进行路由交互。
BGP概述
- BGP是一种实现自治系统AS之间的路由可达,并选择最佳路由的矢量性协议。
- 特点:使用TCP(端口号179),触发式路由更新,承载大批量的路由信息,提供丰富的路由策略,支撑MPLS/VPN应用,具备路由聚合和路由衰减功能。
BGP特征
- 使用TCP为传输层协议,端口号179。
- BGP路由器之间交换BGP路由表,只发送增量的BGP路由更新。
- BGP被称为路径矢量路由协议,每条BGP路由都携带多种路径属性。
BGP对等体关系
- EBGP(External BGP):位于不同自治系统的BGP路由器之间的BGP对等体关系。
- IBGP(Internal BGP):位于相同自治系统的BGP路由器之间的BGP邻接关系。
BGP对等体关系建立
- 先启动BGP的一端发起TCP连接。
- 三次握手建立TCP连接后,相互发送Open报文携带参数。
- 参数协商正常后双方相互发送Keepalive报文,对等体建立成功。
TCP连接源地址
- 在部署IBGP对等体关系时,建议使用Loopback地址作为更新源地址。
- 在部署EBGP对等体关系时,通常使用直连接口的IP地址作为源地址。
BGP报文类型
- Open:建立BGP对等体连接关系。
- Update:传递路由信息。
- Notification:告知对等体错误原因并中断连接。
- Keepalive:保持连接。
- Route-refresh:要求对等体重新发送指定地址族的路由信息。
BGP报文格式
- 报文头:包括Marker(16字节)、Length(2字节)、Type(1字节)。
- Open报文:包括Version、My AS、Hold Time、BGP Identifier等字段。
- Update报文:包括Withdrawn Routes、Path attributes、NLRI等字段。
- Notification报文:包括Error Code、Error subcode、Data等字段。
- Keepalive报文:只包含报文头。
- Route-refresh报文:包括AFI、Res.、SAFI等字段。
BGP状态机
- 状态转换:
- Idle:未启动BGP或无法发起TCP连接。
- Connect:尝试建立TCP连接。
- Active:TCP连接长期无法建立。
- Open Sent:发送Open报文。
- Open Confirm:收到对端回应的Open报文并发送Keepalive报文。
- Established:对等体关系建立成功。
BGP对等体表
- 使用
display bgp peer
命令查看BGP对等体表,包括对等体地址、版本号、AS号、Up/Down时间、状态、收到的路由前缀数目等。
BGP路由表
- 使用
display bgp routing-table
命令查看BGP路由表,包括目的网络地址、网络掩码、下一跳地址等。 - 可通过
display bgp routing-table ipv4-address { mask | mask-length}
查看某条路由的详细信息。
BGP路由的生成
- BGP不会自己发现、计算路由条目,其路由条目由IGP协议路由表中的路由发布得到。
- 注入路由的方式有两种:Network和import-route。
Network注入路由
- 使用
network
命令将IGP路由表中的路由注入到BGP路由表中。
import-route方式注入路由
- 使用
import-route
命令将直连路由、静态路由、OSPF路由、IS-IS路由等注入到BGP路由表中。
BGP聚合路由
- 使用
aggregate
命令执行BGP路由手工聚合,生成聚合路由。
BGP通告原则
- 只发布最优且有效的路由。
- 从EBGP对等体获取的路由,会发布给所有对等体。
- 从IBGP对等体获取的路由,不会发送给其他IBGP对等体(IBGP水平分割)。
- 当从IBGP对等体学习到一条BGP路由时,除非从IGP协议学习到该路由,否则不会通告给EBGP对等 体(BGP同步原则)。
配置介绍
- 启动BGP进程:
bgp { as-number-plain | as-number-dot }
,router-id ipv4 -address
。 - 配置BGP对等体:
peer {ipv4-address | ipv6-address } as-number { as-number-plain | as-number-dot }
。 - 配置建立对等体使用的源地址、EBGP对等体最大跳数:
peer ipv4-address connect-interface interface- type interface-number [ ipv4-source-address ]
,peer ipv4-address ebgp-max-hop [ hop-count ]
。
配置案例
1 | # R1的配置 |
思考题
BGP使用的TCP目的端口号是多少?
答案:179
。
BGP对等体关系有哪几种? 划分的依据是什么?
答案:有两种,EBGP和IBGP。 划分的依据是BGP路由器是否位于相同的自治系统。
BGP对等体关系建立、更新路由分别使用什么报文?
答案:建立对等体关系使用Open报文,更新路由使用Update报文。
本章总结
本章节介绍了BGP基础知识,包括BGP产生的背景、AS的概念、BGP的特征、对等体关系建立过程、BGP状态机、路由生成与 通告原则等。 BGP在路由传递中遵循四条原则,对路由传递进行了限制。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果