Yandex 实施 RPKI

你好,我的名字是亚历山大·阿齐莫夫。 在 Yandex,我开发了各种监控系统以及传输网络架构。 但今天我们要讲的是BGP协议。

Yandex 实施 RPKI

一周前,Yandex 在与所有对等伙伴以及流量交换点的接口上启用了 ROV(路由源验证)。 请阅读下文,了解这样做的原因以及它将如何影响与电信运营商的互动。

BGP 及其问题

您可能知道 BGP 被设计为域间路由协议。 然而,一路走来,用例的数量不断增长:如今,由于众多的扩展,BGP 已经变成了消息总线,涵盖了从运营商 VPN 到现在流行的 SD-WAN 的任务,甚至还找到了以下应用:类似 SDN 控制器的传输,将距离矢量 BGP 转换为类似于链接卫星协议的协议。

Yandex 实施 RPKI

图。 1。 BGP SAFI

为什么 BGP 获得(并将继续获得)如此多的使用? 主要原因有两个:

  • BGP 是唯一在自治系统 (AS) 之间工作的协议;
  • BGP 支持TLV(类型-长度-值)格式的属性。 是的,该协议并不孤单,但由于在电信运营商之间的连接处没有任何东西可以替代它,因此在其上附加另一个功能元素总是比支持额外的路由协议更有利可图。

他究竟怎么了? 简而言之,该协议没有内置机制来检查接收到的信息的正确性。 也就是说,BGP 是一种先验的信任协议:如果您想告诉世界您现在拥有 Rostelecom、MTS 或 Yandex 的网络,请这样做!

基于 IRRDB 的过滤器 - 最差中最好的

问题来了:为什么互联网在这种情况下仍然有效? 是的,它在大部分时间都有效,但同时它也会周期性地爆炸,导致整个国家部分无法访问。 尽管 BGP 中的黑客活动也在增加,但大多数异常仍然是由错误引起的。 今年的例子是 操作员小错误 在白俄罗斯,这导致 MegaFon 用户在半小时内无法访问互联网的大部分内容。 另一个例子 - 疯狂的 BGP 优化器 破坏了世界上最大的 CDN 网络之一。

Yandex 实施 RPKI

米。 2.Cloudflare流量拦截

但是,为什么这种异常现象每六个月发生一次,而不是每天发生一次? 因为运营商使用外部路由信息数据库来验证从 BGP 邻居收到的信息。 这样的数据库有很多,有的是注册商管理的(RIPE、APNIC、ARIN、AFRINIC),有的是独立玩家(最著名的是RADB),也有大公司拥有的一整套注册商(Level3) 、NTT 等)。 正是有了这些数据库,域间路由才能保持其运行的相对稳定性。

然而,也存在细微差别。 基于ROUTE-OBJECTS和AS-SET对象检查路由信息。 如果第一个意味着对 IRRDB 的一部分进行授权,那么对于第二个类,则没有作为类的授权。 也就是说,任何人都可以将任何人添加到他们的集合中,从而绕过上游提供商的过滤器。 此外,不同 IRR 基础之间 AS-SET 命名的唯一性无法保证,这可能会导致电信运营商突然失去连接而产生令人惊讶的影响,而电信运营商则没有进行任何更改。

另一个挑战是 AS-SET 的使用模式。 这里有两点:

  • 当运营商获得新客户端时,会将其添加到其 AS-SET 中,但几乎从不删除它;
  • 过滤器本身仅在与客户端的接口处配置。

因此,BGP 过滤器的现代格式包括在与客户端的接口上逐渐降级的过滤器以及对来自对等合作伙伴和 IP 传输提供商的先验信任。

什么正在取代基于 AS-SET 的前缀过滤器? 最有趣的是,短期内什么也没有。 但是,其他机制正在出现,以补充基于 IRRDB 的过滤器的工作,首先,这当然是 RPKI。

RPKI

简单地说,RPKI 架构可以被认为是一个分布式数据库,其记录可以通过密码验证。 在ROA(路由对象授权)的情况下,签名者是地址空间的所有者,记录本身是一个三元组(前缀、asn、max_length)。 本质上,该条目假定以下内容:$prefix 地址空间的所有者已授权 AS 编号 $asn 通告长度不大于 $max_length 的前缀。 使用 RPKI 缓存的路由器能够检查该对的合规性 前缀 - 路上的第一个发言者.

Yandex 实施 RPKI

图 3. RPKI 架构

ROA 对象已经标准化了相当长的一段时间,但直到最近它们实际上还只停留在 IETF 期刊的纸面上。 在我看来,造成这种情况的原因听起来很可怕——糟糕的营销。 标准化完成后,人们的动机是 ROA 可以防止 BGP 劫持——但事实并非如此。 通过在路径开头插入正确的 AC 编号,攻击者可以轻松绕过基于 ROA 的过滤器。 一旦意识到这一点,下一个合乎逻辑的步骤就是放弃使用 ROA。 事实上,如果技术不起作用,我们为什么还需要它呢?

为什么现在是改变主意的时候了? 因为这不是全部真相。 ROA 不能防止 BGP 中的黑客活动,但 防止意外的交通劫持,例如 BGP 中的静态泄漏,这种情况越来越常见。 此外,与基于 IRR 的过滤器不同,ROV 不仅可以在与客户端的接口上使用,还可以在与对等方和上游提供商的接口上使用。 也就是说,随着RPKI的引入,先验信任正在逐渐从BGP中消失。

现在,基于ROA的路由检查正逐渐被主要参与者实施:最大的欧洲IX已经丢弃了错误路由;在一级运营商中,值得强调的是AT&T,它在与对等合作伙伴的接口上启用了过滤器。 最大的内容提供商也正在接触该项目。 数十家中型交通运营商已经悄然实施,没有告诉任何人。 为什么所有这些运营商都实施 RPKI? 答案很简单:保护您的传出流量免受其他人错误的影响。 这就是为什么 Yandex 是俄罗斯联邦首批将 ROV 纳入其网络边缘的国家之一。

接下来会发生什么?

我们现在已经启用了在具有流量交换点和专用对等互连的接口处检查路由信息。 不久的将来,还将启用上游流量提供商的验证。

Yandex 实施 RPKI

这对你来说有什么不同? 如果您想提高网络和 Yandex 之间流量路由的安全性,我们建议:

  • 签署您的地址空间 在 RIPE 门户中 - 很简单,平均需要 5-10 分钟。 如果有人无意中窃取了您的地址空间,这将保护我们的连接(这肯定迟早会发生);
  • 安装开源 RPKI 缓存之一(成熟验证器, 路由器)并在网络边界启用路由检查 - 这将花费更多时间,但同样,它不会造成任何技术困难。

Yandex 还支持开发基于新 RPKI 对象的过滤系统 - ASPA (自治系统提供商授权)。 基于ASPA和ROA对象的过滤器不仅可以取代“泄漏”的AS-SET,还可以解决使用BGP的MiTM攻击问题。

我将在一个月后的 Next Hop 会议上详细谈论 ASPA。 来自 Netflix、Facebook、Dropbox、Juniper、Mellanox 和 Yandex 的同事也将在那里发表演讲。 如果你对网络栈及其未来的发展感兴趣,就来吧 注册已开放.

来源: habr.com

添加评论