How can you get an incomplete ARP?

Discussion in 'Cisco' started by crzzy1, Apr 21, 2010.

  1. crzzy1

    crzzy1 Guest

    Perhaps someone can put this into perspective for me.
    This is an age old question that has arisen many times throughout the
    years and my web searches have failed to answer this.
    The host is visible in arp and shows incomplete, the host cannot be
    Sometimes the prob is a cable, sometimes a host route setting,
    sometimes an intermediary device.
    (Let me know if there are other known things that cause this).

    ca-santa-barbara-router#sh arp | i 70.169.191
    Internet 0 Incomplete ARPA
    Internet - 0018.731f.407d ARPA Ethernet1

    My question is, how is it, that we get the IP address from the
    directly connected host into the ARP cache, but not the MAC address?
    We arp out for that IP, and the connected host is smart enough to
    reply that it has that IP, but it isn't smart enough to send it MAC

    crzzy1, Apr 21, 2010
    1. Advertisements

  2. crzzy1

    Rob Guest

    No, this just means the cisco device has sent an ARP for the IP
    in the list ( and it has not received a reply.

    So the host is down or not connected.
    Rob, Apr 21, 2010
    1. Advertisements

  3. crzzy1

    crzzy1 Guest

    That is not correct. I forgot to mention that this is a /24,
    and only the host is in fact connected.
    I can ping the broadcast address, and only this IP comes into the ARP
    In this case there was a problem with the routing on the host.
    So in other words, my router sees the host, the host in some way
    replies that it has this IP, but is unable to say what its MAC is.
    I have seen this numerous times, but never have figured out what
    really takes place to let my router know that that host is there, but
    not what is the MAC?

    crzzy1, Apr 23, 2010
  4. crzzy1

    Chris Mason Guest

    - the nearest I can get to an identification!

    Interesting. You have managed to work out how to have some contact
    with an interface on a LAN - albeit a not very productive one given
    that it relies on a response to a LAN broadcast - *without* getting a
    complete entry into the ARP cache.

    I believe when an IP node detects that the destination IP address
    corresponds to the broadcast address for an address range assigned to
    an attached LAN (as determined by the subnet mask), it has no need of
    ARP support since it can use the broadcast MAC address on the LAN. I
    hope someone who is a practical specialist in these matters rather
    than only a theoretical amateur like myself can confirm or deny this
    assertion - and, if deny, perhaps provide an alternative explanation.

    I think you need to read and understand the ARP RFC which is quite
    short, 10 pages, and has a very helpful schematic of the ARP logic.

    It may be best to access the RFC, 826, via the Wikipedia article:

    I see that the article references a 3-page PDF of the logic over which
    you can pour.
    A quick scan of the RFC indicates that it is not required that the
    node sending an ARP request places the requested IP address in the ARP
    cache at this time *without*, obviously, the MAC address. However I
    can see that some implementations might do this. Actually I could be
    wrong - and, if so, I hope for correction.
    According to the RFC, this is an impossibility. How are you certain
    that the ARP request was sent? If an ARP reply is received from the
    interface of another node on the LAN - even when the intended
    recipient is not the receiving node - a *complete* ARP entry should be
    built for the sending node.
    received a reply.

    Rob's response indicates that the presumed Cisco implementation logic
    bothers to create incomplete ARP entries. I guess this may have the
    benefit - assuming it truly is optional - of revealing possible
    It's not clear what you may mean here. If it is a reference to ARP
    processing, you will see that, in effect, all ARP processing is "/32",
    that is, it concerns only the IP address of individual interfaces
    rather than address ranges. As I suggested above, if the destination
    IP address happens to correspond to the broadcast IP address of the
    address range assigned to the LAN to which the interface about to send
    a packet is attached, a broadcast MAC address can be used.

    Having been told that the address range is determined by 24 contiguous
    bits, I can suppose that the broadcast address you used in the
    successful PING command was
    If there is only one interface other than the sending interface, IP
    address I guess, connected to the LAN, you should
    receive responses only from that node - but based on having used the
    broadcast MAC address at the Ethernet level.
    I think I see at what you have been getting all this time! Is this one
    of those famous Cisco extensions to the common interpretation of RFCs?
    Could it be that the Cisco implementation of ARP involves the ARP
    logic being informed of the IP addresses of interfaces known to fit
    the address range assigned to a LAN to which a local interface is
    attached in case broadcast requests were used to discover them? It
    would appear that this happens at a level in the logic where the MAC
    address associated with the IP address has been lost.

    I wonder if this mightn't be some way of operating dynamic discovery
    of nodes within the network as extensively as possible. I guess one
    can speculate endlessly ...

    Chris Mason
    Chris Mason, Apr 24, 2010
  5. crzzy1

    JF Mezei Guest


    A host typically creates a temporarey entry in the ARP cache, sends the
    ARP request (broadcast) and when/if a reply is received, it then updates
    the record in the arp cache with the received ethernet address.

    Generally, this is quick enough that you don't see it happening.
    JF Mezei, Apr 26, 2010
  6. crzzy1

    Rob Guest

    That is what I said, but he does not believe it.
    Rob, Apr 26, 2010
  7. crzzy1

    bod43 Guest

    Here is an idea.

    "I can ping the broadcast address, and only this IP
    comes into the ARP table. "

    ca-santa-barbara-router#sh arp | i 70.169.191
    Internet 0 Incomplete ARPA
    Internet - 0018.731f.407d ARPA

    The broadcast ping from 218 just goes out with no ARPing.
    In order to reply (with a unicast) the "target" host must
    ARP for the ping sender

    The router receives the ARP request from 209:-
    It replies to it and also does gratuitous ARP or ARP
    snooping processing creating the Incomplete entry. For
    some reason the entry cannot be completed. Perhaps
    after the snooping or gratuiting:) the router does a real arp
    to complete the process and the 209 host does not reply.

    I am not sure of the details of gratuitous arp or snooping
    so I am not sure as to the plausibility of this hypothesis.

    Have you checked that you do not have a subnet mask
    mismatch? Well, looking at the addresses I don't
    suppose that is possible without a discontiguous mask
    which is no longer permitted. Worth a check anyway.

    Otherwise, maybe the ARP entry is nothing to do with
    your ping and the 209 host is sending some other traffic.
    Windows hosts for example are very chatty.

    To investigate further you could try:-
    - Packet capture with some external device
    say with wireshark - hub or SPAN port needed.
    - debug arp
    - If you have very recent IOS, packet capture on router.
    - Packet capture on target (209).
    - Check you have no ACLs that could block the ARP.

    You might post the router config.

    By the way, most people mangle IP addresses
    in usenet messages so as to preclude identification.
    e.g change the first octet. Maybe you did that already:?)
    bod43, Apr 26, 2010
  8. crzzy1

    crzzy1 Guest

    Thanks for the reply.
    So are you saying that I am getting an arp reply that doesn't have a
    MAC address in it?
    I ask this because I am only getting an IP and not an "ethernet
    address" that you assert that I am getting in your answer.
    My question is how does it get a reply with only an IP and no MAC?
    Or if there is no reply, then how does it know that only that single
    host out of 254 possibility's is out there?

    crzzy1, Apr 26, 2010
  9. crzzy1

    crzzy1 Guest

    Thank you for your well worded response.
    I did mangle my IP like you mentioned,, yes it would be a breach of
    protocol not to.
    I think you are correct in your assertion of the gratuitous arp.
    This issue was fixed by having the customer concentrate on his routing
    on his host side. (I have no visibility into his side, so I couldn't
    use wireshark. but I would like to try the packet capture on the
    router side next time one of these crop up.
    Again though, a really excellent answer.

    crzzy1, Apr 26, 2010
  10. crzzy1

    Rob Guest

    No, I think you are getting no ARP reply at all.
    The "incomplete" entry with only IP in it is created when the router
    wants to send something to that IP. The system does not need to exist
    for that.
    I think it doesn't.
    Maybe it has heard traffic from that address.
    Rob, Apr 26, 2010
  11. crzzy1

    JF Mezei Guest

    Typically the reverse. It means you have sent an Arp request, but not
    gotten any response.

    "will IP address X please stand up and reply to me with their ethernet
    address ?

    BUT, nobody responded.

    If this is aon a cisco box, you can:

    clear arp <ip address>

    This will remove the incomplete arp entry.

    you can show arp to confirm.

    You can then try to ping that host and you will ether get an incomplete
    arp entry or a completed one.

    (instead of "ping" you can telnet or any other IP level command that
    would try to send an IP packet to that host.

    If sends an ARP to ask about, then will
    implicetely know's ethernet address and add that record to its
    arp table (allowing it to reply to's requests from now on). will then send a response to, and will then
    get the ethernet address corresponding to and complete the
    incomplete arp entry.

    Note that you could theoretically have a misbehaving machine on your LAN
    which uses a blank or otherwise invalid ethernet address so that when it
    responds to arp requests, the responses are considered illegal and not
    added to the arp tables (leaving those incomplete entries).
    JF Mezei, Apr 26, 2010
  12. crzzy1

    JF Mezei Guest


    If host1 thinks host2 is part of the same subnet, it will send an arp
    asking for host2's ethernet address.

    That broadcast arp will specify host2's ip address.

    So at the low level, when host2 gets the ethernet broadcast, it will see
    "this is something that concerns me" and pass it upwards for processing.

    If the ethernet broadcast contained an arp request for an ip address not
    used by host2, it would not be passed upwards for processing.

    So, by the time the "upwards" layer gets the arp request, does it
    blindly respond to the ethernet address of the sender of the broadcast ?

    Or does the arp response behave as an IP packet and gets routed to a
    router if the requestor is not in the same subnet ?

    (at which point the arp request would never get to the requestor,
    leaving a incomplete arp record at the requestor's arp database)
    JF Mezei, Apr 26, 2010
  13. crzzy1


    Oct 19, 2013
    Likes Received:
    A few people have tried to explain this. Basically you are not "getting the IP address from the directly connected host" By pinging that IP address. You are telling the router that the address exists. It therefore puts that IP address in its ARP cache with an incolmplete value until it receives an ARP reply. If this does not happen (As in your example). It remains as incomplete. If you ping any other address in your IP range you will see all those addresses appear as incomplete as well. So the router does not see the device on its physical LAN. The fact that it tries to ARP for the IP address means that the router is on the same subnet as the IP address. If this was not the case then it would not ARP for it.

    Only things I know that could cause this are VLANs, incorrect address or mask on client or physical network faults, VLAN or MAC ACLs.

    I don't know of any reasons why a client would simply not reply to an ARP.
    martyh00, Oct 19, 2013
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.