CS269I:Incentives in Computer Science 学习笔记:Lecture 8 Incentives in BGP Routing(BGP寻径中的激励问题)

本文探讨了互联网中的自治系统(AS)间的寻径问题,主要聚焦于BGP(边界网关协议)如何处理AS之间的路径选择。BGP避免了中央管理,允许AS表达各自的偏好,但可能导致多个稳定寻径或争议轮。无争议轮的AS图确保了BGP的收敛性和唯一稳定解。此外,文章还讨论了AS可能的策略偏差,包括虚假路径声明,以及未来协议如BGPsec如何防止此类问题。
摘要由CSDN通过智能技术生成

Lecture 8 Incentives in BGP Routing(BGP寻径中的激励问题)

1 Routing in the Internet

在上一讲中我们讨论了基于延迟(自利)寻径,这种方法常常在局域网中使用。但是今天我们要讲的是另一种寻径,它常常用于在不同的局域网之间的通信。

在这里插入图片描述
互联网的架构是“网中有网”。一个**autonomous system(AS,自治系统)**是若干个中控路由器的集合——也就是说,它由一堆路由器和一个中央管理器组成。

互联网中总共包含大约42000个AS,它们的分布相当广泛——有ISP(Internet Service Providers,互联网服务供应商),大学,政府,等等。例如,斯坦福大学就是一个AS,而它的网络服务供应商Cogent也是一个AS,这两个AS是直接通过物理连接相连的。然而,自然有一些AS也是斯坦福不能直接连接的,那么如果要向它们发送traffic(数据流量)的时候就要在不同AS之间进行数次跳跃寻径了。

1.1 Routing with AS

在AS内部的寻径通常使用的是最短路径寻径——这些寻径协议和我们在本科生课程中曾经学过的很类似,例如Dijkstra算法,Bellman-Ford算法等,只是增加了很多额外的细节。最短寻径需要有一个对“最短路径”的定义,也就是对“边的长度”的定义。最简单的例子是hop-count(把途径的中间设备数量记做“边长”,也就是相当于每两个连通的设备之间的距离都看做1),这样只要使用宽度优先搜索我们就可以计算出最短路径。不过,如果不同的边可以有不同的权重(取决于网络的延迟长度)的话,这种寻径问题就成为了我们在上一讲中讨论的问题。

注意:在最短寻径中,所有的router(路由器)的权重**(preference)偏好是由central administrator(中央管理器)**决定的。

译者注:“路由”(route)其实就是“寻径“,只不过译作动词的时候似乎“寻径”更加符合其本意,所以采用了“寻径”的翻译。

1.2 Routing Between ASes

在AS之间的寻径则完全不同了。在这些分布于全球各地的AS之间并不存在一个中央管理器。不同的AS有着不同的偏好。例如,有的AS的寻径偏好是走花钱最少的路径,但是不同的AS的成本计算函数都不同。例如,不同的网络服务运营商之间的协议不同,可能运营商A的流量要经过运营商B就需要花一大笔钱,所以从A来的流量要求不经过B。这时候,链接权重法就不足以模拟这样复杂的偏好了。

在这里插入图片描述
例如,在上图中,如果流量要前往节点d,那么节点1更愿意走1->2->d,而节点2更愿意走2->1->d(可能是因为d不允许数据向d直连),而这种偏好自然不是连续的(不能用link weight来描述)。

2 The Border Gateway Protocol(BGP,边界网关协议)

在网络中,AS之间的寻径使用的是边界网关协议。我们接下来将会解释它大概是怎样运行的(在真实情境下当然会附加很多细节)。

假设AS的目的地是d,那么BGP就会平行地计算所有能够到达d的路径的花费。不同的目的地之间的计算也是完全独立的。因此,当AS向另外一个AS发送信息的时候,它就包含一个完整的,以这42000个AS为目的地的路由表。

接下来我们来具体描述一下BGP中的寻径方法。之后我们会讨论为什么AS们有动机去遵守这个协议进行寻径。(回忆一下BitTorrent的讨论)

这个协议有点像Bellman-Ford最短路径算法,只不过这个基于步数更新的“距离”变成了一个更加抽象的距离。

为了清晰起见,我们先来学习一下Bellman-Ford算法:

原文链接:https://www.jianshu.com/p/b876fe9b2338

定义松弛

​ 记d[x]为起点t到点x的距离,w(a,b)为有向边(a->b)的权重。如果d[b]>d[a]+w(a,b),则说明找到了一条更短的从起点t到b的路径,此时把d[b]更新为d[a]+w(a,b),称为在边(a,b)的一次松弛。

算法:假设现在有一个有向图连通G,以V为顶点集,E为边集,执行下面的循环:

循环:

​ 对每一条边(u,v)执行松弛:如果d[u]>d[v]+w(u,v),则d[u]松弛为d[v]+w(u,v)

当循环结束时,我们得到了起点t到每个顶点s的距离d[s]

分析循环必然结束

定义:已确认顶点:如果d[u]到达了实际上的最短距离,则称u为已确认顶点。

命题:每经过一次循环,图中的已确认顶点数量至少+1。

证明:假设当前的已确认顶点集为W,未确认顶点集为V-W,则反证:如果在这一次循环松弛之后,没有增加任何已确认顶点,则说明V-W中的任意顶点h的当前距离d[h]都比最短距离s(h)要大。
在这里插入图片描述

推论:循环进行至多|V|-1次之后就会结束。

时间复杂度:O(|V||E|)

接下来就是BGP的算法了:

目的:在AS网络中给定一个目标AS d,希望找到从每个AS出发到达d的最优路径。

每个AS v都会maintain(维护)一个到达目标的路径P_v(如果是空,则表示这样的路径还没有找到).一开始,d会设置P_d为空(因为d可以直接到达P_d),并且将这个结果向所有的相邻AS广播。

所有的AS之后都被要求平行地执行下面的程式:连续,但不一定同步:

BGP Update Step:

对于任意一个拥有邻居集N的AS u:

​ 1.对任意v∈N:在内存中记录v向自己广播的最新的路径P_v

​ 2.遍历所有新的路径,找到自己最喜欢的无循环路径(u,v)⊕P_v

​ 3.如果P_u更新了,就向所有的邻居广播新的P_u

注意:AS u要避免循环——如果P_v包含了u,那么u就不能通过P_v来寻径,否则就会引发无限循环。

那么,我们回到刚才的例子:

在这里插入图片描述
在这种偏好中,存在两个“均衡”:

在这里插入图片描述
(a):2非常满意,因为它不想直接连接到d;1不满意,但是无可奈何,因为它如果把路径向2重定向,就会引发循环,这是BGP不允许的。

(b):1非常满意,因为它不想直接连接到d;2不满意,但是无可奈何,因为它如果把路径向1重定向,就会引发循环,这是BGP不允许的。

不过,最终会形成那一种结果取决于节点之间的更新时序——1和2哪一个先将P_d更新为1->d/2->d并被另一个节点发现,它就会吃亏。

3 Stable Routings

我们称BGP的fixed point(稳定点)为一个stable routing(稳定寻径):给定其它所有AS的选择,没有一个AS希望改变它到d的路径。上面的两个图显示的就是这个AS寻径问题的一个稳定解。

由于BGP保证了每个AS的出度都至多为1,因此一个稳定寻径必定是一棵定向为d的树。如果AS不是连通的,那么这棵树就是一个连通分支。

根据上面的例子,我们已经知道AS图可以有多于一个的稳定寻径。但是也可能并不存在一个稳定的寻径。考虑这样的一个AS图:
在这里插入图片描述
首先,最终的稳定寻径必然包含至少一条从外面的三个点连向d的路径,根据对称性不妨设为1->d,那么3必然会使用31d,而2则使用2d,因为它更喜欢的23d不存在。但是如果2使用路径2d,那么1就会改变偏好,变成12d;然后产生循环。

4 Dispute Wheels(争议轮)

最终,我们来讨论一下AS们使用BGP的动机。然而上面的两个例子告诉我们,BGP的输出结果甚至都有可能并不是良定义的。在这一节的讨论中我们首先假设BGP的输出结果是有意义的,在第6节我们则会给出更一般的结果。

4.1 No Dispute Wheel Implies BGP Convergence

定义争议轮

  1. 若干个不同的AS u_1,…,u_k
  2. 无循环的路径P_1,…,P_k,使得P_i是从u_i到d的路径
  3. 无循环的路径Q_1,…,Q_k,使得Q_i是从u_i到u_i+1的路径

这样的话,如果每个u_i都更加偏好“非直接”的路径Q_i⊕P_i+1,那么争议轮就会形成:
在这里插入图片描述
这个定义综合了我们曾经看到过的两个例子。在第一个例子中,令P_1=1d,P_2=2d,Q_1=12,Q_2=21,那么就构成了一个争议轮;在第二个例子中,令P_i=id,Q_i=i(i+1),那么就构成了一个争议轮

这一节中我们做一个简单假设——no dispute wheel.

Theorem 4.1:AS图中不存在dispute wheel(争议轮)可以推导出如下结论:

(a)有且仅有一个稳定寻径

(b)BGP算法最终会收敛于一个稳定寻径

注意(b)是非常强的,它蕴含了AS图中至少有一个稳定寻径的条件,但是AS图即使有稳定寻径,BGP算法也不一定会收敛于这个稳定寻径。

(证明详见:T. Griffiffiffin, F. B. Shepher, and G. T. Wilfong. The stable paths problem and interdomain routing. IEEE/ACM Transactions on Networking, 10(2):232–243, 2002.)

4.2 Are There Dispute Wheels in Practice?

**当有人告诉你一个新的定义,尤其是像上面这样奇怪的定义的时候,你应该先问两个问题:这个定义有什么有趣的推论;有什么满足这个定义的有趣例子。**定理4.1就说明了它的一些有趣的推论。但是,这个条件到底有多强呢?

事实上,如果我们假设每个AS都偏好更短的路径,那么不难证明这样的AS图中不存在争议轮。(事实上,如果存在争议轮,那么根据假设,P_1>Q_1+P_2>P_2>…>P_k>P_1,矛盾!)不过这结论非常弱了,因为BGP的本意可比解决最短寻径问题高多了。

Gao和Rexford给出了对于“无争议轮”的令人非常满意的解释,并且讨论了在现实AS情景下的条件问题。他们提出的条件被称为“Gao-Rexford条件”。参见:L. Gao and J. Rexford. Stable Internet routing without global coordination. IEEE/ACM Transactions on Networking, 9(6):681–692, 2001.

讨论Gao-Rexford条件的细节可能会把我们带的太远,但是这是他们的思想:AS对之间可能有两种关系:一种是对等关系——它们同意相互传输流量;另一种是提供商和客户的关系——客户需要向提供商付费才能连接到网络的其它部分。例如,很多第二层的节点需要向第一层的节点付费以连接到网络的其它部分。这种层级式的AS网络结果可以避免争议轮的出现。有现实证据表明,Gao-Rexford的这种假设在大部分时候都是成立的。

5 Proof of Theorem 4.1

我们接下来给出定理4.1的证明。这会是我们在这章中给出的唯一一个证明,但是它代表了解决这类问题的整体思路。特别的,我们会看到为什么要引入“争议轮”的概念。

我们使用反证法:如果AS图中存在两个不同的稳定解S和T(它们都是指向d的树),下面我们证明必然存在一个争议轮。

试想,我们现在从d开始沿着同时在S和T中的边反向做宽度优先搜索,并记H为已经到达的顶点集——也就是说,定义H为S和T中使用相同的前往d的路径的点集。H至少包含目标点d。

我们现在考虑一条这样的边(u_1,v_1):u_1∉H,v_1∈H,(u_1,v_1)在S或T中。由于u_1∉H,这条边不可能同时在S和T中。

首先这样的边必然存在,否则,在H的边界上没有属于S或T的任一条边,但是H属于S和T,且S和T是连通的树,因此如果在H外还存在S或T的边,就会出现不连通的情况,矛盾!因此,S=T(边集和点集都全同),这与S和T是不同的解矛盾!

因此,对于这条边(u_1,v_1)来说,不妨设它在S中但不在T中,则从u_1在S中到达d的路径必定是(u_1,v_1)⊕P_(v_1),记为P_1.

现在我们来看u_1在T中到达d的路径,由于v_1在H中,因此v_1在T中到达d的路径也是P_(v_1),但是u_1不在T中,因此u_1到达d另有其他路径,设为P‘。P‘不可能是空路——如果u_1更加偏好空路,那么在S中它应该也会选择空路而非P_1。同时,P’的第一步也不可能直接跃入H中,否则在T中这条路也是存在的(H∈T),那么根据偏好它就不会选择P_1了,因此,不妨假设P`第一次跨入H是在顶点u_2,跨到v_3,则u_2≠u_1,如图所示,定义P‘=Q_1⊕P_2

在这里插入图片描述

我们现在对u_2重复上述过程得到P_3,Q_2,u_3,v_3,……,直到在H之外得到一个循环,如此这般产生的Q和P正是一个“争议轮”,命题得证!

对于另外两个性质的证明请参考本讲练习:http://timroughgarden.org/f16/e/e4.pdf

6 Incentive Issues(激励问题)

我们现在把注意力转移回无争议轮的AS图中的激励问题,这样BGP的结果就是良定义的。那么,AS能够与BGP进行博弈吗?对于我们在第二节给出的BGP算法,是否存在一种AS的策略能够单边地偏移BGP的结果,使其对自己更加有利?

6.1 Types of Deviations

AS有很多偏移BGP的结果的办法,下面是三种办法:

  1. 选择一个并不是自己最喜欢的路径P_u
  2. 向某些邻居隐瞒自己的路径信息
  3. 向某些邻居广播虚假的路径信息(也许是随机编造的)

显然,执行前两种偏移行为是有动机的(从例1就可以看出),那么第三种行为呢?AS能否避免这种不好的结局?

结论可能会令你惊讶——对虚假路径的广播在BGP中从未停止。

最著名的例子之一是在2008年2月。巴基斯坦电信(Pakistan Telecom)由于某些令人反感的视频,希望阻止从巴基斯坦访问YouTube的9个信道。 他们通过将YouTube流量重新路由到本地服务器(一个显示“访问被阻止”的网页)来实现此目的。 出于某种原因(偶然地?),巴基斯坦电信向其一些邻居宣布了通往“YouTube“的新路线。 香港的ISP在几秒钟内便根据BGP规则将其路由转换为YouTube,许多互联网迅速效仿。这个结果对任何人都不是一件好事:互联网发生了大范围的YouTube访问失效,巴基斯坦电信掩盖了所有定向到YouTube的请求。

BGP在这方面的弱点显然是一个问题。多年来,人们一直在努力推出一个新的、更安全的BGP版本,如提议的BGPsec协议。不过,正如我们可以想象的那样,由于这42000个AS没有一个中央权威机构,对协议进行重大更改并不容易。

6.2 Examples

例1中的示例中有两个稳定的路由,它们已经表明,隐瞒有关路径的信息可能是有益的。 回想一下,两个AS中的每个都希望通过另一个AS路由,而不是直接路由到目的地。 如果AS 1从不宣告任何路径,并且AS 2遵循BGP协议,则该协议收敛到AS 1首选的稳定路由(其中2个路由直接到达d)。不过, 这个例子包含了一个争议轮,而且我们已经知道BGP在存在争议轮的情况下无法正常运行。 那么,如果没有争议轮呢?

在这里插入图片描述

现在我们来看上图所示的例子:它和例2很像,但是去掉了一条边,使得争议轮被避免了。2的行为看起来很奇怪,因为它在声明对一个不存在的路径3d的偏好。不过我们要记住,互联网上有42000个AS,它们不会总是对外说明自己和谁有着直接的物理连接,并且网络也总是在变化。 因此,AS 2也不会知道AS 3和d之间是否存在直接的物理连接;AS必须准备好描述它对自己可能遇到的任何路径的偏好。

如果AS们都是诚实的,BGP就会收敛到唯一的稳定解,如下图a所示,此时3得到并不是自己最喜欢的路径。但是,如果3对2谎称自己拥有不存在的路径3d,那么最终的解就会变成下图b所示,这样的话3就得到了自己最喜欢的路径。
在这里插入图片描述

这样,我们就证明了,即使不存在争议轮,有时候声明虚假的路径对于AS也可能是有益的。

6.3 Incentive-Compatibility with Path Verification

我们已经说明了在现行的BGP协议中,虚假的路径声明是确实可能的(事实上,经常发生)。不过,值得庆幸的是,在未来,进行虚假的路径广播将不会那么容易了。例如,准备实施的BGPsec协议使用了密文签名来确认声明的路径的存在性。那么,虚假的路径声明是否还会存在?

定理6.1:如果假设:(1)没有AS能够声明不存在的路径(2)AS图中不存在争议轮,则:没有AS有动机去单方面地偏移BGP约定的行为

详细结果参见:H. Levin, M. Schapira, and A. Zohar. Interdomain routing and games. SIAM Journal on Computing, 40(6):1892–1912, 2011.

也就是说,没有AS可以从隐瞒邻居的路径,选择除其最喜欢的可用选项之外的路径,或错误地声明网络中实际存在的其他路径中受益。定理6.1令人满足且惊讶,因为即使在限制性假设下,实践中使用的许多网络协议至少在一定程度上易受参与者博弈的影响(例如,回顾第5章中的BitTorrent讨论)。该定理的推广同样有趣:这种协议还可以阻止偏向者的联盟——如果一组AS以协调的方式偏离BGP,并且至少一个联盟成员的条件变得更好,那么另一个成员的情况就会更糟。

我们不会证明定理6.1,但是证明的灵感类似于第5节中唯一性的证明。大致来说,类似定理4.1的证明:如果一个AS有一个有利可图的偏差,那么偏差前后所达到的稳定寻径都将发挥相同的作用。这个讨论并不是很正确,因为在偏移发生后也许寻径的稳定性仅在AS的想象中存在。但是,这个定理说明,如果AS仅能够被存在的路径误导,那么这种证明方法同样可以发挥作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值