pasta (Pack A Subtle Tap Abstraction)

Podmanのrootlessコンテナ向けに使われる、ユーザー空間ネットワークツール。「Pack A Subtle Tap Abstraction」の略で、passtプロジェクト(Plug A Simple Socket Transport)が提供する。旧来のslirp4netnsの後継として位置づけられ、Podman 4.4.1から利用可能になり、Podman 5.3以降はrootlessコンテナのデフォルトネットワークツールになっている。 #container #linux #network

仕組み

対象のnetwork namespace内にtapデバイスを作り、そこへの入出力をホスト側のL4ソケット(TCP/UDP)にマッピングすることで通信を成立させる。CAP_NET_RAWのようなケーパビリティを必要としない。

ローカルのTCP/UDP通信については、tapデバイスを経由せず直接L4ソケット同士をsplice(2)(TCP)やrecvmmsg/sendmmsg(UDP)でつなぐバイパス経路を持ち、パフォーマンスを稼いでいる。対応プロトコルはTCP・UDP・ICMP/ICMPv6 echo。

slirp4netnsとの違い

slirp4netnsはNAT越しに独自のネットワーク設定を作るのに対し、pastaはホストのIPアドレス・ルート・MTUをそのままコンテナのnamespaceに反映する(ホストのL2/L4状態をコンテナのL3 namespaceに「貼り付ける」イメージ)。NATを挟まない分パフォーマンスが高く、IPv6サポートや設定のシンプルさでも優位とされる。

設定

containers.conf(5)[network]セクションのpasta_optionsキーでデフォルトオプションを設定できる。

出典

作成日時: 2026-08-20 00:23 / 更新日時: 2026-08-20 00:23