네트워크 네임스페이스(비)격리?

네트워크 네임스페이스(비)격리?

저는 Linux와 네트워킹에 관해 연구를 하다가 네임스페이스를 발견했습니다. 기사를 읽고 설정 방법을 배운 후 혼란스러워졌습니다.

내 시스템에 응용 프로그램이 설치되어 있고 이를 전역 네임스페이스(네임스페이스 없음)에서 실행할 때 호스트의 IP 주소를 사용하여 LAN에서 웹 GUI에 연결할 수 있습니다. 이제 네임스페이스를 생성할 때 가상 어댑터를 생성하거나 다른 작업을 수행하기 전에 네임스페이스에서 애플리케이션을 열면 동일한 IP를 사용하여 LAN에서 계속 연결할 수 있습니다.

서비스를 시작하는 데 사용하는 명령은 다음과 같습니다.

sudo ip netns exec blue service *application* start

내가 이해한 바에 따르면 "네트워크" 네임스페이스는 프로세스를 격리해야 한다는 것입니다. 그렇다면 내가 무엇을 놓치고 있는 걸까요?

그런데 저는 보통 네임스페이스에 다음 지시문을 사용합니다.

Linux 네트워크 네임스페이스 소개.

답변1

그렇다면 내가 무엇을 놓치고 있는 걸까요?

당신이 놓치고 있는 것은 본질적으로 네트워크 네임스페이스를 이스케이프하는 service와 통신하는 것 입니다. init애플리케이션은 기본적으로 init 시스템과 동일한 네트워크 네임스페이스에서 실행됩니다.

본질적으로 문제는 응용 프로그램 데몬 바이너리(네임스페이스를 유지하는) 에만 국한되는 것이 service아닙니다 . 대신, 단순히 Unix 도메인 소켓을 통해 매개변수를 전달합니다. 또한 보안 컨테이너는 이러한 일이 발생하지 않도록 파일 시스템을 격리합니다.forkexecinit

나는 애플리케이션 데몬 바이너리를 직접 호출해 볼 것입니다( ip netns exec [namespace]물론 아래 참조). 아니면 실제 컨테이너 소프트웨어를 사용하거나 다른 사람들이 이미 모든 까다로운 세부 사항을 해결했습니다...

관련 정보