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)。
近期评论