BGP 基础1

BGP的特性

  • BGP采用的是可靠传输,运行在TCP的179端口上。这个179号端口是对端邻居的179端口。
  • 触发更新,一旦有变化立即发更新;增量更新,有变化的路由发更新,没有变化的不发;因为互联网上的路由太多了,所以不适合周期性的更新。
  • 周期性的keepalive消息,这个是TCP的属性。
  • 丰富的度量值。
  • 可以组建可扩展的巨大的网络。

BGP的三张表

  • 邻居表 — BGP邻居手工建立,保存所有邻居信息。
    • show ip bgp summary
    • show bgp ipv4 unicast summary
  • BGP转发表 — 保存从每个邻居学到的路由。
    • show ip bgp
    • show bgp ipv4 unicast
  • 路由表 — 列出到达目的网络的最优路径。
    • show ip route bgp

BGP的报文

BGP有以下4种基本报文:

  • Open : 协商建立邻居的参数(包含AS号、holdtime:180s、BGP RID,还有能力协商)
  • Keepalive:维持邻接关系(默认间隔为60s)
  • Update:路由更新(包括路由和各种BGP属性)
  • Notification:通告消息,当BGP发生错误时发送,关闭邻居关系。

BGP的基本框架

  • 首先向neighbor后指定的地址发起TCP连接,通过open报文协商建立邻居的参数,匹配参数后将邻居放入自己的第一张表 – 邻居表(show bgp ipv4 unicast summary)。
  • 然后向邻居发送本路由器BGP转发表中最优的路由,从各个邻居收来的路由放入自己的第二张表 – BGP转发表(show bgp ipv4 unicast)。
  • 运行13条选路原则,每一条路由选出一个最优的条目,放入自己的第三张表 – 路由表(show ip route bgp)。

BGP的Peer以及基本配置

BGP有两种邻居关系

  • External BGP peer(EBGP):外部BGP邻居
    • 运行在两个不同AS的BGP路由器形成的邻居关系,叫EBGP邻居
    • EBGP邻居默认是需要物理直连的
  • Internal BGP peer(IBGP):内部BGP邻居
    • 运行在同一个AS的BGP路由器形成的邻居关系,叫IBGP邻居
    • IBGP邻居物理上不需要直连,只要TCP 179连接能建立起来就可以

基本配置

router bgp 1 no auto-summary no synchronization bgp router-id 1.1.1.1 bgp log-neighbor-changes
  • AS标准为16bit,范围为1-65535,其中64512-65535为私有AS号。
  • AS扩展为32bit,范围为1-232,可以以纯数字或是点分十进制来表示,譬如65535.65535
  • BGP的router-id的选举方式与OSPF一样,建议手工配置

IBGP邻居要在同一个AS内,通常使用环回口建邻居。EBGP邻居在不同的AS之内,通常使用直连接口建邻居。

  • EBGP之间建邻居默认要求直连:
    • EBGP在建邻居的时候,发送报文TTL=1。
    • EBGP在建邻居的时候,默认需要进行直连检测。
  • 如果使用lo0建立EBGP邻居:
    • 设置EBGP多跳(neighbor x.x.x.x ebgp-multihops [1-255])。
    • 关闭直连检测(neighbor x.x.x.x disable-connected-check)。

Author: 技师