名前空間を調べる学校の課題があります。
これらすべてについて例を挙げましたが、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の場合は、システムコールのマニュアルページsetns
(man 2 setns
-http://man7.org/linux/man-pages/man2/setns.2.html#EXAMPLE)と使用中のコマンドのマニュアルページunshare
(man 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を使用して名前空間を入力します。バインディング参照をアンロードして名前空間を削除します。