Seems like my Windows 7 box (with 2 NICs if that's relevant) requires an ARP response before it sends packets to a certain IP address. The specific context I'm in is running a TFTP server (TFTPD32). The server hears the request, sends out an ARP request, but never sends a response to the TFTP client, presumably because the client doesn't respond to ARP (I can't change that unfortunately). Is there a work around to this miserable situation? This "just worked" on previous versions of Windows.

  • Windows 7 doesn't accept the source mac/IP in the clients initial TFTP packet and add that to its ARP table? Do you have some sort of static route pointing the client IP out the other interface on your Windows 7 machine? – cpt_fink Mar 6 '13 at 4:30
  • @cpt_fink that's right, Windows 7 doesn't register a new ARP entry (or update an existing one) on the initial RRQ (as insane as that sounds) – vicatcu Mar 6 '13 at 15:59

I don't see how it could have ever worked if the client doesn't respond to ARP. You can't send packets to the IP address without knowing the MAC address, and that's where ARP comes in. If the client doesn't respond to ARP then it's broken.

  • if all you ever do is respond to messages, you can get the destination MAC from the incoming packet... – vicatcu Mar 6 '13 at 15:53
  • Software programs should follow standards, not implement their own methods for performing various tasks. ARP MUST be used to resolve IP addresses to MAC addresses. Retrieving the MAC address from an incoming IP packet may work in certain situations, but will not work when the response needs to be sent via a different gateway, for example. IF the client really does NOT respond to ARPs, then it is in fact broken. But I would be very surprised if this was truly the case. It may be worth investigating the possibility of the ARP response getting dropped somewhere, possibly by your Windows 7 box. – wookie919 Mar 6 '13 at 23:54

You can add a static entry to your ARP table:


:: Add a static entry.
arp -s 00-aa-00-62-c6-09 

:: Displays the arp table.
arp -a
  • unfortunately, I can't presume the MAC address at a given IP address is always the same... that is to say, the computer I plug into a given port always gets the same IP address (statically assigned), but I plug in different computers (with different MAC addresses) into that port – vicatcu Mar 6 '13 at 15:57
  • @vicatcu what type of clients are these? – MDMoore313 Mar 6 '13 at 15:59
  • embedded systems, not under my control, probably not running an operating system, just acting as TFTP clients downloading a file at startup from a pre-configured TFTP server IP address – vicatcu Mar 6 '13 at 16:09
  • @vicatcu Is this tftp server application being run with elevated privliges? It would need to in order to alter the arp table. – MDMoore313 Mar 6 '13 at 16:14
  • @MDMoore313, it's not the TFTP server that would be altering, or even being aware that there is an ARP table. He's saying the IP layer should update the ARP table when it receives the packet. – psusi Mar 6 '13 at 17:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.