首页 > 其他分享 >NIST BGPsec SRx 代码概览以及BGP报文分析

NIST BGPsec SRx 代码概览以及BGP报文分析

时间:2023-08-22 10:37:44浏览次数:44  
标签:代码 BGP BGPsec SRx 报文 NIST

之前有写过NIST BGP SRx的使用,它就是BGPsec的一个软件实现。如果要安装使用,就可以参照我的那篇文章来。它也提供了docker的方式来使用,参照README安装使用就好。它的代码完全开源,托管在GitHub上。

如今分析下其所做的修改吧,反正我们的也需要类似的方式来修改。不过在正式使用之前,首先需要知道BGPsec的流程,其实也就是BGP的流程,是BGP状态机,但是比较麻烦,还是直接看正常的抓包吧。抓包文件可以下载这个bgpsec.pcap,这是wireshark提供的一些sample抓包,如果有别的需要,去对应找就好。

在使用抓包时,用wireshark打开,然后用bgp作为规则过滤,虽然使用tcp.port==179也可以,但是会多出来很多没有用的信息,其实也就是多出来了TCP三次握手和四次挥手以及对于收到报文的回复ACK。从抓包中,可以看到所谓的BGPsec,就是BGP的基本流程,两个OPEN,两个KEEPALIVE,两个UPDATE。由于没有出错所以也就没有NOTIFICATION报文。

  • OPEN报文中携带了4个BGPsec相关的Capability,这就是向peer宣告自己支持IPv4/IPv6的收发BGPsec。 image.png

  • KEEPALIVE报文中并没有多消息,任然是标准的长度为19字节的BGP-KEEPALIVE报文。 image.png

  • UPDATE报文,BGPSec对于BGP-UPDATE报文的修改最大,主要是去掉了AS_PATH路径属性,替换为了BGPsec_PATH属性。BGPsec是不能进行路由聚合的。 image.png

但是为了修改这些个字段,BGPsec可是着实费了些功夫,目前实际上虽然BGPsec已经成熟了,甚至2017年InternetSociety还专门写了篇文章来说BGPsec成熟可用了。但是各大厂商直到如今,实现寥寥。

下载NIST-BGP-SRx代码,其实线上查看也挺方便的。我不想下载,所以就在线上查看了。

NIST-BGP-SRx主要分为3部分,一个全局注册的RPKI RTR Server,一个本地的SRx Server,还有就是QuaggaSRx了。代码的主体按照它自己的介绍文档来看吧。

功能缩写 代码目录 解释说明
SCA srx-crypto-api SRx Crypto API (提供了加解密相关的功能,主要是BGPSec使用ECDSA)
SRxSnP srx-server SRx-Server and SRx-Proxy (验证服务器和代理)
QSRx quagga-srx Quagga SRx (Quagga协议套件,也增加了对BGPsec的修改)
BIO bgpsec-io BGPsec traffic generator and crypto module tester.
EXAMPLES examples Examples, test scripts, and test framework generators (TFG) to test BGP-SRx modules.

NIST的BGPsec实现套件还是基于的quagga-0.99.22版本,所以现在比较老了。但是问题不大,对应着看看就可以,反正后续使用的FRR也是从Quagga修改来的,基本代码还是一样的。其它的模块都是他自己添加维护的,而要做的事情无非就是提供CA证书,分发公钥之类的事情,应该可以复用。后续会主要集中在对于BGP的修改上,也就是Quagga的代码上,而将密钥之类的发送给路由器可能是RTR协议实现。

标签:代码,BGP,BGPsec,SRx,报文,NIST
From: https://blog.51cto.com/basilguo/7186345

相关文章

  • BGP协议---基于RFC4271标准
    [email protected],2023DescriptionBGP协议---基于RFC4271标准。RFC4271是最新的BGPv4版本的协议。虽然直接看协议是非常晦涩难懂的,而且104页的全英文,真的很难完全阅读下来,但如果理解有出入,还是看RFC最为标准了。第1、2、3章自己就可......
  • BGP重分布metric
    BGP重分布metric详解_网络工程师的技术博客_51CTO博客  华为:OSPF路由引入BGP,cost值也会被直接引入,为什么两条路由被引入时,一个cost变成了0?另一个还是889  ......
  • BGP黑洞解决办法一:full mesh
    网络环境R8:宣告了8.8.8.8路由R9:宣告了9.9.9.9路由R3:上没有运行BGP1)在AS200中R5、R1到查询到BGProuting-table如下2)R3:没有运行BGP路由3)路由表中8.8.8.8、9.9.9.9虽然都在BGP路由表中,但是却无法ping通4)查看bgprouting-table不存在问题,但是数据转发存在问题注意:虽然存在路由表,但是......
  • WebGPU All In One
    WebGPUAllInOnechrome://flags/#enable-webgpu-developer-featuresWebGPUistheworkingnameforapotentialwebstandardandJavaScriptAPIforacceleratedgraphicsandcompute,aimingtoprovide"modern3Dgraphicsandcomputationcapabilities&......
  • BgpRoutingProcess
    源代码注释BGProutingprocess.Adataplanecounter-partof{@linkBgpProcess}.MaintainsstatenecessaryforexchangeofBGProutingmessages.RoutingProcess用于参与数据面计算,维护rib等关键信息,executeIteration是路由计算进程函数bgpv4Edge是已经成功建立peer......
  • GTSM 和EBGP multihop
    默认情况下,两个EBGP之间报文TTL为1  配置EBGP  multihop66则报文TTL变成66 再配置ttl-securityhops11,则报文TTL变成255 show,两个配置都在,但是只有第二个生效。undo ttl-securityhops,则报文TTL变成66  ......
  • BGP路由表中符号的理解
    解析:*:表示路由是有效路由,下一跳可达>:表示路由是BGP选出的最优路由 d:表示路由是衰减路由h:表示路由是历史路由i:表示路由是AS内部路由,来自于IBGP对等体s:处于stale状态路由,正在被删除。BGPGR过程中可能出现此标记network:BGP路由表中的网络地址nexthop:报文发送的下一跳地址MED:BGP路......
  • BGP_as_path
    BGP_as_path属于,路径越短越优先1、抓取感应兴趣流ipip-prefixpath1index10permit100.1.1.132greater-equal32less-equal322、建立路由策略从R2方向来的路由route-policyAS_PATH_P2permitnode10 if-matchip-prefixpath1 applyas-path222333444additive......
  • BGP-本地始发的BGP路由优于从其他对等体学习到的路由
    本地始发的路由优先级:手动聚合>自动聚合>network>import>从对等体学到的1、最优先的手动聚合bgb100ipv4-familyunicastaggregate10.0.0.08detail-suppressed//手动聚合可以自己定义掩码//detail-suppressed是抑制细节,可以组织明细显示,如果没有此命令将显示明细2、次优是自动聚......
  • BGP选路-本地优先级local-preference
    本地优先级特性1)共有属性,默认值为1002)只能工作于IBGP邻居之间传递3)从EBGP邻居学到的BGP路由本地优先级属性默认不显示,但是默认值为100,从自身IBGP邻居学习到的是可以显示的,默认值为1004)数值越大越优先核心配置:1)抓取感应兴趣流ipip-prefix1index10permit100.1.1.024greater-e......