从IP数据包到HTTP:Oxy框架的多重面貌

💡 原文英文,约3400词,阅读约需13分钟。
📝

内容提要

本文介绍了Cloudflare的代理框架Oxy在OSI模型各层的操作,从处理原始IP数据包到应用层协议如HTTP和SSH。Oxy通过处理IP数据包支持Cloudflare One客户的流量扩展私有网络。它引入了IP隧道概念,为每个数据包关联上下文信息,并支持升级为TCP流。Oxy还能将TCP流升级为HTTP流,同时支持UDP流量。最后,Oxy将代理流量发送到上游目标,支持IP数据包、TCP/UDP套接字或直接的HTTP(S)形式下行。

🎯

关键要点

  • Cloudflare推出了基于Rust的代理框架Oxy,支持OSI模型各层的操作。
  • Oxy通过处理原始IP数据包来扩展Cloudflare One客户的私有网络。
  • 引入IP隧道概念,为每个数据包关联上下文信息,支持TCP流的升级。
  • Oxy能够将TCP流升级为HTTP流,同时支持UDP流量。
  • Oxy将代理流量发送到上游目标,支持IP数据包、TCP/UDP套接字或直接的HTTP(S)形式。
  • Oxy通过配置文件定义接收流量的入口,支持任意协议。
  • IP隧道确保每个IP数据包在其所属租户的范围内移动。
  • Oxy使用Unix SOCK_SEQPACKET传递上下文信息,确保数据包的可靠传输。
  • Oxy跟踪IP流,检测流的生命周期事件,支持Zero Trust原则和审计日志。
  • Oxy能够将IP流升级为TCP流,利用Linux内核的TCP协议实现。
  • Oxy通过NAT将原始IP数据包转换为TCP流,使用动态网络命名空间管理IP地址。
  • Oxy支持将TCP流升级为HTTP流,应用程序可以选择如何处理连接。
  • UDP流的处理与TCP类似,Oxy在用户空间中处理UDP数据包。
  • Oxy能够将TCP/UDP流降级回IP流,支持灵活的流量管理。
  • Oxy的设计允许在不同的OSI层之间灵活升级和降级流量。
  • Oxy的功能已在Cloudflare One Zero Trust和WARP中得到应用,经过大量用户测试。
➡️

继续阅读