BGP路由协议解析与论证
- BGP 特点
- IGP 与 EGP 比对
- BGP 邻居关系与路由传递
- BGP 防环原则
- BGP 路由控制
- BGP 负载分担
- BGP 常用命令
- BGP 路由属性
- 路由属性的类型
- Origin 属性
- 附录
- 自治系统 AS 号规则
BGP 特点
- BGP(BGP/BGP4:Border Gateway Protocol,边界网关协议),是外部网关路由协议(EGP)
- 外部网关协议,不擅长路由计算,擅长路由控制
- OSPF、ISIS 等内部网关协议(IGP),擅长路由计算,不擅长路由控制
- OSPF、ISIS 可以根据 cost 控制路由
- BGP 没有 cost 值(待核实)
- BGP 运行在传输层(
TCP 179号端口
,提高可靠性
)上的一种自治系统的路由协议(应用层)
- 无类别路径矢量 -----距离矢量的升级版—AS–BY–AS
- 使用单播更新来发送所有信息;基于TCP 179端口工作
- 增量更新–仅触发无周期
- 具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议
- 可以在进项和出项对流量实施强大的策略–可控性
- 默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
- BGP支持认证和聚合(汇总)
IGP 与 EGP 比对
- IGP 的优点与缺点
优点:
1. 收敛速度快
2. 自动选择最优路径(前提无环)
3. 占用资源少
缺点:
4. 存在工作半径瓶颈。 - EGP 的特点
1. 可控性好,通过属性方便进行选路
2. AS 与 AS 之间交互大量路由
3. 协议本身无法优选路径
4. 由于 AS 之间更新量巨大,故而设计为增量更新(仅触发更新,无周期)
5. 把整个 AS 看作一个大的路由器,以一个 AS 为一跳
6. BGP 本身不产生路由,而是转发本地路由表中其他协议生成的路由条目
7. 具有可靠性(BGP协议设备间需要交互大量的路由条目,但又不能选择周期更新来占用链路资源,故只能进行触发更新;且BGP协议工作环境中为节约成本,必然出现非直连需要建立邻居关系—单播邻居)
8. 基于TCP工作 -三次握手四次断开 4种可靠传输机制 – TCP只能基于单播工作
9. AS-BY-AS 以一个AS为一跳
BGP 邻居关系与路由传递
- 创建邻居关系,确定邻居类型
- EBGP 外部邻居,通过物理口创建邻居
- IBGP 内部邻居,通过 loopback 口创建邻居
- 远程建立邻居关系,通过手动创建(待核实)
- 路由宣告(注入)
- 通过
network
命令,一条一条进行精细宣告,现网多采用 - 通过
import-route
命令,引入外部路由到BGP,有产生环路的风险
- 邻居间路由传递
- 从本路由器宣告的路由,发送给 EBGP 邻居和 IBGP 邻居,没有限制
- 从 EBGP 传来的路由,发送给 EBGP 邻居和 IBGP 邻居,因下一跳地址为 EBGP 邻居的互联地址,所以传到 IBGP 邻居的路由下跳有 可能不可达(通过调整
next-hop-local
参数修改下一跳) - 从 IBGP传来的路由,发送给 EBGP 邻居( IGP 和 BGP 同步情况去顶是否发送),不发送给 IBGP 邻居(防止路由环路产生)
IGP 和 BGP 同步:BGP学来的路由,IGP 是否可达,如不过可达,将会出现路由黑洞。华为默认不检查。
BGP 防环原则
- AS 间防环使用 AS-PATH 属性
- AS 内防环使用水平分割原则
- 通过
全连接
或RR反射器
解决 “水平分割”
BGP 路由控制
路由器发送关于目标网络的BGP更新消息,更新的度量值被称为路径属性。属性可以是公认的或可选的、强制的或自由决定的、传递的或非传递的。属性也可以是部分的。并非组织的和有组合的都是合法的,路径属性分为4类:公认必遵、公认自决、可选过渡、可选非过渡。
BGP 负载分担
- 多条不同下一跳的BGP路由同时出现在IP路由表中
- BGP默认仅下发一条最好的BGP路由到IP路由表
- 但这种行为可以通过
maximumload-balancing [ eBGP | iBGP ] mumber
命令来配置 BGP 负载分担的最大等价路由条数。
BGP 常用命令
查看 BGP 路由条目详情
<R3>dis bgp routing-table 3.3.3.0 24
BGP local router ID : 23.1.1.3
Local AS number : 200
Paths: 1 available, 1 best, 1 select
BGP routing table entry information of 3.3.3.0/24:
Network route.
From: 0.0.0.0 (0.0.0.0)
Route Duration: 00h51m53s
Direct Out-interface: LoopBack0
Original nexthop: 3.3.3.3
Qos information : 0x0
AS-path Nil, origin igp, MED 0, pref-val 0, valid, local, best, select, pre 0
Advertised to such 2 peers:
4.4.4.4
2.2.2.2
可以看出 3.3.3.0/24 这条路由通告给了邻居 4.4.4.4 和 2.2.2.2
描述了直连出接口为 LoopBack0 ,原始下一跳:3.3.3.3
BGP 路由属性
路由属性的类型
BGP 路径属性两大类:
- 公认:所有BGP路由器必须都能够识别的路径属性
- 必遵:当BGP路由器使用Update报文通告路由更新时必须携带的路径属性
- 任意:不要求Update报文中必须携带
- 可选:不要求所有的BGP路由器都必须能够识别
- 过度:如果BGP路由器不能够识别该路径属性,那么也应该接受携带该路径属性的BGP路由更新,并且当路由器将该路由通告给其他对等体时必须携带该路由属性
- 非过度:如果BGP路由器不能够识别该属性,那么该路由器将会忽略携带该路径属性的BGP路由更新且不将该路由通告给其他BGP对等体
Origin 属性
Origin 属性用来定义路径信息的来源,标记一条路由是怎么成为 BGP 路由的,该属性为 公认必遵
有三种类型:
- IGP:具有最高的优先级。通过network命令注入到BGP路由表的路由,其Origin属性为IGP。
- EGP:优先级次之。通过EGP得到的路由信息,其Origin属性为EGP。说明:此处EGP指的是一个具体的路由协议,其名称为EGP。这个路由协议现在已经不再被使用。
- Incomplete:优先级最低。如果路由是通过其他方式学习到的,则Origin属性为Incomplete(不完整的)。例如通过import-route命令引入到BGP的路由。
附录
自治系统 AS 号规则
- 标准编号 16位
0-65535
- 公有
1-64511
- 私有
64512-65535
- 扩展AS号 32 二进制