48小时系统班试听入口

防止网络混乱!一文读懂BGP水平分割的神奇效果

发布作者:新盟教育 发布日期:2024-03-30 浏览人数:7978人

防止网络混乱!一文读懂BGP水平分割的神奇效果

BGP水平分割(Horizontal Split)是边界网关协议(Border Gateway Protocol,简称BGP)中用于避免路由环路和不必要路由信息传播的一种机制。该机制特别在内部BGP(Internal BGP,简称IBGP)中得到广泛应用,它基于一个简单而有效的原则:一个IBGP对等体不应该将从另一个IBGP对等体学到的路由信息再传播给其他IBGP对等体。

为了更好地理解BGP水平分割的原理和应用,我们需要先了解BGP的基本工作方式以及为何需要水平分割这样的机制。 

简单文字排版方形二维码.png 

BGP是一个路径向量协议,主要用于不同自治系统(Autonomous Systems, AS)之间的路由信息交换。每个AS内部的网络由一系列路由器组成,这些路由器通过BGP协议相互通告可达性信息。BGP使用多种属性来描述一条路径的特征,包括目的地址、下一跳、AS路径序列等。当BGP路由器收到来自邻居的更新消息时,它会将这些信息添加到自己的路由表中,并据此决定如何转发数据包。 

AS内部,通常存在多个BGP路由器,它们之间形成IBGP连接。而在AS之间,则形成EBGP(External BGP)连接。由于BGP允许多个AS之间的复杂拓扑,因此存在路由信息循环传递的风险,这可能导致路由表膨胀和不稳定,最终影响网络性能。

为了防止这些问题,BGP引入了水平分割的概念。具体到IBGP,假设有三个路由器A、B和C形成了一个IBGP全连接网状结构,如果路由器A从B那里学到了一条路由信息,并且这条信息是经由IBGP会话传递的,那么根据水平分割规则,A就不会将这条路由信息再次传递给C(假设C也是A的IBGP对等体)。这样做的原因是,由于B已经拥有了到达该目的地的信息,继续传递将无济于事,而且可能引起不必要的路由循环。

图片22.png

除了IBGP中明确的水平分割规则外,在EBGP中也存在类似的机制。例如,BGP路由器不会接受包含本地AS号码的路由更新。这是因为如果一个AS内的路由器收到了含有自己AS号的路由信息,这意味着该信息已经循环回到了源头,因此应当丢弃以避免进一步传播。

然而,在某些情况下,严格的水平分割规则可能会导致问题,比如多宿主AS(multi-homed AS)场景下的路由选择。为了应对这类情况,BGP提供了一种称为“水平分割放松”的选项,允许在某些特定条件下放宽水平分割的限制。例如,如果一个AS有多个出口点连接到不同的邻居AS,可能需要在AS内部传播来自不同EBGP对等体的路由信息以实现最佳路径选择。

综上所述,BGP水平分割是一种重要的路由策略工具,旨在保持BGP网络的稳定性和可扩展性。通过避免不必要的路由信息传播和潜在的路由循环,水平分割确保了IBGP对等体间的路由信息高效且合理地分布。尽管有时需要适当调整或放松水平分割规则以适应复杂的网络需求,但这一原则在BGP运作中仍然扮演着不可或缺的角色。

课程招生免费进群图书二维码.png

客服电话 15822722968 邮箱 799830458@qq.com 地址 天津市红桥区光荣道157号宝能创业中心2号楼-1、2门-907号
官方公众号
商务合作