I am having some problems with understanding Mac Addressing and ARP as a frame moves from one device to the next, in particular what happens to the source and destination MAC addresses.
Host A pings Host F (all devices have just been turned on, disregard console connection on Host F, assume it's an ethernet connection)
1. Host A issues a DNS Server request to get Host F's IP address and the
DNS Server replies with the IP address for Host F
2. Host A issues an ARP broadcast for Host F's Mac address
3. Host F sends an ARP reply (unicast) to host A with it's Mac address
4. Host A now has the 4 pieces of information it needs to send the ping:
Source IP, Destination IP, Source Mac, Dest Mac
5. SW1 gets the frame, looks at the source Mac address. If the source Mac address is not in its Mac Address Table, SW1 adds it.
6. SW1 looks at the Destination Mac address and consults its Mac address table, if SW1 finds an entry for the Destination Mac address it Forwards the frame (unicast), if not it then floods it (broadcast). If the Mac is seen to be on the same interface that the frame came in on, it filters the frame (drops it).
7. The frame reaches SW2 and the procedure is the same as 6 above, but the frame eventually only reaches Host B.
8. The frame was also sent to R1 but while Routers accept broadcasts they do not forward broadcasts. R1 issues an ARP Reply (unicast) with the Mac Address of the interface that the frame came in on. R1 then consults its ARP cache to see if it has an entry for the Destination Mac address.
Let's say R1 doesn't have an ARP entry. R1 issues its Proxy ARP request and gets a reply from Host F. The ping is sent. Destination reached.
Hopefully, all that is correct. What I'm having problems with is how the Mac Addresses change as they move from device to device.
Host A
SRC MAC: Host A
DEST MAC: Host F
SW1
SRC MAC: Host A
DEST MAC: Host F
SW2
SRC MAC: Host A
DEST MAC: Host F
R1
SRC MAC: Host A
DEST MAC: Host F
DEST MAC (proxy to Host A): R1 local interface
SRC MAC: R1
DEST MAC: Host F