7*24小时值班咨询手机:15101073985(微信同号)   
CCIE
当前位置:网站首页>CCIE
思科认证培训:AS_Path实例描述
发布日期:2019-09-10 10:58:27 发布者:

    BGP的路由可能会从一个AS发往另外一个AS,从而穿越多个AS。但是由于运行BGP的网络会是一个很大的网络,路由从一个AS被发出,可能在经过转发之后,又回到了最初的AS之中,最终形成路由环路,所以出于防止环路的目的考虑,BGP在将路由发往其它AS时,也就是发给eBGP邻居时,需要在路由中写上自己的AS号码,下一个AS收到路由后,再发给其它AS时,除了保留之前的AS号码之外,也要添加上自己的AS号码,这样的写在路由中的AS被称为AS-path,如果BGP收到的路由的AS_PATH中包含自己的AS号码,就认为路由被发了回来,以此断定出现了路由环路,最后就会丢弃收到的路由。BGP只有在将路由发给eBGP时,才会在AS-path中添加自己的AS号码,而在发给iBGP时,是不会添加AS号码的,因为iBGP邻居在同一个AS中,即使要添加,AS号码全是一样的,所以没有必要。


思科认证培训


    在上图中,当路由穿越各个AS时,所有发给eBGP邻居的路由,都会在AS-path中添加自己的AS,自己的AS总是添加在AS-path的最前面。例如一条路由从AS 10被发往AS 20,则AS-path为“10”,当AS 20将路由发往AS 30时,添加上自己的AS号码20之后,AS-path变成“20,10”,当AS 30将路由发往AS 50时,最终AS 50收到的路由的AS-path为“30,20,10”。当AS 30将路由发给AS 40,AS 40再将路由发给AS 10时,路由的AS-path为“40,30,20,10”,由于AS 10在收到路由后,发现AS-path中包含自己的AS号码10,所以认为出现环路,便丢弃收到的所有路由。

    在IGP协议中,我们将路由协议分成两大类:距离矢量路由协议和链路状态路由协议,而BGP被划分为路径矢量路由协议(path-vector routing),路径矢量算法结合了距离矢量特性与AS-path防环特性。

    因为BGP在将路由发给eBGP邻居时,会将自己的AS号码添加到AS-path中,所以可以以此来防止环路,而在将路由发给iBGP时,是不会往AS-path添加AS号码的,因此在iBGP之间传递路由时,没有防止环路的机制。考虑到为iBGP之间的路由传递也加入防环机制,因而强制将BGP路由在AS内部只传一跳,具体操作为:一台BGP路由器从eBGP邻居收到路由,发给iBGP邻居之后,iBGP邻居收到后就不能再传给其它任何iBGP邻居,只能传递给eBGP邻居。此规则被多数人称为BGP的水平分割,就是一台BGP路由器从iBGP邻居收到的路由,不能传递给其它iBGP邻居,只能传给eBGP邻居。

    当R1从eBGP邻居R6那里收到路由后,可以发给任何iBGP邻居,包括R3和R4,当R3从iBGP邻居R1那里收到路由后,不可以转发给任何iBGP邻居,只可以转发给eBGP邻居,所以R3从R1收到路由后,只能转发给eBGP邻居R5。由于R3和R4从R1收到路由后,都不可以转发给iBGP邻居R2,在上图环境中,最终造成R2无法接收任何路由,要让R2收到路由,建议在R1与R2之间再建立一条BGP会话,所以如此一来,在同一个AS中,要将路由全网传递,就需要在iBGP邻居之间配置全互联,最终AS 20内的邻居关系如下图:


思科认证培训


    在AS内部,除了建立全互联的iBGP邻居关系外,还可以通过BGP Reflector(BGP反射器)和BGP Confederation(BGP联邦)的方式来实现路由全网传递,将在后续介绍。

微信