2011/11/01 (火)

VMware 話、続きます。

2011-11-01:When NAT is used Guest OS can’t setup TCP connection but UDP is ok

昨日の続き。Google で検索したら、vmware community の投稿がひっかかった。
Searching Google, I found an article in vmware community page.

When NAT is used Guest OS can’t setup TCP connection but UDP is ok
http://communities.vmware.com/thread/286162

一年前の記事だ。。。
条件はいっしょで、VMWare Server 2 on Windows7 64bit に NAT 接続の Guest を用意した際に UDP は通るが TCP が飛ばない、という。
ただ、外からの TCP が通ることは書かれてない。
It was written one year ago…
The condition is the same. It says that using VMware Server 2 on Windows7 64bit edition, guest OS can’t setup TCP connection but UDP packet goes through.
But it is not mentioned that TCP connection to Guest OS from outside is OK.

既知の問題なのねー、と思いつつ、せっかくなのでパケットキャプチャーして調べてみることに。
以下、環境説明。192.168.20.61 が新マシン、192.168.20.62 が別の Linux マシンで、192.168.20.61 上に VMware の NAT で 192.168.91.0/24 のネットワークがある。
I know it is not new issue though, let’s try to capture network packets.
My network is in below: my PC has vmnet8 for NAT and has 192.168.91.0/24 for private network in NAT.

my PC 192.168.20.61 / 192.168.91.2
guest 192.168.91.4
Other PC 192.168.20.62


まずは問題なく通る UDP のキャプチャの絵。
ふつーに外の NTP server と通信ができている。
At first, captured image of UDP.
It is no problem, able to communicate with NTP server in the internet.



続けて、192.168.20.62 で ssh 192.168.20.61 して、port forward 先の 192.168.91.4 に接続した際のキャプチャの絵。
こちらも問題なく通信ができている。
Next, doing “ssh 192.168.20.61” from 192.168.20.62.
The packets of ssh is forwarded to 192.168.91.4.
No problem.



そして、いよいよ通信できない Guest から外へのキャプチャの絵。
むむむ。。。
Finally, uncommunicatable TCP connection from Guest to outside.
mmm…

SYN に対する SYN ACK がない! / No SYN ACK for SYN !!

3way handshake のしょっぱなでこけてるじゃないですか。そりゃつながらんだろう。
It fails at the begining of 3way handshake. Oh yes, it can’t setup connection.

おそらく vmnet8 のソフトウェア的なミスで、SYN ACK が迷子になっているか、出せていないんでしょうね。
キャプチャーしたところで自力解決できそうな感じのものは出てきてないわけですが、まぁ少しは様子が分かりました。
とりあえず、どうにもならんですな。
I think there are some software bugs that block or lost SYN ACK packet in vmnet8.
And I know that I can’t find any clue to solve the problem by myself.

comment