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

条件はいっしょで、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.

以下、環境説明。 が新マシン、 が別の Linux マシンで、 上に VMware の NAT で のネットワークがある。
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 for private network in NAT.

my PC /
Other PC

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

続けて、 で ssh して、port forward 先の に接続した際のキャプチャの絵。
Next, doing “ssh” from
The packets of ssh is forwarded to
No problem.

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

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.