BGP Peer

运行BGP的路由器被称为BGP speaker
BGP对等体也叫BGP邻居,建立基于TCP的关系

BGP Peer、路由黑洞、水平分割_邻接关系

EBGP Peer

EBGP: BGP位于不同自治系统的路由器之间,称为EBGP

建立EBGP邻接关系,必须满足三个条件:
• EBGP之间自制系统号不同
• neighbor中指定的IP地址要可达
• 定义邻居建立TCP会话

常见的情况,EBGP是单播指邻居,通过三层直连建立邻居(也能跨设备建立但少见)、要考虑TCP的条件是否满足

BGP Peer、路由黑洞、水平分割_邻接关系_02

IBGP Peer

IBGP: BGP位于同一个自治系统的路由器之间运行,用于同一个AS中交换BGP信息

建立IBGP邻接关系,满足的条件:
• 自治系统号相同
• IBGP邻居可达
• 定义邻居建立TCP会话

IBGP建立邻居,在同自治区域,可直连可跨设备建立邻居,一般通过环回接口配置,很少用到物理接口。因为

1、环回口比较稳定,不会因为物理接口的down/up的影响

2、环回口接口做宣告,可以选路,A接口故障还有B接口,高可用

BGP Peer、路由黑洞、水平分割_自治系统_03

中转IBGP

本图表明,不是所有的设备都要运行BGP,所以才有中转IBGP现象

BGP Peer、路由黑洞、水平分割_边界网关协议_04

自治区域有AS65101、65102、65103
AS65102区域内部使用OSPF传递路由,B和D用逻辑接口建立对等体,A-B和D-E用物理接口建立对等体

路由黑洞

BGP Peer、路由黑洞、水平分割_自治系统_05

BD虽然通过OSPF建立的对等体,但是有个问题就是当AS65103要访问1.1.1.1时,由于C未运行BGP,作为代理的它无指向、回程路由信息

通过重发布解决路由黑洞

路由问题可以通过重分布解决引入到C中,但这个方案有个需要考虑的问题是,当BGP足够多,过滤、性能等好不好做。当然重分布可以解决,静态指向也是可以的。没路由学路由~

BGP Peer、路由黑洞、水平分割_边界网关协议_06

IBGP水平分割原则

IBGP才有水平分割,EBGP是没有的。防环就一个策略IBGP邻居学习过来的路由再通告给自己其他IBGP邻居,打破水平分割就是C反射路由给D,从而E也能学到

BGP Peer、路由黑洞、水平分割_邻接关系_07

EBGP防环是通过AS_PATH实现的,而AS_PATH仅仅在路由离开AS才会被更改。因此在AS内, IBGP就没有EBGP的防环能力
为了防止环路的出现, BGP路由器不会将从IBGP邻居学习过来的路由再通告给自己其他IBGP邻居
由于水平分割原则, BGP要求AS内须保证IBGP全互联,即两两之间都有邻居关系。
BGP的防环机制大致有以下四种:
1、基于IBGP邻居的水平分割;BGP协议规定,BGP发言者从IBGP获得的路由不向它的IBGP对等体发布。
2、AS_PATH属性防环:当一个路由更新到达一个AS的边界路由器时,如果边界路由器发现这个AS号在路由的AS路径属性里已经存在,边界路由器会丢弃这个路由。
3、CLUSTER_LIST属性防环:CLUSTER_LIST属性用于记录一条路由经过群的群ID来跟踪它的反射路径, 路由反射器会检查接收到的路
由信息中的CLUSTER_LIST,如果在其中发现了自己的集群ID,那么就会丢弃此路由信息。
4、ORIGINATOR_ID属性防环:ORIGINATOR_ID属性用于记录到本地AS内部路由发起者的路由器ID,BGP发言者将丢弃ORIGINATOR_ID中与自己路由器ID相同的路由信息。

备注:CLUSTER_LIST属性和ORIGINATOR_ID属性不是公认必遵属性,只用于BGP反射里面防环。

BGP Peer、路由黑洞、水平分割_自治系统_08

所以如果不考虑特殊的情况下,要求IBGP内部全互联,做好对等体,从而实现路由转发。但是邻居因此特别多,在大型的网络中,设备性能成为一个压力的点。所以正常情况下,我们使用水平分割,通过反射来搭建BGP网络。但是根据网络来定

回溯搭建方法:

1、非全BGP协议+中转IBGP+重定向或静态

2、全BGP协议+中转IBGP+水平分割+反射路由

3、全BGP协议互联+中转IBGP

EBGP和IBGP的区别

EBGP—外部边界网关协议主要作用是在不同的自治系统间交换路由信息
IBGP—内部边界网关协议主要作用是向内部路由器提供更多信息
EBGP一般情况下都要求EBGP邻居之间存在物理连接,IBGP不需要IBGP邻居之间有物理连接,只需要逻辑连接即可(IGP通告路由)
从EBGP邻居学到的路由通告给IBGP和EBGP;从IBGP邻居学到的路由,是否通告给自己EBGP邻居,要根据AS内的BGP和IGP路由表是否同步而定。但不会再通告给IBGP邻居(水平分割,防止环路)
EBGP防止环路通过AS_PATH属性来实现
IBGP和EBGP使用的BGP属性不同,例如IBGP可以传递LOCAL_PREF(本地优先属性),而EBGP不行