110 likes | 291 Views
Chapter 23: ARP, ICMP, DHCP. CS332, IS333 Spring 2014. Role of ARP. Q: What role does ARP play in the TCP/IP protocol stack?
E N D
Chapter 23: ARP, ICMP, DHCP CS332, IS333 Spring 2014
Role of ARP Q: What role does ARP play in the TCP/IP protocol stack? A: See Figure 23.5 on p 389. ARP bridges the Layer 2 / Layer 3 addressing boundary, allowing IP to be agnostic about layer 2’s addressing, and yet still use layer 2 to deliver packets. Note that ARP is designed to work with not just IP and Ethernet, but any pair of protocols.
How does ARP work? Q: How does ARP work? A: IP hands a packet and a next-hop IP address to layer 2 to forward for it. Layer 2 has to figure out how to get the MAC address for this IP address. It checks its ARP cache for a resolution. If not found, it sends an ARP request and waits for a response. Then, it caches the results and sends to the MAC delivered in the response.
ARP Request/Response Q: How does a machine send a request to another machine to get its MAC if it doesn’t know the MAC of the machine? A: The requesting machine broadcasts the request at layer 2, asking for a certain IP address. All machines on the LAN accept that packet, but only the machine with that IP address responds, using layer 2 to deliver the packet back directly to the requester. (Note: ARP is not carried in an IP packet. It is carried directly on layer 2.)
Details • The ARP responder caches the MAC/IP of the requester in its ARP cache. • Although all machines on the LAN could update their ARP cache from an ARP request, they don’t. Why? • Because they will fill up their cache with bindings they may never need.
ICMP • Internet Control Message Protocol • Mostly not implemented these days. • Only echo request/responses are implemented/enabled often. • Many others are security liabilities. • Designed to handle reporting errors/misconfigurations in an IP network. • Layer 4 protocol (carried by IP).
DHCP • Not necessary to implement to get a working network, but awfully convenient. • What is its role? • Allows a computer to “automatically” get an IP address. • And, subnet mask. • And, default route. • And, DNS server IP address(es). • All of these can be done by hand configuration. • Initially was called BOOTP.
DHCP problem… Q: How does a machine without an IP address request an IP address over an IP network? A: Sends a (layer 2 and 3) broadcast message, filling in the src IP address as 0.0.0.0 (“this computer”). Layer 4 is UDP, port 67, indicating a DHCP message. All machines receive the broadcast and forward up through IP to UDP. Only the machine listening on port 67 accepts and responds – that’s the DHCP server. The server responds directly to the MAC address used in the request.
DHCP Server Configuration Q: How do you configure a DHCP Server? A: You typically edit a file that specifies a range of addresses to be leased dynamically, and/or specific MAC <--> IP address bindings. You also configure the default route and DNS server IP addresses to send out. Note: only one DHCP server must be running per LAN, or chaos ensues...
DHCP Relay Agents Q: Do you have to run a DHCP server on each LAN? A: Without some special provisions, yes. DHCP requests use limited bcast (all 1s), so don’t get forwarded across routers. But, you can implement a DHCP relay agent to forward requests/responses to/from the DHCP server. Still must be on relay agent on each LAN.