2012년 10월 30일 화요일

VMware 의 NAT 설정과 패킷캡쳐시 promiscuous 모드 설정

VMware 의 NAT 기능을 이용하면서 네트워크 설정에 문제를 겪는 분들이 있어 내용을 공유하고자 한다. NAT 설정을 있는 그대로 사용하면 크게 문제는 발생하지 않는데, 자체적으로 IP 를 설정하는 경우 네트워크 통신이 안되는 경우가 발생한다. 이런 경우는 가상 머신에 설정된 IP 대역과 호스트쪽 네트워크 인터페이스 내용이 일치 하지 않아 나타나는 경우가 많다. 즉, 가상머신 IP 는 바꾸었지만 호스트쪽은 이전에 설정된 내용 그대로 이용하면서 네트워크가 안되는 경우다.

리눅스 사용자라면 다음의 경로로 들어가 보자. 윈도우 사용자도 리눅스 경우와 크게 다르지 않다. (가상 머신에 설정된 IP 와 호스트에서 이용하는 NAT 어뎁터를 살펴보자)

# cd /etc/vmware

# ls -l
total 24
-rw-r--r-- 1 root root  226 2012-08-23 10:44 bootstrap
-rw-r--r-- 1 root root  526 2012-08-24 09:50 config
lrwxrwxrwx 1 root root   19 2012-08-23 10:44 icu -> /usr/lib/vmware/icu
lrwxrwxrwx 1 root root   56 2012-08-23 10:45 installer.sh -> /usr/lib/vmware-installer/2.0/vmware-uninstall-downgrade
-rw-r--r-- 1 root root   54 2012-08-23 10:45 locations
-rw-r--r-- 1 root root  462 2012-08-23 11:37 networking
drwxr-xr-x 3 root root 4096 2012-08-23 10:44 vmnet1
drwxr-xr-x 4 root root 4096 2012-08-23 10:44 vmnet8

vmnet8 이 보일 것이고 바로 기본 설정되는 이 vmnet8 이 NAT 로 이용되는 인터페이스 이다.
# cd vmnet8 
# ls -l
total 12
drwxr-xr-x 2 root root 4096 2012-08-24 11:00 dhcpd
drwxr-xr-x 2 root root 4096 2012-08-23 11:39 nat
-rw-r--r-- 1 root root   18 2012-08-24 11:10 nat.mac

nat 설정파일을 한번 들여다 보자.


# more nat

# VMware NAT configuration file

[host]

# NAT gateway address
ip = 192.168.70.1
netmask = 255.255.255.0

# VMnet device if not specified on command line
device = /dev/vmnet8

NAT gateway 주소 설정이 보인다. 여기에 설정된 IP 는 다를 것이고, 본인이 원하는 특정 IP 주소를 (여기서는 192.168.70.X 대역 이용) 기록해 주면 된다. 설정파일을 변경한다고 바로 적용되지는 않는다. VMware 네트워크를 재 시작해 주거나 또는  ifconfig 를 통해 vmnet8 의 IP 를 주소를 바꿔주면 된다. 다음은 ifconfig 로 IP 를 변경하고 ifconfig 로 살펴본 내용으로 vmnet8 의 주소가 192.168.70.1 이 되었다. 가상머신에서 192.168.70.X 로 설정하고 게이트웨이 주소를 192.168.70.1 로 잡아주면 네트워크는 잘 될 것이다.

# ifconfig vmnet8
vmnet8    Link encap:Ethernet  HWaddr 00:50:56:c0:xx:xx
          inet addr:192.168.70.1  Bcast:192.168.70.255  Mask:255.255.255.0
          inet6 addr: fe80::250:56ff:fexx:x/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:235 errors:0 dropped:0 overruns:0 frame:0
          TX packets:100 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

가상머신에서 와이어샤크를 이용해 패킷 덤프를 하는 경우 아래 그림과 같은 메시지가 나타날 수 있다. 보안상의 이유로 이더넷 인터페이스에 promiscuous 모드를 설정할 수 없다는 것이다.


이에 대한 해결책으로는 해당 디바이스의 퍼미션을 변경해 주면 된다.

# ls -l /dev/vmne*
crw------- 1 root root 119, 0 2012-08-24 10:13 /dev/vmnet0
crw------- 1 root root 119, 1 2012-08-24 10:13 /dev/vmnet1
crw------- 1 root root 119, 8 2012-08-24 10:13 /dev/vmnet8

/dev 밑에 vmnet* 이라는 문자열들을 볼 수 있고, NAT 에서 사용하는 /dev/vmnet8 에 rw 퍼미션을 추가해 주면 된다.

# chmod a+rw /dev/vmnet8
# ls -l /dev/vmne*
crw------- 1 root root 119, 0 2012-08-24 10:13 /dev/vmnet0
crw------- 1 root root 119, 1 2012-08-24 10:13 /dev/vmnet1
crw-rw-rw- 1 root root 119, 8 2012-08-24 10:13 /dev/vmnet8

rw 퍼미션이 추가된 후에는 패킷캡쳐 동작시 위와 같은 메시지는 다시 나타나지 않는다.


[참고]
1. Using Virtual Ethernet Adapters in Promiscuous Mode on a Linux Host
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=287

댓글 없음:

댓글 쓰기