中文版翻译得很难理解,这里总结一下。
1、BGP的任务
前面已经讲到了AS内的路由协议,比如OSPF,那么假如两个路由器不在同一个AS内呢?这就要用到BGP。
BGP的一个重要任务是不同AS间的路由,不过BGP也可以进行AS内的路由(后面也会提到)。
2、BGP中的前缀
BGP中的分组不会被路由到特定的IP,而是会路由到前缀(prefix)。这个前缀代表了一个或者一组子网。
前缀是CIDR化的,CIDR确保了前缀能唯一地确定一个子网或者子网组。
3、BGP中转发表的信息表示
一个路由器可能有多个接口,转发表需要的信息是子网+接口号。 前缀的形式可以是这样的:138.16.68/22(没错就是IP协议中的子网,不过我不清楚这是否是唯一的前缀形式)
具体的信息可能是(x,l),x代表前缀,l代表接口号。
4、BGP的作用
1、使每个路由器都能路由器从临近AS获得可达性信息。
可达性信息(NLRI),也就是该路由器所有能抵达的子网前缀,这些子网前缀的顺序也包含着路径信息,形式如下: 该作用确保了网络的每一个路由器都能得知其中每一个子网的存在。
2、使路由器能获得到每个可达前缀的最优路径。
BGP提供了确定路由的方法。
5、举例
如图是3个AS,AS3包含一个子网,它的前缀是x。 每个路由器中都包括网关路由器和内部路由器。所谓网关路由器,指的是某个接口与其他AS中的路由器相连。图中的1c, 2a, 2c, 3a是网关路由器。
AS1和AS2如何得知前缀x的存在呢?
从AS的层面:
首先,AS3需要告知AS2 前缀x的可达信息,这里表示为AS3 x
AS2接着告诉AS1前缀x的可达信息,这里表示为AS2 AS3 x
通过以上过程,所有的AS(即其中的每个路由器)不仅得知了x 的存在,而且知道了x的路径。
从路由器的层面
发送接收信息的肯定是路由器而非自治系统。所以再从路由器层面重新考虑一下前面的传播过程:
在路由器之间是通过TCP连接传输BGP信息的。 在一个AS内部,路由器建立的是iBGP连接,在不同AS之间,路由器之间建立的是eBGP连接 注意:一个iBGP连接未必对应着一条物理链路,iBGP的连接是比较复杂的
发送方 | 接收方 | BGP类型 | BGP信息 |
---|
3a | 2c | eBGP | AS3 x | 2c | AS2中的每个路由器(包括2a) | iBGP | AS3 x | 2a | 1c | eBGP | AS2 AS3 x | 1c | AS1中的每个路由器 | iBGP | AS2 AS3 x |
通过以上过程,所有的路由器都能得到x的可达信息。
不过,实际情况中,到达AS1的路径可能不是唯一的,这样到达AS1的x的可达信息也可能有区别,这样就需要选择更好的路由路线。
未完待续。。。
|