네임스페이스를 조사하라는 학교 과제가 있습니다.
이 모든 것에 대해 예제를 제시했지만 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 전에 두 번째 ns를 실행해도 도움이 되지 않습니다.
어떤 도움이라도 대단히 감사하겠습니다. 미리 감사드립니다.
답변1
SSH를 사용하여 이 작업을 수행하려면 (적어도) UTS 및 네트워크 네임스페이스를 생성해야 합니다(또는 다른 포트에서 SSH의 두 번째 복사본을 실행해야 함).
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를 사용하여 네임스페이스를 입력합니다. 바인딩 참조를 언로드하여 네임스페이스를 삭제합니다.