BGP路由协议

180 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天

BGP

BGP是不同自治系统的路由器之间交换路由信息的协议,其采用了路径向量路由选择协议。因为互联网的规模太大,使得自治系统AS之间路由选择非常困难,所以该协议只能力求选择出一条能够到达目的网络且比较好的路由,而非要计算出一条最佳路由。

BGP格式

BGP路由 = [前缀,BGP属性] = [前缀,AS-PATH,NEXT-HOP]

前缀指明了要到哪一个子网(用CIDR记法表示)

BGP属性中,AS-PATH表示自治系统路径,NEXT-HOP为下一跳

规则

BGP发言者为AS中的边界路由,负责与其他AS进行数据交换,而在AS之间,BGP发言者在半永久性TCP(port:179)连接上建立BGP会话又称为eBGP连接。 在AS内部,任何相互通信的两个路由器之间必须有一个逻辑连接(也使用TCP连接),AS内部的所有路由器之间的通信信息是全连通的,这种连接常称为iBGP连接。

eBGP连接: 运行eBGP协议,在不同的AS之间交换路由信息

iBGP连接: 运行iBGP协议,在AS内部的路由器之间交换BGP路由信息

但注意两个连接都使用同一个BGP协议(使用的报文类型、使用的属性、使用的状态机等都完全一样),只是在eBGP连接的对等端得知的前缀信息,可以通报给一个iBGP连接的对等端。反之也可。 但从iBGP连接的对等端得知的前缀信息,则不能够通报给另一个iBGP连接的对等端。

例如:

eiBGP.jpg

  • R3与R4是eBGP对等端,R3从R4处得到的前缀信息可以给R1或R2(iBGP连接对等端)
  • R3从R1/R2处获得的前缀信息可以通报给R4
  • R3从R1处得到的前缀信息不能通报给R2