在图中AS2具有永不使用AS3进行数据传输这样一个策略。换句话说,源于AS4的业务总是通过大互联网而不是通过AS3传输到AS1。在公共互联网中这种情况很常见,比如当AS3是AS2的客户。那么,AS2将如何与AS4就该策略进行通信呢?
AS2可以简单地标记它发送到AS3的路由信息,使得AS3不能将它再次广播到AS4,但这是有问题的。通过将路由标记为NO_EXPORT群这种简单机制可以很容易让AS3简单地忽略它接收到的路由信息。我们可以对策略实施密码签名,使得AS3无法扰乱该策略而AS4从AS3接收到该信息后则能看到策略,但该机制本身即为问题之所在。
假设AS3直接从AS5接收到包含与AS2广播到AS3但却被AS3中止向AS4广播的的相同目的地址的聚合路由信息,AS3会将该路由信息向AS4重广播,AS4则选择这条较短前缀聚合作为到达AS1的目的地路径而不是选择通过大互联网的路径。AS4会转发流量到AS3,由于接收到的来自AS2的具有较长前缀的路由信息,AS2会转发流量到AS1中的目的地。与AS2的策略相反,AS3能够通过AS2传输流量到AS1。目前该问题还没有简单的解决方法。
安全性
BGP是一个不安全的协议,这点已经得到广泛的认同。它的许多地方都可能被攻击者入侵,嵌入错误路由信息以及进行其他攻击。IETF的路由协议安全(RPsec)工作组正在从事BGP脆弱性描述的相关工作,并且提出了各系统的BGP安全保证建议。关于这些草案的最新信息请参考RPsec主页:http://www.rpsec.org
对他们的工作可能会有哪些要求?
1. 任一建议机制必须能够体现具体的自治系统要经过授权才能发起明确路由信息这一原则
2. 任一建议机制必须能够表明在接收到的路由信息中承载的AS路径对应互联网中的一个真实路径,该路径由源AS开始并且结束于广播对等端。
除此之外,还有许多其他提供BGP安全的要求需要或者说应该得到满足,但这两点要求是在绝大多数领域都关心的。
解决问题
现在我们已经知道在这三个领域需要解决的问题了,但怎样才能真正解决这些问题呢?最好的解决方法应该是通过一个不会对目前的BGP改动过多的单一机制,当它被大范围的部署在互联网中时会给我们带来更多的好处并且能够理解和依赖于现有路由技术实现。
该机制的一个完美例子是简单地在BGP协议上覆盖一个互通链接状态图。该图提供自治系统间而非路由器间的联通信息并且可以用于传送互联网中的拓扑和策略信息而不是在互联网中查找一个非环路路径。
让我们回顾前面的三个例子,来看看如何通过覆盖一个互联网连接图来解决目前BGP面临的问题。
收敛速度
再次以我们的小互联网进行讨论:
图3:使用路径矢量协议的一个互联网样例
BGP查看自治系统中的每一个较长可能路径,直到最后发现丢失与10.1.1.0/24的连接时才收敛,如何来解决这个问题呢?AS12是否可以与互联网中每个自治系统直接通信并告诉它们它已经丢失了到10.1.1.0/24的连接,而不是象现在那样等待AS1去尝试每种可能路径并且依次发现每个路径都已被撤销了?
如果我们有一个网络的拓扑图,AS12就可以在它的连接信息中简单地删除10.1.1.0/24,然后AS12在域间基础上向互联网中的所有其他自治系统同时群发该信息。在最差的情况下,AS1会在它接收到来自AS6的关于10.1.1.0/24的第一个撤销消息时收到该信息,它会发现AS12不再连接到10.1.1.0/24,因此会删除包含AS12的所有到达10.1.1.0/24的可能路径。这会使AS1在同一时间删除路径{2,9,12}, {3,7,10,12},和{4,5,8,11,12} 。互联网能在AS1计算出新的连接图时收敛,并在它的本地表中检查每个进入条目和抛弃自治系统路径中包含AS12的路径。
我们并没有改变BGP在网络中查找路径的方式――除非我们从连接的对等端接收到广播否则路径不会生效。我们没有改变任何BGP更新消息的格式、也没改变任何对等状态机或任意其他东西。我们只是简单地在当前协议机制上覆盖了一个联通图,通过它我们可以加快网络的收敛。
如果只是部分部署将会怎样呢?比如只有自治系统6,7,8,9,10,11,和12运行了这种新的扩展,它仍然会帮助我们加快网络收敛吗?当AS12撤销10.1.1.0/24连接时,AS6, 7, 8, 9, 10和11将立即抛弃任何通过AS12到达10.1.1.0/24的路由。此时,他们将各自发出撤销路由信息,也即AS1,2,3和5会在同一时间接收到撤销信息。这减少了AS1搜索的路径的数量,降低了网络收敛的时间。即使没有全部部署,我们也可从这种新技术中获益。
策略
下面让我们看看在互联网上覆盖了联通图后我们遇到的策略问题会是怎样呢?
大互联网
不传输
聚合信息
图4 联通图上的策略应用
在此,我们会发现AS2可以对AS3应用不传输业务数据这一策略。根据此策略,AS4就可以独立地改变AS2对AS3的业务传输策略,即AS4检查它接受到的来自AS3的路由信息并决定是否要装载该路由信息。
联通图的缺陷
链接状态协议作为BGP的一个可能替代协议,在刚提出来时就遇到了两个主要的障碍:
1. 供应商不愿意接受用一个新协议来完全更换现有系统
2. 由于政策的原因许多运营商希望对其他运营上或客户隐藏它们的策略和连接特性
本文只是讨论BGP的改进而不是BGP的更换,因此上述第一个障碍对本文的方法来说并不是问题。而第二个障碍,即使用某一连接状态协议用于域间路由对我们来说也不是问题,因为我们没有建议改变网络中的BGP搜索无环路路径的方式。本文提出的联通图并不是用来在网络中查找路径,它只是用来加快路径丢失的信令传输(通过对撤销机制进行短路来实现)并提供了一个策略和安全信息处理的方法。
关注于一些小的方面使我们能够设计一个较小的能够以简单方式进行增量部署的解决方案集。
第二个问题比较难解决,这是因为在各种可能的情况下很难定义和理解路由系统内的策略。实际上,目前还有许多策略需求都无法通过BGP来满足,而是通过契约、分组过滤器以及其他机制来实现的(甚至有时是通过违反BGP规范实现)。
下面我们来考虑关于该建议的两个事实,该建议解决了我们在这个领域中碰到的许多问题:
1. 联通图可以应用于互联网的局部和不同地区。例如,某个服务供应商要依靠策略信息向它连接的不同对等端提供不同的视图。
2. 联通图只包含自治系统层的连接信息,而没有具体的对等端信息。比如,两个自治系统可能在许多地方都有连接,或者可能少到只有一个连接。但联通图并不关心这些细节,它只关心是否存在至少一个连接。这样一个联通图不会暴露对等自治系统间的实际连接点和有多少个连接,也不会暴露两个对等端之间商务关系的其他信息。
实际上,联通图能够提供的互连信息类型可以通过检查来自各种路由视图服务器的可用路由自治系统路径得到。这可能要求使用某些机制在一个可用的图中来比较这些信息,但目前大量的关于大规模网络的尺度和收敛属性的研究实际上依赖于在开始工作前建立联通图的能力,所以比较这些数据的机制已经存在了并且正在使用。
安全性
通过签名证书,网络联通图实际上可用于显示是否存在一条从源到广播端的路径。比如,soBGP[6] (ftp://ftp-eng.cisco.com/sobgp/index.html)使用该机制来验证接收的路由信息中承载的自治系统路径的有效性。该领域的其他研究目前也正在进行之中。
总结
我们提出了一个可以解决BGP近期面临的问题的简单方法,可能还为网络界提供了一个关于其他前沿领域的参考发展方向。对BGP进行逐步改进这一概念促使我们进行思考:是对BGP进行小的改变但使它越来越复杂呢还是承受所有部署问题而更换BGP协议呢?