插入一个简单的套接字传输

主要观点

  • passtpasta是在主机上的层 2 网络接口和原生层 4 套接字(TCP、UDP、ICMP/ICMPv6 回显)之间实现的翻译层。
  • pasta用于网络命名空间,通过命名空间内的 tap 接口转发流量,无需在主机上创建更多接口,也不需要任何权限。
  • 二者都有各自的特点和功能,如passt在 guest 和 host 之间实现更薄的层,pasta为本地连接提供快速旁路路径等。
  • 介绍了它们在协议支持、可移植性、安全性、可配置性、性能、接口支持、可用性和服务提供等方面的情况。
  • 还包括了演示、持续集成、试用、贡献和安全漏洞报告等内容。

关键信息和重要细节

  • passt

    • 实现 guest 和 host 间的翻译层,TCP 适应无需 per-connection 数据包缓冲区。
    • 与 qemu 通过 UNIX 域套接字交换数据包,支持多种操作系统的官方和非官方包。
    • 可绑定到特定端口,动态绑定 UDP 临时端口,服务代理需先启动。
    • 支持多种协议,包括 TCP、UDP、ICMP/ICMPv6 等,IGMP/MLD 代理在开发中。
  • pasta

    • 类似slirp4netns,解决命名空间连接问题,提供本地连接的快速旁路路径。
    • 运行于任何近期 Linux 内核,自动检测和转发绑定端口。
    • 提供一些网络服务,如 ARP 代理、DHCP 服务器等,IPv6 可通过 SLAAC 分配地址。
    • 与 Podman 集成,可通过podman run --net=pasta使用。
  • 安全方面:

    • 无动态内存分配,不允许 root 操作在用户命名空间外,丢弃所有权限除CAP_NET_BIND_SERVICE
    • 具有限制性 seccomp 配置文件,有 AppArmor 和 SELinux 示例。
    • 进行静态检查,有 fuzzing 和 synflood 保护的计划。
  • 演示和试用:

    • 提供demo.sh脚本来演示使用,包括创建命名空间、配置网络等步骤。
    • 可从源代码构建或安装已有的包。
  • 贡献方面:

    • passt-devpasst-user邮件列表用于讨论和提交补丁。
    • 可在bugs.passt.top上提交 bug 和功能请求。
    • 可在 IRC 上的#passt频道交流。
    • 每周有开发会议,欢迎参与。
  • 安全漏洞报告:发送邮件至passt-sec@passt.top
阅读 8
0 条评论