ホストWindowsからUbuntu VMのUTSネームスペース(ホスト名ネームスペース)にSSHで接続する

ホストWindowsからUbuntu VMのUTSネームスペース(ホスト名ネームスペース)にSSHで接続する

名前空間を調べる学校の課題があります。
これらすべてについて例を挙げましたが、UTSのデモンストレーションは簡単ではありません。私はUTS名前空間がしばしば次の目的に使用されることを読んでいます。仮想サーバー管理目的(ローカルネットワークのコンピュータ名付け)のために、2つの異なるUTS名前空間に2つのSSHサーバーを置き、接続が「ssh user@hostnameinns1」と「ssh user @hostnameinns2」によって行われることを示したいと思います。 SSHサーバーはシステムの起動時に実行され、端末で次のことを行います。

$ sudo unshare -u
$ hostname hostnameinns2
$ service sshd start

私の実際の設定は、ポート22転送と「ブリッジモード」ネットワーキングを備えたWindows内のUbuntu仮想マシンです。 Windowsでは接続しますが、残念ながら最初のns(ソース/システム)にのみ接続し、非共有NSには接続しません。

ssh: Could not resolve hostname hostnameinns2: No such host is known.

また、$ service sshd stop最初のnsの前に2番目のnsを実行しても役に立ちません。

どんな助けでも大変感謝します。よろしくお願いします。

答え1

SSHを使用してこれを行うには(少なくとも)UTSとネットワークの名前空間を作成する必要があります(または別のポートでSSHの2番目のコピーを実行する必要があります)。

UTSの場合は、システムコールのマニュアルページsetnsman 2 setns-http://man7.org/linux/man-pages/man2/setns.2.html#EXAMPLE)と使用中のコマンドのマニュアルページunshareman 1 unshare-http://man7.org/linux/man-pages/man1/unshare.1.html#EXAMPLES)。

unshareマニュアルページによると:

# touch /root/uts-ns
# unshare --uts=/root/uts-ns hostname FOO
# nsenter --uts=/root/uts-ns hostname
FOO
# umount /root/uts-ns

永続UTS名前空間を作成し、ホスト名を変更します。次に、nsenterを使用して名前空間を入力します。バインディング参照をアンロードして名前空間を削除します。

関連情報