본문 바로가기
정보기술/가상화

VMware Server 2.0.2 NAT 문제 on Windows 7 및 해결 방법

by fermi 2010. 6. 4.
2009년 10월에 출시된 VMware Server 2.0.2 는 Windows 7 이 발표된 이후에 출시된 버전이지만 아직 Windows 7을 host OS로 사용할 때 발생하는 NAT 문제 (ping 을 제외한 인터넷이 guest OS에서 작동하지 않는다) 가 해결되지 않았다.

참고로 VMware Server 와 WMware ESXi 는 무료로 라이센스를 배포한다. 두 제품의 차이는 Host OS위에서 작동하는 것과 OS없이 독립적인 Hypervisor로 작동하는 것.

Windows 7 에서 WMware 2.0의 NAT 가 제대로 작동하지 않는 문제의 증상은 다음과 같다.
- 외부에서 들어오는 네트워크 요청 (inbound) 의 port forwading 은 정상적으로 작동하여 서버 프로그램의 운영은 가능
- 외부로 나가는 ping을 제외한 모든 outbound 프로토콜이 작동하지 않아서 guest OS에서 정상적으로 인터넷을 사용하지 못함

검색 결과 Windows 7 을 host OS로 사용할 경우 발생하는 VMware Server 2.0 의 NAT 문제에 대한 포스팅이 다수 발견되었으나 단 한 개의 포스팅 만이 해결 방법을 제시하고 있다. (아래 박스 참조)

Windows 7 - VMWare Server NAT problem
from Windows Seven Forum
http://www.sevenforums.com/virtualization/3850-vmware-server-nat-problem.html

Windows 7 - both X-64 and X-86 NAT Broken
from VMware Communities
http://communities.vmware.com//message/1234305#1234305

Windows 7 Internet Connection Sharing problem with VMware Server 2
from techarena
http://forums.techarena.in/networking-security/1324174.htm

fixing VMWare NAT problems on Windows 7
from florianlr's blog
http://florianlr.wordpress.com/2009/07/09/5/

보고되 해결 방법은 Windows 7의 네트워크 공유 기능을 사용하고 Windows 7에 내장된 ICS의 NAT를 사용하는 것이나, 작동하는 경우도 있고 문제가 생기는 경우도 있다. (위 florianlr's blog의 posting을 참조) 이 방법은 완벽한 해결 방법이 아니며, 실제 테스트 결과 물리적 NIC가 여러 개 일때 심각한 문제 (간혹 작동하기도 하지만, 전체 시스템의 네트워크가 먹통이 되는 문제) 가 발생하여 무시하는 편이 시간 절약에 도움이 되리라...

고심 끝에 생각해 낸 방법은 다음과 같다. 요약하자면 inbound 와 outbound 를 다른 네트워크를 사용하는 것이다. 실험 결과 만족할 만한 신뢰도 및 안정성을 보여주고 있다.

추천하는 해결 방법 - Best Solution


- VM 하드웨어에 2개의 NIC 설정 (1: Bridged, 2: NAT)
- Guest OS에서 NIC 우선순위 (interface metric) 설정 (1: Bridge, 2: NAT)

 또 다른 해결방법으로 (보다 확실한 방법) VMware의 하드웨어 설정에서 NIC를 하나 더 잡고 하나는 NAT 나머지 하나는 Bridged로 설정하여 NAT는 inbound, Bridged는 outbound 용도로 사용하면 inbound는 VMware의 NAT 설정을 따르고, 문제가 되던 outbound는 Bridged 네트워크를 통해서 정상 작동할 수 있다. 다만 이 경우는 Bridged network에 할당할 여분의 IP 리소스가 필요하다. 또한 guest OS에서 NAT와 Bridged network의 순서를 지정해야 한다. Ubuntu에서는 Bridged network을 첫 번째 NIC로 먼저 잡아 주고, NAT를 두번째로 잡아주면 우선 순위가 Bridged에 먼저 할당되어 outbound가 정상적으로 작동하였다. Windows 계열의 Guest OS에서는 Advanced TCP/IP Setting 에서 Interface metric을 수동으로 설정할 수 있다. (ex: Bridged에 1, NAT에 2를 설정)

Windowx 7의 Interface metric 설정

<Windowx 7의 Interface metric 설정>


이와 같이 interface metric을 설정하게 되면, outbound의 네트워크 연결은 우선순위에 따라 bridged network (interface metric: 1) 을 통하여 연결되어 WMware Server 의 NAT를 우회하므로 문제가 발생하지 않게 된다. 반면 inbound의 네트워크 연결은 host OS의 IP주소를 통하여 요청되므로 WMware server의 NAT를 통하여 guest OS의 NAT network (interface metric: 2) 으로 넘겨지게 되어, WMware server의 NAT 설정을 그대로 사용할 수 있는 장점이 있다.

<추가> Ubuntu 64bit 을 guest OS로 사용하는 환경에서 NAT 가 정상적으로 작동하지 않는 문제점을 발견.

<VMware 2.0.2>