Yandex推出RPKI

嗨,我叫Alexander Azimov。 在Yandex,我正在开发各种监视系统以及传输网络体系结构。 但是今天我们将讨论BGP。



一周前,Yandex在与所有对等伙伴以及交通交换点的交界处包括ROV(路由起源验证)。 关于这样做的原因及其对电信运营商互动的影响,请阅读下文。

BGP及其出了什么问题


您可能知道BGP被认为是跨域路由协议。 但是,在此过程中,用户案例的数量设法增长:如今,由于众多扩展,BGP已变成一条消息总线,涵盖了从运营商的VPN到现在流行的SD-WAN的任务,甚至还被用作类似SDN的控制器的传输。距离矢量BGP进入类似于链接状态协议的协议。


1. BGP SAFI

为什么BGP收到(并继续收到)这么多用途? 主要有两个原因:

  • BGP是在自治系统(AS)之间起作用的唯一协议。
  • BGP支持TLV格式(type-length-value)的属性。 是的,协议并不是唯一的协议,但是由于在电信运营商之间并没有什么可以替代的协议,因此将更多的功能元素附加到协议上总是比支持附加的路由协议更有利可图。

他怎么了 简而言之,该协议缺乏用于验证接收到的信息的正确性的内置机制。 也就是说,BGP是先验信任的协议:如果您想告诉世界,您现在拥有Rostelecom,MTS或Yandex网络,请!

IRRDB筛选器-最坏的选择


问题来了-为什么Internet在这种情况下仍能正常工作? 是的,它在大多数时间都有效,但是它会定期爆炸,使整个国家/地区无法进入。 尽管BGP中的黑客攻击活动也在增长,但大多数异常仍然是由于错误而发生的。 今年的一个例子是白俄罗斯的一家小型运营商错误,该运营商在半小时内使MegaFon用户无法访问互联网的很大一部分。 另一个例子-被激怒的BGP优化器破坏了世界上最大的CDN网络之一。


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)。 实际上,此条目假设以下内容-地址空间$前缀的所有者允许编号为$ asn的AS声明长度不超过$ max_length的前缀。 使用RPKI高速缓存的路由器能够在旅途中检查是否有一对前缀优先的扬声器


图3. RPKI体系结构

ROA对象已经标准化很长时间了,但是直到最近,实际上,它仅保留在IETF期刊的纸上。 我认为,这样做的原因听起来很可怕-行销不良。 标准化完成后,有人认为ROA可以防止BGP劫持是一种诱因-事实并非如此。 攻击者可以通过在路径的开头插入正确的扬声器编号来轻松绕过ROA过滤器。 一旦意识到这一点,接下来的逻辑步骤就是拒绝使用ROA。 真的,如果技术不起作用,为什么我们需要技术?

为什么现在该改变主意了? 因为这不是全部事实。 ROA不能防止BGP中的黑客活动,但可以防止意外的流量劫持 ,例如防止BGP中的静态泄漏(这种情况越来越普遍)。 此外,与基于IRR的过滤器不同,ROV不仅可以用于与客户的接口,还可以用于与对等方和更高供应商的接口。 即,随着RPKI的引入,BGP逐渐留下了先验的信心。

现在,主要参与者逐渐引入了基于ROA的路由检查:欧洲最大的IX已经在丢弃不正确的路由,在1级运营商中,值得强调的是AT&T,后者在与对等合作伙伴的交界处启用了过滤器。 同样,最大的内容提供者也适用于外壳。 数十家中型公交运营商已经悄悄实施了该计划,而没有告诉任何人。 为什么所有这些运营商都在实施RPKI? 答案很简单:保护您的传出流量免遭其他人的错误。 因此,Yandex是俄罗斯联邦首批在其网络边界添加ROV的国家之一。

接下来会发生什么?


现在,我们已经包括在与流量交换点和专用对等点的路口处检查路由信息。 在不久的将来,验证还将包含在上游流量提供商中。



这对您有什么变化? 如果要提高网络与Yandex之间的流量路由的安全性,我们建议:

  • 在RIPE门户中签署地址空间很容易,平均需要5到10分钟。 如果有人不由自主地劫持了您的地址空间,这将保护我们的连通性(这种情况迟早会发生);
  • 将一个开源RPKI缓存( 成熟验证器routinator )放在网络边界并启用路由检查将花费更多时间,但不会再次造成技术困难。

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

我将在下一跳会议上一个月内详细讨论ASPA。 还将有来自Netflix,Facebook,Dropbox,Juniper,Mellanox和Yandex的同事。 如果您对网络堆栈及其将来的发展感兴趣,可以进行注册

Source: https://habr.com/ru/post/zh-CN467391/


All Articles