저는 별도의 네임스페이스를 사용하여 VPN 클라이언트를 실행함으로써 해당 네임스페이스에서 실행하는 모든 프로세스가 VPN을 통해 인터넷에 액세스할 수 있도록 하고 싶습니다. 이 부분을 성공적으로 완료했습니다.
하지만 일부 프로그램은 루프백 인터페이스(예: VPN을 사용하여 인터넷과 통신하려는 데몬, 컴퓨터의 공인 IP를 통해 액세스하려는 별도의 관리 인터페이스)를 통해 통신하며 서로 볼 수 없습니다. .
전역 네임스페이스와 동일한 루프백을 사용하도록 네트워크 네임스페이스를 구성하는 방법이 있습니까?
답변1
아니요, 이렇게 할 방법이 없습니다. 이는 네트워크 네임스페이스 분리의 개념을 무너뜨립니다. 이러한 분리를 "탈출"하는 유일한 방법은 veth 인터페이스입니다.
좀 더 자세히 말하면 네트워크 네임스페이스 간의 루프백 인터페이스를 어떻게든 "공유"하는 것만의 문제는 아닙니다. 각 네트워크 네임스페이스는 논리적으로 자체 라우팅, 방화벽 규칙 및 네트워크 장치를 갖춘 네트워크 스택의 또 다른 복사본입니다. 이 "공유"와 관련하여 어떤 라우팅 테이블과 방화벽 규칙이 적용됩니까? 서로 다른 네트워크 네임스페이스에서 동일한 TCP/IP 주소와 포트 번호를 바인딩하고 수신하는 여러 개의 서로 다른 프로세스가 있을 수도 있습니다. 그런 다음 어떤 프로세스가 들어오는 패킷을 수신하게 될까요? 이것은 근본적으로 작동하지 않습니다.
답변2
당신은 공유할 수 없습니다루프백또는 실제로 네임스페이스가 있는 모든 인터페이스. 하지만 당신은 만들 수 있습니다루프백인터페이스는 전역과 동일한 주소를 가지며 모두 독립적으로 작동합니다.
예를 들어
네임스페이스에 다음을 생성할 수 있습니다.
lo:11 Link encap:Local Loopback
inet addr:127.0.1.1 Mask:255.0.0.0
LOOPBACK MTU:65536 Metric:1
lo: Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
LOOPBACK MTU:65536 Metric:1