从IP数据包到HTTP:Oxy框架的多重面貌
内容提要
本文介绍了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中得到应用,经过大量用户测试。