1. BGP的概念
边界网关协议(Border Gateway Protocol,BGP)是一种用于在不同自治系统(AS)之间交换路由信息的外部网关协议(EGP)。它是互联网的核心协议之一,主要用于在不同的网络运营商之间协调路由选择,确保数据包能够通过最优路径在全球互联网中传输。BGP通过维护一个路由表来实现可扩展的路由信息交换,支持复杂的策略控制,是互联网骨干网路由的基础。
2. BGP的应用场景
BGP广泛应用于以下场景:
- 互联网骨干路由:BGP是互联网核心路由协议,用于在不同网络运营商(如ISP)之间交换路由信息。
- 多归属连接:企业或数据中心通过多个ISP连接到互联网,使用BGP来实现负载均衡和冗余。
- VPN服务:在MPLS(多协议标签交换)网络中,BGP用于分发VPN相关的路由信息(如L3VPN)。
- 数据中心互联:大型云服务提供商使用BGP(如EVPN)来实现数据中心之间的互联和动态路由。
- 流量工程:通过BGP的属性(如AS路径、MED等),网络管理员可以控制流量路径以优化网络性能。
3. BGP的对等体和自治系统(AS)
- BGP对等体(Peer):BGP对等体是指通过BGP协议建立会话的两个路由器,它们可以位于同一个AS内(内部BGP,iBGP)或不同AS之间(外部BGP,eBGP)。对等体通过TCP连接(端口179)交换路由信息,需手动配置对等关系。
- 自治系统(AS,Autonomous System):AS是一个由单一实体管理、拥有统一路由策略的网络集合。每个AS由全球唯一的AS编号(ASN)标识,范围为1到4294967295(其中64512-65535为私有AS号)。BGP通过AS之间的路由信息交换实现全局可达性。
4. BGP的报文结构
BGP使用四种主要报文类型,通过TCP协议传输:
- OPEN:用于建立BGP会话,包含版本号、AS号、保持时间(Hold Time)等。
- UPDATE:用于交换路由信息,包括新增路由、撤销路由和路径属性。
- KEEPALIVE:周期性发送以维持会话,确认对等体存活。
- NOTIFICATION:当发生错误或会话关闭时发送,包含错误代码。
以下是一个UPDATE报文的结构示例:
+-----------------------------+
| 报文头部 (19字节) |
+-----------------------------+
| 撤销路由长度 (2字节) |
+-----------------------------+
| 撤销路由信息 (可变长) |
+-----------------------------+
| 路径属性长度 (2字节) |
+-----------------------------+
| 路径属性 (可变长) |
+-----------------------------+
| NLRI (网络层可达信息) |
+-----------------------------+
以下是一个抓包的文本描述示例(基于Wireshark):
BGP UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 52
Type: UPDATE (2)
Withdrawn Routes Length: 0
Total Path Attribute Length: 29
Path Attributes:
Attribute: ORIGIN (1), Value: IGP
Attribute: AS_PATH (2), Value: 65001 65002
Attribute: NEXT_HOP (3), Value: 192.168.1.1
NLRI: 10.0.0.0/24
5. BGP状态机
BGP状态机定义了BGP会话的生命周期,包括以下状态:
- Idle:初始状态,等待会话启动。
- Connect:尝试建立TCP连接。
- Active:TCP连接失败,尝试重新连接。
- OpenSent:已发送OPEN报文,等待对等体的OPEN报文。
- OpenConfirm:收到对等体的OPEN报文,等待KEEPALIVE报文。
- Established:会话建立成功,可交换UPDATE报文。
状态转换依赖于事件(如TCP连接成功、收到KEEPALIVE等)驱动。
6. BGP的通告原则
BGP的路由通告遵循以下原则:
- eBGP通告:从一个AS学到的路由可以通告给其他AS的对等体。
- iBGP通告:从iBGP对等体学到的路由不会通告给其他iBGP对等体(防止环路)。
- 最佳路由通告:每个路由器只通告其路由表中的最佳路由。
- 同步规则(传统,现代网络中常禁用):iBGP学到的路由需在IGP(如OSPF)中可达才能通告。
7. BGP的反射器
路由反射器(Route Reflector,RR)是iBGP的一种扩展机制,用于解决iBGP全互联(Full Mesh)带来的扩展性问题:
- 作用:路由反射器接收iBGP路由并将其“反射”给其他iBGP对等体,减少所需连接数。
- 配置:一个路由器被配置为RR,其客户端(Client)向RR发送路由,RR再转发给其他客户端或非客户端对等体。
- 属性:RR添加Cluster-ID和Originator-ID属性以防止路由环路。
- 优点:降低配置复杂度和资源消耗,适合大型网络。
8. BGP的选路原则
BGP通过以下属性按优先级顺序选择最佳路由:
- 最高本地偏好(Local Preference):优先选择本地偏好值高的路由(常用于iBGP)。
- 最短AS路径(AS Path):AS路径长度越短越优。
- 最低起源类型(Origin Type):IGP优于EGP,EGP优于Incomplete。
- 最低MED(Multi-Exit Discriminator):在同一AS入口选择时,MED值低的路由优先。
- eBGP优于iBGP:外部BGP路由优先于内部BGP路由。
- 最低IGP度量值:到下一跳的IGP路径代价最低的路由优先。
- 最低路由器ID:当以上条件相同时,选择路由器ID最小的对等体。
评论 0