[インターンレポート: RootlessコンテナのTCP/IP高速化 | by 松本直樹 | nttlabs | Feb, 2022 | Medium](https://medium.com/nttlabs/accelerating-rootless-container-network-29d0e908dda4)
[[Rootless Container]]
- Rootful なコンテナに比べて、Rootless なコンテナにおける対外通信が遅い
- Rootlessでは、特権がないため、vethが作成できない
- slirp4netns (コンテナ内→外部), rootlesskit (外部→コンテナ内) を利用した通信の中継
- lxc-user-nic による veth デバイスの作成(要SUID)
- > ホスト側のslirp4netnsデーモンはtapデバイスで受け取ったパケットを解釈して必要に応じてソケットの作成やconnect(2)、send(2) 等を行い、プロキシとしてパケットをホストから送信します
- 親と子のファイルディスクリプタ間でパケットのコピーを行うのが遅い
- bypass4netns による Rootless コンテナネットワーキングの高速化
- [GitHub - rootless-containers/bypass4netns: [Experimental] Accelerates slirp4netns using SECCOMP_IOCTL_NOTIF_ADDFD. As fast as `--net=host`.](https://github.com/rootless-containers/bypass4netns)
- 対外通信に利用するソケットのファイルディスクリプタをホスト側で確保したものに差し替える
- ホストが確保したソケットは直接外部と通信を行うことができる
- seccomp を利用したファイルディスクリプタの参照先の差し替え
- ioctl でカーネルに対して指示を出すと、ファイルディスクリプタが差し替えられます。