2015. 7. 20. 16:09

Virtual Box 네트워킹 모드 - Network Address Translation(NAT)


- 가상 머신에서 외부 네트워크에 접근하는 가장 간단한 방법

- 호스트 네트워크와 게스트 시스템 상에서 어떤 구성도 필요하지 않음

- 이러한 이유로 Virtual Box에서 디폴트로 설정됨

- 진짜 컴퓨터와 같이 라우터를 통해 인터넷에 연결

- 이 경우에 라우터는 Virtual Box  네트워킹 엔진

- 이 라우터는 각각의 가상 머신과 호스트 사이에 위치

이 구분은 가상 머신끼리 서로 통신하지 않기 때문에 보안이 최대화

- 단점 : 가상 머신은 외부로부터 보이지도 않고 접근할 수도 없음

         => 따라서 이 방식으로는 서버를 운영할 수 없음

- 가상 머신은 Virtual Box에 통합된 DHCP 서버로부터 개별 네트워크 상의

   네트워크 주소와 구성을 받는다.

- 따라서 가상 머신에 할당된 IP 주소는 보통 호스트보다 

  완전히 다른 네트워크 상에 있다

- ex) 가상 머신에 하나보다 많은 카드가 설정 되어 있을 때

       첫 번째 카드는 10.0.2.0이라면, 두 번째 카드는 10.0.3.0 등으로 연결된다


* NAT 한계

- NAT의 4가지 한계가 있는데 이것은 사용자들이 알아야 한다.


1.  ICMP 프로토콜 한계 : 자주 사용되는 네트워크 디버깅 툴은(ping or tracerouting)

                                메시지를 보내고 받는데에 ICMP 프로토콜에 의존한다

                                ICMP 지원이 Virtual Box 2.1부터 개선되었지만, 

                                일부 다른 도구들은 신뢰적으로 작동하지 않을 수 있다.


2. UDP 브로트캐스트를 받는 것이 신뢰할 수 없음

  - 게스트가 특별한 포트 상에서 UDP 데이터를 보낸 후에 

    리소스를 저장하기 위해서 일정시간 동안 오직 리슨을 하기 때문에 

    게스트가 브로드캐스트를 확실히 받을 수 없다. 


3. GRE와 같은 프로토콜이 지원 안 됨

  - TCP와 UDP 말고 다른 프로토콜은 지원이 안 된다


4. 1024 미만의 호스트의 포트를 보내는 것은 불가능함

  - root에서 실행되지 않는 응용프로그램은 

    1024 이하의 포트를 묶는 것은 불가능하다

  - 그 결과 그러한 포트 전송을 구성하기를 시도하면 가상 머신은 시작을 안 한다.

  - ex) NFS 는 포트 번호가 1024 미만이기 때문에 

    서버는 연결을 거절하는 구성을 취한다