pptp で systemd-nspawn を使用するにはどうすればいいですか?

pptp で systemd-nspawn を使用するにはどうすればいいですか?

コンテナがネットワーク インターフェイスにのみ VPN を使用するように設定したいと思います。

私は を使用しpptpsetupponpptp 接続を機能させ、ppp0インターフェイスを取得しました。

ここで、systemd-nspawn コンテナ内のすべてのインターネット接続を を経由するようにしますppp0

どうすれば動作させることができますか?

答え1

systemd-nspawn --network-interface=ppp0

ppp0 はホストの名前空間から消えます。コンテナと 1 つの IP アドレスを共有し、他の IP アドレスを共有しないということはできません (NAT を実行する場合を除く)。

ただし、これには非常に最近のカーネルが必要になる可能性があるようです。 http://www.spinics.net/lists/netdev/msg339236.html

または (マシンは ppp0 の後に作成されます):

systemd-nspawn --private-network

ip link set dev ppp0 netns $PID

ここで、$PIDはコンテナ内のプロセスのホスト名前空間のpidであり、次のように取得されます。

P=$(machinectl $MACHINE_NAME show --property=Leader)
PID=${P#Leader=}

そして、オプション$MACHINE_NAMEに渡される値は-Msystemd-nspawn

関連情報