BGP路由反射器
背景
在中转AS65102中,BCDE路由互通。B与E运行BGP,并且两者建立IBGP对等体关系(两者并非直连,但是对于BGP,这是允许的,仅需确保两者之间能够正确建立TCP连接即可)。C与D并未运行BGP。 此时A将本地路由1.1.1.0/24通告到BGP,最终F能够通过BGP学习到该条路由。 但是C、D由于并未运行BGP,因此无法通过BGP学习到1.1.1.0/24路由。如此一来,F发往1.1.1.0/24网络的数据包在到达C/D后将被丢弃,在C及D路由器这里,就出现了路由黑洞。
水平分割
为了使得BGP路由能够正常交互,我们就不得不在该传输AS内所有路由器上都运行BGP,且构建全互联的IBGP对等体关系。但是这样也引入了一个问题,就是如何防环。我们知道BGP路由在AS之间的防环依赖于AS_Path路径属性,当路由器收到BGP路由后,发现该路由所携带的AS_Path属性中出现了其自己所处的AS号,则路由器认为出现了路由环路,它将忽略该条路由。AS_Path属性仅在路由离开AS时才会被更改,而BGP路由在AS内部传递时,路由的AS_Path属性值不会发生改变,如此一来,IBGP路由的防环就无法依赖AS_Path。为了防止BGP路由在AS内部传递时发生环路,BGP规定路由器不能将自己从IBGP对等体学习到的路由再传递给其他IBGP对等体,这就是IBGP水平分割规则。