10

I'm just learning about ARP. I'm a little bit confused. My confusion is better explained in a scenario.

Host A is communicating with Host B. Host A knows Host B's IP address, but not it's MAC address. Therefore, it send an ARP request to the LAN and Host B replies with its Mac address. So now Host A is aware of Host B's Mac address, and can make an entry with Host B's Mac address into an ARP table.


My questions regarding the ARP table

  1. Is Host A updating its own ARP table, or a shared ARP table amongst the entire LAN?

** Question 2 is only applicable if the answer to question 1 is "each host keeps their own ARP table"

  1. If the ARP able is not shared amongst all the LAN, would other hosts on the same LAN be made aware of this new information that Host A just received, if those other hosts did not have it already?
    • Let me expand on this: Let's assume a Host C and Host D. Now that Host A has entered Host B's MAC into its ARP table, would Host C and Host D be made aware of Host B's MAC address in their respective ARP tables?
1
  • Did any answer help you? If so, you should accept it so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you can post and accept your own answer.
    – Ron Maupin
    Apr 24, 2019 at 13:30

4 Answers 4

22

Actually, every interface in a device has its own ARP table. A host could have several ARP tables (one for each interface it has). ARP tables are not shared between hosts, or even among interfaces in the same host, but a host may hear ARP traffic on the network and update the ARP table of the interface where the ARP traffic is heard.

9

To answer the question another way: what mechanisms might be available to share an ARP table? This is one of the fundamentals for IP over ethernet (and any similar layer 2 network). If a device was trying to share ARP information with another device, it would have to do something like broadcast the entries of the ARP table, knowing when to get updates when a device is booting etc: all of which is much more complex than the way that ARP works, which is that a given device is responsible for telling others about itself, and broadcast queries when a device wants to know about another.

4

Let's look at each question specifically and expand upon your questions to help you better understand the situations that can occur.

1. Is Host A updating its own ARP table, or a shared ARP table amongst the entire LAN?

No, an ARP table is not shared among the entire LAN. Each device has it's own ARP table. It is the devices responsibility to manage their own ARP tables, including the local interface associated with the entry.

2. If the ARP able is not shared amongst all the LAN, would other hosts on the same LAN be made aware of this new information that Host A just received, if those other hosts did not have it already?

The short answer for a switched environment is no. If you view the format of an ARP Packet you will see that the packet includes both the sender hardware MAC address and IP. When an ARP request packet is sent from the requesting device, the packet is sent to the broadcast address and is forwarded by the switch to all interfaces (devices) on the LAN. This allows the device that has the requested IP Address to reply and target the reply packet to the specific IP and MAC Address of device that requested it. It is the network switches responsibility to maintain a MAC address table to forward the packet only to the interface on the switch of the specific device in the packet. Here is an example of an outgoing ARP packet from 10.0.0.1 in search of 10.0.0.2.

15:00:37.395072 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.0.0.2 tell 10.0.0.1, length 46

That being said, it is possible for devices to send out a gratuitous ARP reply packet announcing that they have the specific IP Address. The gratuitous ARP reply packet will be sent to the broadcast address, again, being forwarded to all devices on the LAN. In that situation, each device that receives that packet has to choose what to do with the packet. If they do not have the address in their ARP table, they usually ignore it. However, if they do have that address in their ARP table they should update any information that changed. Here is an example packet from 10.0.0.2 announcing to the LAN:

15:00:38.462135 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 10.0.0.2 (ff:ff:ff:ff:ff:ff) tell 10.0.0.2, length 46

All of the behavior detailed above prevents the devices from wasting processing cycles on packets that they do not need and memory on table entries that they do not need.

2

Think of the ARP table of MAC addresses, somewhat like an old fashioned telephone number book.

Everyone had a notebook by their phone, and would write in the phone number(the MAC address) of people(devices) they talked with/heard from.

Every house is a computer, every phone line is an interface, and every interface has its own ARP table of MAC addresses.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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