3

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.

vicatcu
  • 151
  • 6
  • 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 06 '13 at 04: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 06 '13 at 15:59

2 Answers2

8

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.

psusi
  • 3,347
  • 1
  • 17
  • 9
  • if all you ever do is *respond* to messages, you can get the destination MAC from the incoming packet... – vicatcu Mar 06 '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 06 '13 at 23:54
2

You can add a static entry to your ARP table:

Example:

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

:: Displays the arp table.
arp -a
jscott
  • 24,484
  • 8
  • 79
  • 100
MDMoore313
  • 5,581
  • 6
  • 36
  • 75
  • 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 06 '13 at 15:57
  • @vicatcu what type of clients are these? – MDMoore313 Mar 06 '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 06 '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 06 '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 06 '13 at 17:00
  • @psusi that's true, my mistake I'm thinking about the routing table. – MDMoore313 Mar 06 '13 at 17:33