BGP的特征
- 传输协议 TCE,端号179
- BGP具外部路由协议,用来在AS之间传递路由信息
- 是一种增强的路径矢量路由协议
- 拥有可靠的路由更新机制
- 具备丰富的Metric度量方法
- 无环路协议设计
- 为路由条目附带多种属性信息
- 支持CIDR(无类别域间选路)
- 丰富的路由过滤和路由策略
- 无需周期性更新
- 路由更新时只发送增量路由
- 周期性发送KeepAlive报文以保持TCP连通性
BGP邻居关系
BGP报文
Open报文
- 负责和对等体建立邻居关系;主要包括BCP版本、AS号等信息;试图建立BGP邻居关系的两个路由器在建立了TCP会话连接之后开始交换OPEN信息以确认能否形成邻居关系
Update报文
- 该报文在对等体之间周期性的发送,用于判断对等体之间的可达性,实现BGP邻居关系的维护
Notification报文
- BGP的差错检测机制;一旦检测到任何形式的差错,BGP
Speaker会发送一个NOTTFICATION报文,随后与之相关的邻居关系将被关闭
Route-refresh
- 用来通知BGP对等体自己支持路由刷新能力
KeepAlive
- 该报文在对等体之间周期性的发送,用于判断对等体之间的可达性,实现BGP邻居关系的维护;
BGP状态机
Idle(空闲)
- Idle是BGP连接的第一个状态,在空闲状态,BGP在等待一个启动事件,启动事件出现
以后,BGP初始化资源,复位连接重试计时器(Connect-Retry),发起一条TCP连接,同时转入Connect(连接)状态。
Connect(连接)
- 在Connect
状态,BGP发起第一个TCP连接,如果连接重试计时器(Connect-Retry)超时,就重新发起TCP连接,并继续保持在Connect状态,如果TCP连接成功,就转入OpenSent
状态,如果TCP 连接失败,就转入Active状态。
Active(活跃)
- 在Active状态,BGP总是在试图建立TCP 连接,如果连接重试计时器(Connect-Retry)超时,就退回到Connect状态,如果TCP连接成功,就转入OpenSent状态,如果TCP连接失败,就继续保持在Active状态,并继续发起TCP连接。
OpenSent(打开消息已发送)
- 在OpenSent状态,TCP连接已经建立,BGP也已经发送了第一个Open报文,剩下的工作,BGP就在等待其对等体发送Open报文。并对收到的Open报文进行正确性检查,如果有错误,系统就会发送一条出错通知消息并退回到Idie状态,如果没有错误,BGP就开始发送Keepalive 报文,并复位Keepalive计时器,开始计时。同时转入OpenConfirm状态。
OpenConfirm(打开消息确认)状态
- 在OpenConfirm状态,BGP发送一个Keepalive报文,同时复位保持计时器,如果收到了一个Keepalive 报文,就转入Established 阶段,BGP邻居关系就建立起来了。如果TCP连接中断,就退回到Idle 状态。
Established(连接已建立)
- 在Established 状态,BGP 邻居关系已经建立,这时,BGP将和它的邻居们交换Update报文,同时复位保持计时器。
BGP对等体配置
对等体交互原则
- 从IBGP对等体获得的BGP路由,BGP设备只传