VirtualBox에서는 다양한 네트워킹 모드를 제공한다. 그중에서 NAT과 NAT 네트워크가 있는데 이 둘의 차이를 좀 더 상세히 알아보고자 한다.(+내부 네트워크) 참고로 NAT 네트워크는 13년 12월에 출시된 VirtualBox v4.3에서부터 제공되는 기능으로 NAT보다 조금 더 활용성이 높은 네트워킹 모드이다. 대신 조금 더 손봐야 하는게 있어서 '간단하게 인터넷만 되면 좋겠다' 하면 NAT 네트워크 대신 NAT을 사용하는게 더 편하다.

 

1. NAT

NAT 환경에서 가상머신을 구동하면 실제 컴퓨팅 환경과 동일한 방법으로 라우터에 연결되게 된다. 단, 이때 라우터는 VirtualBox 네트워킹 엔진의 일부로써, '각각의' 가상 머신과 호스트 사이에 위치하며 이로써 가상 머신간의 통신은 지원하지 않는다. (가상머신마다 독립적인 NAT 라우터와 1:1로 연결되어 있다고 생각할 수 있다.)가상 머신에서 발송된 패킷은 네트워킹 엔진에 의해 처리되는데, 이 과정에서 마치 네트워킹 엔진(호스트IP:네트워킹엔진Port)과 서버간의 통신이 이루어지는것으로 보이게 된다. 

 

네트워킹 엔진은 또한 DHCP 서버 기능도 찹재하고 있는데, 기본적으로 10.0.x.0/24 대역을 사용하고, 이때 x는 (NAT 인터페이스+2)로 정의된다. 첫번째 NAT 인터페이스에 대해서는 10.0.2.0/24를 네트워크 대역으로 사용한다는 것이다. 이때 gateway는 10.0.2.2, name server는 10.0.2.3이 될 것이다. 그리고 두번째 인터페이스는 10.0.3.0/24를 가질것이다. 만약 이러한 기본대역을 변경하고 싶다면 9.11. Fine-tuning the VirtualBox NAT engine 페이지를 참고할 수 있다.

 

또한 다음과 같은 제한사항이 있으므로 참고해야 한다.

  • ICMP protocol limitations
    - 단 ping은 동작
  • Receiving of UDP broadcasts is not reliable
    - in order to save resources, it only listens for a certain amount of time after the guest has sent UDP data on a particular port.
  • Protocols such as GRE are unsupported 
    - Protocols other than TCP and UDP are not supported.
  • Forwarding host ports < 1024 impossible
    - if you try to configure such a port forwarding, the VM will refuse to start.

 

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

가상머신이 외부와 통신할 수 있는 방법중의 하나로 내부 네트워크가 있다. 하지만 이름에서 알수있듯, 동일한 내부네트워크 내의 가상머신들간의 통신을 지원하지 그 외부와는 통신을 할 수 없다. 물론 '브리지 어댑터'도 내부 네트워크 내의 가상머신들간의 통신을 지원하는데 차이점은 외부 네트워크와 통신을 할 수 있다는 점이다. 브리지 어댑터는 가상머신이 돌아가는 호스트상의 인터페이스에도 연결되기 때문에 호스트에서 브리지 어댑터에 연결된 가상머신들의 패킷들을 스니핑(Sniffing)할 수 있다. 내부 네트워크는 이에 대비되어 호스트에서도 내부적으로 발생하는 트래픽들을 들여다 볼 수 없는 장점이 있다.

 

모든 내부 네트워크는 이름으로만 구분된다.동일한 내부 네트워크를 갖는 두개이상의 가상 네트워크가 존재하게 되면 VirtualBox에서는 자동적으로 이들을 서로 엮어주고 마치 내부 스위치처럼 동작하게 된다. 브로드캐스드, 멀티캐스트 프레임 뿐 아니라 무차별 모드(Promiscuous mode)도 제공한다. 물론 가상머신내에서 IP를 지정해줄수도 있겠지만 원한다면 VirtualBox의 DHCP서버를 사용할 수도 있으며 관련해서는 8.34 VBoxManage dhcpserver페이지를 참고할 수 있다.

 

다운로드1.png

 

 

 

3. NAT 네트워크(Network Address Translation Service)

위의 NAT과는 다르게 NAT 네트워크에서는 마치 일반적인 공유기처럼 동작한다. 즉, 공유기에 연결된 시스템들을 하나의 네트워크상에서 동작하게 하고 내부 시스템들이 서로 통신하게 하며, 외부 시스템에서는 직접 내부에 접근하지 못하게 하는것이다. 마치 내부 네트워크와 NAT이 결합된 형태로 보면 된다. NAT 네트워크를 사용하는 가상머신들은 내부 네트워크에 연결되고 이 내부 네트워크와 NAT이 서로 연결되어있는것이다.

 

다운로드2.png

 

번호 제목 sitelink1 글쓴이 날짜 조회 수
243 Windows 11 Pro 환경의 WSL2(Windows Subsystem for Linux 2)에서 X11(그래픽 앱)을 실행   황제낙엽 2026.01.06 2672
242 경로 관련 별칭(alias)   황제낙엽 2025.12.19 2556
241 macOS 에서 finder 로 숨김 디렉토리, 파일을 조회   황제낙엽 2025.09.26 1654
240 특정 폴더 제외하고 가장 최근에 생성된 폴더 이름 가져오는 shell file 만들기   황제낙엽 2025.07.28 2592
239 [Copilot] WSL2 Ubuntu 실행 방식과 차이점   황제낙엽 2025.06.09 2569
238 [Gemini] docker pull 로 다운받은 ubuntu 이미지를 portainer 로 실행하여 접속   황제낙엽 2025.06.02 2582
237 Windows 11 Pro -> WSL2 (Ubuntu) -> Docker -> Portainer   황제낙엽 2025.05.30 2731
236 윈도우 11 설치 USB 만들기 가이드 https://blog.naver.com/cjs0308cjs/223694056158  황제낙엽 2025.01.10 3998
235 [bard] docker로 실행한 container에 터미널로 접속   황제낙엽 2024.02.01 3675
234 [2023. 11. 6.] 데이터베이스, GUI 클라이언트 환경의 Docker Compose 모음 https://blog.pages.kr/2819  황제낙엽 2024.01.29 3836
233 Docker Compose 문법 정리 (YAML)   황제낙엽 2024.01.29 3384
232 Docker Compose 명령어(실행,중지,삭제) https://docs.docker.com/compose/reference/  황제낙엽 2024.01.28 3859
231 Docker Compose 에 대한 이해와 사용법에 대한 포스팅 모음 https://docs.docker.com/compose/gettingstarted/  황제낙엽 2024.01.26 4095
230 Kubernetes 와 Docker 의 관계   황제낙엽 2024.01.26 3042
229 docker 를 windows 에서 실행하는 방법 3가지 정리   황제낙엽 2024.01.23 3752
228 windows + docker 설치에 대한 포스팅 모음   황제낙엽 2024.01.22 3547
227 윈도우 10 실행키 입력 명령어 목록 (Windows + R) https://haenny.tistory.com/217  황제낙엽 2023.07.12 7557
226 윈도우 10 "원격 데스크톱"의 "컴퓨터 목록" 정보 저장 위치 (from Bing)   황제낙엽 2023.07.11 4012
225 compress this drive to save disk space (이 드라이브를 압축하여 디스크 공간 절약)   황제낙엽 2023.05.09 4234
224 명령어 모음   황제낙엽 2023.05.06 3666