边界网关协议学习指引( 八 )


所以我们在使用扩展RIP协议进行网络互连并传播路由的时候 , 一定要确保接收路由的下一跳是可达的 。在本例中 , 我们可以这样解决:在RT2上增加到RT1和RT3之间网络的静态路由(或干脆通过动态路由协议把这个网络分发到RT1所在ISP中) , 这样RT2在从RT1获得RT3的路由后 , 会发现下一跳是可达的 , 于是会接收该路由 。
因此 , 扩展RIP在进行路由选择的时候 , 下一跳可达是第一个要判定的条件 , 假如下一跳不可达 , 则直接丢弃 , 否则继续看下面的条件 。
2.7.2 本地优先与路由选择
运行扩展RIP协议的路由器假如接收到了同样的路由 , 它会首先判定这些路由的下一跳是否可达 , 首先丢弃不可达的路由 , 假如还有多条相同的路由 , 则选择本地优先最大的路由 , 丢弃其他路由 。
2.7.3 AS-PATH属性与路由选择
在上面的小节中 , 我们介绍了AS-PATH属性 , 这个属性是用来避免路由自环的 , 但这个属性也从侧面反映了路由经过的AS数目 , 可以看出 , 假如路由经过的AS数目越多 , 则说明到达该路由代表的网络距离越远 , 因此 , 我们可以把AS-PATH属性也作为一种路由选择的参考依据 。在选择路由的时候 , 假如有两条以上相同的路由 , 则AS-PATH属性也是打破僵局的参考依据 , AS-PATH向量元素越少(经过的AS数目越少)的路由优先选中 。
2.7.4 MED属性与路由选择
在上面我们介绍了MED属性 , 该属性是控制外部流量按照怎样的路径流入AS的 。在这里 , 这个属性也成为路由选择的标志 。假如两条同样的路由 , 一条路由的MED属性值大而另外一条的MED属性值小 , 则属性值小的路由优先选中 。
总之 , 路由选择是在发生路由冲突的时候发生的 , 所谓路由冲突 , 就是一台路由器从两个以上的路由器接收到了同一条路由 。这个时候路由器必须决定选择哪条路由安装在自己的路由表中 。以上介绍的选择依据仅仅是一部分 , 还有其他一些 , 读者可以参考其他资料 。
& 在外部网关路由协议中 , 路由的选择是依据属性进行的 , 下面是选择的依据以及其顺序:
1、首先丢弃下一跳不可达的路由;
2、选择本地优先属性值最高的路由;
3、选择本地路由始发的路由;
4、选择AS-PATH向量元素数目最小的路由;
5、选择起点类型最低的路由;
6、选择MED值最低的路由;
7、选择从外部对等体获得的路由;
8、选择到路由下一跳最近的路由(以IGP度量为标准);
9、选择ROUTER ID最低的路由器通告的路由 。
这些属性本文仅仅介绍了一部分 , 其他属性请参考相关书籍 。
2.8 总结
在上面的部分中 , 我们结合实际中的一些需求对RIP协议进行了一些扩展 , 主要集中在下列方面:
1、引入增量路由更新 , 去除RIP的周期更新;
2、改用TCP来代替RIP原来的传输协议 , 并引入邻居维护机制;
3、引入下一跳属性来解决下一跳问题;
4、引入AS-PATH属性来解决路由环路问题;
5、为了适应AS内部和AS之间的不同情况 , 引入内部对等体和外部对等体的概念;
6、引入本地优先属性来解决AS内外出流量分布问题;
7、引入MED属性解决AS外进入流量分布问题;
8、以属性为依据来解决路由选择问题 。
其实 , 这些对RIP的扩展正是BGP协议所具有的精髓部分 , 尤其是通过增加属性来解决问题 。到此为止 , 我们扩展的RIP协议就是传统的BGP路由协议 , 只要读者把握了上面介绍的这些内容 , 尤其是属性的本质 , 那么 , 恭喜您 , 您已经从根本上把握BGP了 。

推荐阅读