본문
VirtualBox의 NAT, 내부 네트워크, NAT 네트워크
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페이지를 참고할 수 있다.
3. NAT 네트워크(Network Address Translation Service)
위의 NAT과는 다르게 NAT 네트워크에서는 마치 일반적인 공유기처럼 동작한다. 즉, 공유기에 연결된 시스템들을 하나의 네트워크상에서 동작하게 하고 내부 시스템들이 서로 통신하게 하며, 외부 시스템에서는 직접 내부에 접근하지 못하게 하는것이다. 마치 내부 네트워크와 NAT이 결합된 형태로 보면 된다. NAT 네트워크를 사용하는 가상머신들은 내부 네트워크에 연결되고 이 내부 네트워크와 NAT이 서로 연결되어있는것이다.
댓글