int1
및 와 같은 두 가지 인터페이스를 실행하는 가상화된 Linux 상자가 있습니다 int2
. int1
"NAT 네트워크"이며 int2
VirtualBox의 "호스트 전용" 어댑터입니다.
터미널에서 "google.com"을 ping하려고 하면 트래픽이 google.com에서 라우팅되기 때문에 int2
아무런 응답을 받지 못합니다 . 그러나 브라우저에서 "google.com"에 액세스하려고 하면 문제 없이 응답합니다.
터미널과 Firefox는 둘 다 간단한 애플리케이션이므로 Linux가 어떤 애플리케이션의 트래픽을 어떤 인터페이스를 통해 라우팅해야 하는지 어떻게 결정하는지, 그리고 이를 어떻게 변경할 수 있는지 알고 싶습니다.
추신: 만일을 대비해 Linux 상자는 실제로 Ubuntu 기반 운영 체제인 "Linux Backbox"입니다.
PPS: 게스트 OS에서 인터넷과 호스트 OS에 액세스하고 싶다면 브리지 연결을 할 수 있지만 이것은 제가 사용하고 있는 회사 컴퓨터이고 IT 부서가 네트워크를 검색하면서 돌아다니는 것을 원하지 않습니다. "유령" 호스트의 경우 Ghost Machine의 이름입니다(문자 그대로 "유령" :D).
답변1
Linux는 규칙과 라우팅을 사용하여 사용할 인터페이스를 결정합니다.
이러한 규칙은 패킷의 조건과 참조해야 하는 라우팅 테이블을 지정하며, ip rule show
iproute2를 사용하는 경우 이러한 규칙을 볼 수 있습니다. 대부분의 경우 이는 로컬 테이블, 기본 테이블, 기본 테이블을 순서대로 보는 것을 의미합니다.
라우팅 테이블에는 다음에 패킷을 보내야 하는 대상과 개체 목록만 포함되어 있습니다(패킷을 보내야 하는 인터페이스 포함). 이것기본라우팅 테이블은 을 사용하여 확인할 수 있습니다 ip route show
.
AFAIK Linux는 서로 다른 애플리케이션에 대해 서로 다른 경로를 사용하지 않습니다(동일한 네트워크 네임스페이스에 있고 이상한 iptables fwmarking 시스템이 없는 경우).