主要观点:
passt
和pasta
是在主机上的层 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 保护的计划。
- 无动态内存分配,不允许 root 操作在用户命名空间外,丢弃所有权限除
演示和试用:
- 提供
demo.sh
脚本来演示使用,包括创建命名空间、配置网络等步骤。 - 可从源代码构建或安装已有的包。
- 提供
贡献方面:
- 有
passt-dev
和passt-user
邮件列表用于讨论和提交补丁。 - 可在
bugs.passt.top
上提交 bug 和功能请求。 - 可在 IRC 上的
#passt
频道交流。 - 每周有开发会议,欢迎参与。
- 有
- 安全漏洞报告:发送邮件至
passt-sec@passt.top
。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。