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.

2
  • 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, 2013 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, 2013 at 15:59

2 Answers 2

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.

2
  • if all you ever do is respond to messages, you can get the destination MAC from the incoming packet...
    – vicatcu
    Mar 6, 2013 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, 2013 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
6
  • 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, 2013 at 15:57
  • @vicatcu what type of clients are these?
    – MDMoore313
    Mar 6, 2013 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, 2013 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, 2013 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, 2013 at 17:00

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .