IGP核心:路由的计算。OSPF,ISIS等
BGP核心:路由的传递,不产生路由,只是路由的搬运工,一般用于规模特别大的网络中,只要TCP可达就可以建立邻居。
- 大型企业分支间采用BGP进行路由传递,不同的分支属于不同的BGP的AS,它们通过BGP进行路由交互。
- 企业与运营商之间可使用BGP进行路由交互,使得企业网络获得到达运营商网络的具体路由,运营商也可获得到达企业内部的路由。
为什么使用BGP?
上面我们说了BGP的核心是传递路由,IGP也可以传递路由啊
- AS之间需要直连链路,或通过VPN协议构造逻辑直连(例如GRE Tunnel)进行邻居建立。
- AS之间可能是不同的机构、公司,相互之间无法完全信任,使用IGP可能存在暴露AS内部的网络信息的风险。
- 整个网络规模扩大,路由数量进一步增加,路由表规模变大,路由收敛变慢,设备性能消耗加大。
为此在AS之间专门使用BGP(Border Gateway Protocol
边界网关协议)协议进行路由传递,相较于传统的IGP协议:
- BGP基于TCP,只要能够建立TCP连接即可建立BGP。
- 只传递路由信息,不会暴露AS内的拓扑信息。
- 触发式更新,而不是进行周期性更新。
BGP工作过程
建立关系对等体
- 先启动BGP的一端先发起TCP连接,如左图所示,R1先启动BGP,R1使用随机端口号向R2的179端口发起TCP连接,完成TCP连接的建立。
- 三次握手建立完成之后,R1、R2之间相互发送open报文,携带参数用于对等体建立,参数协商正常之后双方相互发送Keepalive:报文,收到对端发送的Keepalive:报文之后对等体建立成功,同时双方定期发送Keepalive报文用于保持连接。
- 其中open报文中携带:
- My Autonomous System:自身AS号
- Hold Time:用于协商后续Keepalive报文发送时间
- BGP Identifier:自身Router ID
接下来我们做个实验: