跳转到内容

Bgp

来自FC
FC留言 | 贡献2023年4月14日 (五) 20:04的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

边界网关协议(Border Gateway Protocol,BGP)是互联网上一个核心的去中心化自治路由协议。他通过维护路由表或者“前缀”表来实现自治系统(AS)之间的可达性,属于矢量路由协议。bgp不使用传统的内部网关协议(igp)的指标,而使用基于路径、网络策略或者规则集来决定路由。因此,它更适合被称为矢量性协议,而不是路由协议。

对等体关系

与ospf、is-is不同,bgp的会话基于tcp建立的。建立bgp对等体关系的两台路由器并不要求直连。

bgp存在以下两种对等体关系类型:

EBGP

External BGP:位于不同自治系统(as)的BGP路由器之间的BGP对等体关系。两台路由器之间要建立EBGP对等体关系,必须满足:

  1. 两个路由器所属AS不同(AS号不同)
  2. 在配置EBGP时,Peer命令所指定的对等体IP地址要求路由可达,并且TCP连接能够正确建立。

IBGP

Internal BGP:位于相同自治系统(as)的BGP路由器之间的BGP邻接关系。

BGP报文类型

报文名称 作用 发送时刻
Open 协商BGP对等体参数,建立对等体关系 BGP TCP连接建立成功后
Update 发送BGP路由更新 BGP对等体关系建立后有路由需要发送或如有变化时向对等体发送Update报文
Notification 报告错误信息,中止对等体关系 当BGP在运行中发现错误时,发送Notification报文将错误通告给BGP对等体
Keepalive 标志对等体建立,维持BGP对等体关系 BGP路由器收到对端发送的Keepalive报文,将对等体状态置为已建立,同时后续定期发送Keepalive报文用于保持连接
Route-refersh 用于在改变路由策略后请求对等体重新发送路由信息,只有支持路由刷新能力的BGP设备会发送和响应此报文 当路由策略发生变化时,触发请求对等体重新通告路由

路由器反射器

引入路由器反射器之后存在两种角色:

  • RR(Route Reflector):路由器反射器
  • Client:RR客户端

RR会将学习的路由器反射出去,从而是的IBGP路由器在AS内部传布无需建立IBGP全互联。

将一台BGP路由器指定为RR的同时,还需指定其他Client。至于Client本身,无需做任何配置,他并不知晓网络中存在RR。

反射规则

RR在接收到BGP路由时:

  • 如果路由器反射器从自己的非客户对等体学习到一条IBGP路由,则他将该路由反射给所有客户
  • 如果路由器反射器从自己的客户学习到一条IBGP路由,则他会将该路由反射给所有非客户,以及除了该客户外的其他客户
  • 如果路由学习自EBGP对等体,则发送给所有客户、非客户IBGP对等体