DevTools/VM

[VM] VirtualBox 네트워크 인터페이스

신짱구개발자 2025. 2. 15. 20:56
더보기

1. VirtualBox 네트워크 인터페이스 종류

2. NAT (Network Address Translation)

3. 브리지 어댑터 (Bridged Adapter)

4. 내부 네트워크 (Internal Network)

5. 호스트 전용 어댑터 (Host-Only Adapter) 

VM을 자주 사용하지만, 네트워크 인터페이스에 대해서는 얕게 알고 있는 것 같아 정리한다. VirtualBox에서는 VM이 네트워크에 연결되는 여러 가지 방식을 제공한다. 

VirtualBox 네트워크 인터페이스 종류

  1. NAT(Network Address Translation)
  2. NAT 네트워크 (NAT Network)
  3. 브리지 어댑터 (Bridge Adapter)
  4. 내부 네트워크 (Internal Network)
  5. 호스트 전용 어댑터 (Host-Only Adapter) 

1. NAT (Network Address Translation)

NAT은 인터넷 연결이 필요하지만 외부에서 VM에 접근할 필요가 없는 경우 사용된다. VM에서 기본적으로 사용하는 방식이다. 

  • VM이 호스트의 네트워크를 공유하여 인터넷에 접속한다. 
    • NAT은 호스트 네트워크를 공유하면서도 자체적인 가상 네트워크(10.0.2.x)를 사용하는데, 그 이유는 다음과 같다. 
      • VM을 호스트 네트워크와 직접 연결하지 않음으로써 보안을 강화 
      • IP 충돌을 방지
        • 예를 들어, 호스트 네트워크가 192.168.1.x 대역을 사용한다고 가정하면 VM이 직접 이 네트워크를 사용하면 동일한 IP를 할당받아 충돌이 발생할 가능성이 있다.
        • VirtualBox는 VM마다 고유한 사설 네트워크를 생성(10.0.2.x)함으로써 이런 문제를 방지하는 것이다. 
      • VM을 외부에서 접근할 수 없도록 차단(기본적으로 방화벽 역할)
        • 사용자가 직접 포트 포워딩을 통해서만 가능하다. 
  • 외부에서 VM으로 직접 접속이 불가능하다. 
  • 외부에서 VM으로 접속하려면 호스트에서 포트 포워딩을 설정하면 된다. 

왜 VirtualBox는 NAT 모드에서 자체 가상 네트워크(10.0.2.x)를 사용할까?

NAT은 호스트 네트워크를 공유하면서도 자체적인 가상 네트워크(10.0.2.x)를 사용하는데, 그 이유는 다음과 같다. 

  • VM을 호스트 네트워크와 직접 연결하지 않음으로써 보안을 강화 
  • IP 충돌을 방지
    • 예를 들어, 호스트 네트워크가 192.168.1.x 대역을 사용한다고 가정하면 VM이 직접 이 네트워크를 사용하면 동일한 IP를 할당받아 충돌이 발생할 가능성이 있다.
    • VirtualBox는 VM마다 고유한 사설 네트워크를 생성(10.0.2.x)함으로써 이런 문제를 방지하는 것이다. 
  • VM을 외부에서 접근할 수 없도록 차단(기본적으로 방화벽 역할)
    • 사용자가 직접 포트 포워딩을 해야만 외부에서 접근이 가능하다. 

NAT 모드에서의 인터넷 연결

아래와 같은 과정으로 VM 입장에서는 마치 공유기를통해 인터넷을 사용하는 것처럼 보인다.

  1. 예를 들어, VM이 10.0.2.15 IP를 할당 받음
  2. VM이 인터넷에 접속하려 하면, VirtualBox의 NAT 엔진(10.0.2.2)이 가로채서 호스트의 네트워크를 통해 요청을 보냄
  3. 외부 서버(Google, YouTube 등)는 이 요청을 호스트의 IP 주소로 인식하고 응답을 보냄
  4. NAT 엔진이 다시 응답을 가로채서 VM(10.0.2.15)에게 전달함

2. NAT 네트워크 (NAT Network)

여러 VM이 같은 NAT 네트워크에서 통신해야 할 경우 사용된다.  

  • NAT과 유사하지만, 동일한 NAT 네트워크에 속한 VM 끼리는 통신 가능하다. 
  • 외부에서 VM으로 직접 접속이 불가능하다.
  • 여러 VM이 내부적으로 통신하면서 인터넷을 사용해야할 때 유용하다.

3. 브리지 어댑터 (Bridged Adapter)

VM이 실제 네트워크에 물리적 컴퓨터처럼 연결되어야 할 경우 사용된다.

  • VM이 물리적 네트워크에 직접 연결된다. 
  • 물리적 네트워크에서 실제 컴퓨터처럼 동작하며, DHCP 서버로부터 IP할당받을 수 있다. 
  • VM을 독립적인 네트워크 장치로 사용해야할 때 유용하다.
    • 특히, VM을 서버로 쓰거나 독립적인 PC 환경에서 테스트가 필요할 경우

4. 내부 네트워크 (Internal Network)

VM 간의 네트워크 통신만 필요할 경우에 사용된다. 외부 연결은 불가능하다. 

  • 같은 내부 네트워크를 사용하는 VM들끼리만 통신이 가능하다. 
  • 인터넷 및 호스트와의 통신이 불가능하다. 
  • 여러 VM 간의 독립적인 네트워크 환경이 필요할 때 유용하다. 

5. 호스트 전용 어댑터 (Host-Only Adapter) 

VM과 호스트 간의 네트워크 연결만 필요할 경우 사용된다. 외부 연결은 불가능하다. 

  • VM과 호스트 컴퓨터만 통신 가능하다. 
  • 외부 네트워크 및 인터넷과는 연결되지 않는다. 
  • 호스트와 VM 간 데이터 공유가 필요할 때 유용하다.