memo

2015-07-08

systemd-nspawn と network いろいろ

systemd-nspawn で network に接続する方法いろいろまとめ。

ホストと共有 (default)

普通に実行するとコレ。 network namespace をホストと共有する。

  • ホストのネットワーク設定そのまま

  • ゲストで ss とかを見るとホストのサービスが何かいるのが見える。

  • ホストで ss とかを見るとゲストのサービスがそのまま見える。

veth (--network-veth)

ホストとの間に virtual ethernet link を作成する。 network namecpase はホストと分離される (暗黙で --private-network が有効になる) 。

  • ホスト側には ve-<コンテナ名> の device ができる。

  • ゲスト側には host0 の device ができる。

  • ゲストで DHCP でアドレスが取れる (ホスト側で DHCP の port 空けとく必要があるかも。)

  • systemd が --enable-libiptc でビルドされていれば、自動で NAT rule が追加され、 ゲストが外部と通信できるようになる。

bridge (--network-bridge)

指定された仮想 bridge に接続する。 network namecpase はホストと分離される。

  • ホスト側には vb-<コンテナ名> の device ができる。

  • ゲスト側には host0 の device ができる。

  • ブリッジは事前に作成しておく必要がある。 (systemd-networkd に作成させる方法)

  • DHCP とか NAT とかはブリッジの設定次第。