Packets may be sent from unexpected NIC on Multihomed Computer in Windows 7 and Windows Server 2008 R2

Applies to: Windows Server 2008 R2 DatacenterWindows Server 2008 R2 EnterpriseWindows Server 2008 R2 Foundation

Symptoms


Consider the following scenario:

• You have a client computer that is running Windows 7 or Windows Server 2008 R2.
• This computer has two network cards, NIC1 and NIC2.
• NIC1 belongs to a private segment, and the server that communicates with this client belongs to the same segment.
• NIC2 belongs to a public segment, and NIC2 has a default gateway setting.
• You start communicating to the server using WMIC command. Consider this command is continuously executed for a long time.

At first, the client computer sends packets from NIC1. After the server goes down, the client computer begins to send packets from NIC2.
Furthermore, even after the server wakes up again, this computer continues to send packets from NIC2.

Note: This problem doesn't occur in Windows 8 and Windows Server 2012.

Cause


This problem occurs because of a logic of timeout hander of destination cache. While a destination cache of the NIC2's route remains, that client computer does not stop sending packets from the NIC2.

Workaround


This problem does not occur if you configure one of the following settings before starting the communication with server.

• At the command prompt, type following command to register the static ARP record.
netsh interface ipv4 add neighbors "<interface name>" "<destination IP address>" "<destination MAC address>" store=persistent
• Disable NetBIOS over TCP/IP of NIC2.


If this problem has already occurred, you can resolve it using one of the following methods.

• At the command prompt, type "arp -d" command, and then press ENTER.
• At the command prompt, type "netsh interface ipv4 delete destinationcache", and then press ENTER.