
가상머신의 네트워크를 설정하는 방식은 크게 두가지가 있다.
1) NAT 방식
2) 브리지 방식
| 방법 | VM→호스트 | VM←호스트 | VM1↔VM2 | VM→Net/LAN | VM←Net/LAN |
|---|---|---|---|---|---|
| 호스트 전용 | + | + | + | – | – |
| 내부 | – | – | + | – | – |
| 브리지 | + | + | + | + | + |
| NAT | + | 포트 포워드 | – | + | 포트 포워드 |
| NAT 서비스 | + | 포트 포워드 | + | + | 포트 포워드 |
위 표를 보면 알 수 있듯이, 브리지 방식은 호스트와 가상머신, 가상머신간, 가상머신과 Net/LAN간의 통신 모두가 가능한 반면,
NAT 방식은 호스트나 네트워크/LAN으로 데이터를 보낼 수는 있지만 받을 수는 없고 (포트포워딩을 통해서만 가능하다) 가상머신간의 통신도 불가능하다.
이것은 두가지 방식의 작동원리의 차이에서 기인한다.
가상머신들은 부팅이 될 때 VirtualBox로 부터 DHCP를 사용해 IP 주소를 할당 받는다.
DHCP란Dynamic Host Configuration Protocol의 약자로 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜을 말한다.
DHCP프로토콜을 사용하면 네트워크에 사용되는 IP주소를DHCP서버가 중앙집중식으로 관리하며 네트워크 안의 컴퓨터에 자동으로 네임 서버 주소, IP주소, 게이트웨이 주소를 할당해준다.
이 때 NAT 방식을 사용하면 가상머신들이 그들만의 독립된 네트워크 안에 속해있는 것으로 가상화 되기 때문에 각각의 가상머신들이 별도의 설정이 없다면 동일한 IP 주소(10.0.2.15)를 할당 받는다.
즉, 가상머신들이 데이터를 전송하면 VirtualBox는 그 패킷을 호스트 PC가 보내는 패킷처럼 재작성하여 보낸다.
이러한 특성으로 인해 NAT 방식을 사용할 때 가상머신의 네트워크 연결상태는 Host의 네트워크 연결상태를 따르고, 외부에서 가상머신에 접근할 때 포트포워딩이 필요한 것이다.
포트포워딩(Port forwarding)은 간단히 말해서 특정한 포트로 들어오는 데이터 패킷을 다른 포트로 바꿔서 다시 전송해주는 작업이다.
즉,
외부IP:포트와내부IP:포트를 연결해 외부IP로 받은 요청을 내부IP로 보내주는 방식이다.

브리지 방식은 가상머신이 Host와 같은 네트워크에 존재하게 하고 싶은 경우 사용한다.
이 방식을 사용하면 가상머신은 Host PC와 동일한 네트워크에서 공인 IP를 할당받는다.
즉, 하나의 독립된 PC의 역할을 할 수 있게 된다.
그러므로 포트포워딩과 같은 별도의 설정 없이 IP 만으로 외부와 내부에 접근이 가능하다.
