一.基本概念
- 边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在 EGP 的经验之上。 BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓扑图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。
二.BGP特点
- BGP能够承载大批量的路由信息,能够支撑大规模网络。
- BGP使用TCP作为其传输层协议(端口号179),提高了协议的可靠性
- BGP对等体和IGP对等体不同,BGP对等体是指使用TCP建立连接的两端,而非与IGP同概念的直连邻居,只要TCP能够建立连接并不一定需要直连
- BGP本身只负责控制路由,数据转发依然靠静态或IGP路由。
- AS之间:BGP通过携带AS-Path信息标记途径的AS,带有本地AS号的路由将被丢弃,从而避免了域间产生环路。
- AS内部:BGP在AS内学到的路由不会再通告给AS内的BGP邻居,避免了AS内产生环路。
三.BGP分类
- EBGP:运行与不同AS之间的BGP称为EBGP。为了防止AS间产生环路,当BGP设备接收EBGP对等体发送的路由时,会将带有本地AS号的路由丢弃。
- IBGP:运行与同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP不将从IBGP对等体学到的路由通告给其他IBGP对等体,并于所以IBGP对等体建立完全连接
四.BGP的工作原理
(一)BGP的报文:
BGP对等体间通过一万五种报文进行交互,其中Keepalive报文为周期性发送,其余报文为接触式发送
- Open报文:用于协商BGP对等体的各项参数。
- Update报文:用于在对等体之间交换路由信息。
- Notification报文:用于中断BGP连接。
- Keepalive报文:用于保持BGP连接。保活
- Route-refresh报文:用于在改变路由策略后软复位BGP路由表请求对等体重新发