欢迎来到科特网 · 弱电工程一站式采购与协同
首页/行业资讯/工程实践/详情

搞了15年网络,才搞明白RPKI到底是个啥

2026-01-28 · 工程实践

2026-01-28工程实践
搞了15年网络,才搞明白RPKI到底是个啥

搞了十几年网络,说实话,以前我对RPKI这玩意儿也是半懂不懂。直到前两年,有次客户那边网络突然断流,查了半天,最后发现是路由被劫持了——一个邻居AS号伪造了IP前缀,把我们发往某个重要服务器的流量全给拐跑了。那会儿才真正意识到,BGP这个老伙计,天生就没穿防弹衣。

弱电工程工程实践

导语

RPKI(Resource Public Key Infrastructure,资源公钥基础设施)是一种基于PKI(Public Key Infrastructure,公钥基础设施)的技术,专门用于验证BGP发布的路由信息的真实性和合法性,防止路由劫持等网络安全问题

要点

  • RPKI(Resource Public Key Infrastructure,资源公钥基础设施)是一种基于PKI(Public Key Infrastruct
  • PKI是一种用于管理和验证数字证书的技术,它主要用来保障数据交换的安全性和完整性
  • RPKI可以说是PKI的一种应用,专门用于保障BGP路由的安全性
  • 为什么需要RPKI
搞了十几年网络,说实话,以前我对RPKI这玩意儿也是半懂不懂。直到前两年,有次客户那边网络突然断流,查了半天,最后发现是路由被劫持了——一个邻居AS号伪造了IP前缀,把我们发往某个重要服务器的流量全给拐跑了。那会儿才真正意识到,BGP这个老伙计,天生就没穿防弹衣。 说白了,RPKI(资源公钥基础设施)是给BGP路由信息“验明正身”的。它基于PKI那套数字证书体系,但专门用来干一件事:验证某个IP地址段到底归谁管,谁有权来广播这条路由。PKI本身是用来管数字证书、保数据安全的,而RPKI就是它的一个“专业版”,专治BGP路由劫持。 **为啥非得搞这个?** 早年互联网小,AS(自治系统)就那么几个,大家互相都信得过,BGP设计的时候就只管传数据,压根没考虑有人会造假。可现在呢?全球几十万个AS,鱼龙混杂。你邻居跟你说“这条路由是我的”,你就信了?万一他瞎说呢?那后果就是——你的流量全跑到他那儿去了。 这就是BGP前缀劫持。分两种:一种是直接伪造起源AS号,比如AS4谎称自己是10.1.0.0/16的持有者,靠着BGP最短路径原则,把流量劫走;另一种是子前缀劫持,AS4发一个更具体的路由10.1.0.0/24,按最长前缀匹配,小范围的流量就被骗过去了。图里画得清楚,看下面: 以前我遇到过一回,客户说他们跟海外一个分支连不上,我查了好几天路由表,最后发现是某个上游ISP配错了,把不该广播的前缀给播出去了,结果全网都往那儿送流量。这种错误配置,跟攻击一样要命。所以RPKI这东西,不光是防黑客,也是防我们自己的手滑。 RPKI的思路,最早来自1997年的S-BGP方案,但那玩意儿要在BGP包里加签名,路由器算不过来,也没人用。后来IETF搞了SIDR工作组,提了RPKI,不修改BGP,把签名放在一个“外挂”的资料库里,路由器只拿验证结果。这样兼容性好,路由器负担小,才慢慢有人开始用。 **部署RPKI有啥好处?** - 安全:谁也别想冒充别人广播路由,流量劫持基本废了。 - 可靠:路由可信,不容易泄露,网络稳当。 - 省钱:真被劫持了,数据丢了、客户跑了,那损失可不是小数目。搞个RPKI,防患于未然。 - 长远:互联网要健康发展,路由安全是基础。 **RPKI怎么干活?** 先聊几个关键概念。 1. **互联网号码资源分配架构**:从上到下——IANA(全球管总账)→ RIR(区域注册机构,比如亚太的APNIC)→ NIR(国家级)→ ISP(运营商)。谁管哪段IP、哪个AS号,都有记录。 2. **资源公钥基础设施**:就是一套数字证书系统,专门给IP地址和AS号做“数字签名”,证明“这段IP是张三的,他授权李四来广播”。 3. **证书**:分两种——CA证书(管分配权的)和EE证书(管路由授权的)。CA证书像“地契”,EE证书像“授权书”。谁有CA证书,谁就能往下分资源。 4. **ROA(路由源授权)**:就是IP地址的主人写个声明:“我允许AS 12345来广播我的IP段10.1.0.0/16”。这声明是签了名的,造不了假。 5. **RPKI资料库**:所有证书和ROA都存这儿,分布式的,谁都能同步。 6. **RP(依赖方)**:这是连接RPKI和实际路由系统的“翻译官”。它定期从资料库下载并验证证书,然后把“IP段→AS号”的合法关系告诉路由器。路由器拿这个表去判断收到的BGP路由是真的还是假的。 **整体架构**:证书签发体系(认证中心)→ 证书存储系统(资料库)→ 证书同步验证机制(RP干活)。 什么是RPKI? **路由起源认证过程**:证书由上往下签。比如APNIC先给自己签个根证书,然后给下面的RIR签发证书,RIR再给ISP签,一层层往下。每一级都证明“我授权你用这段IP/这个AS号”。 什么是RPKI? 举个简单例子(实际证书格式比这复杂多了): - APNIC签个自签名证书:{签发者:APNIC,接收者:APNIC,资源:10.1.0.0/16,AS 1...} - APNIC再给某个RIR签:{签发者:APNIC,接收者:某RIR,资源:10.1.0.0/16...} - 最后,ISP拿到证书后,再签ROA,授权某个AS来广播。 **实际施工经验**:我头一回部署RPKI时,踩了个坑——没注意RP服务器的时间同步。证书验证全靠时间戳,如果服务器时间差了几分钟,验证全失败,路由表直接乱套。后来我们给所有RP服务器配了NTP,还加了监控,一旦时间偏差超过1秒就报警。还有,别贪便宜用太旧的设备,有些老路由器对RPKI支持不好,得升级固件才认。 **省钱技巧**:如果你是小运营商,不想自己搭全套RPKI,可以买CDN或云服务商的“RPKI验证”服务,按流量收费,比自建省人力。另外,ROA别设太死,留点余量——比如你实际用10.1.0.0/24,ROA可以写成10.1.0.0/23,万一以后扩网,不用频繁改。 总之,RPKI不是什么玄学,它就是给BGP路由加了一把锁。虽然部署起来有点麻烦,但比起被劫持后断网、丢数据、赔客户,这点功夫真不算啥。搞网络,安全永远是第一位的。
平台