IP: Addressing, ARP, Routing Autumn 2004-2005 Oct 21, 2004 IP: Addressing, ARP, Routing Network Protocols and Standards Autumn 2004-2005 Oct 21, 2004 CS573: Network Protocols and Standards CS573: Network Protocols and Standards
CS573: Network Protocols and Standards IPv4 IP Datagram Format IPv4 Addressing ARP and RARP IP Routing Basics Subnetting and Supernetting ICMP Network Address Translation (NAT) Dynamic Addressing Oct 21, 2004 CS573: Network Protocols and Standards
Internet Addresses (IP Addresses) Defined when IP was standardized in 1981 IP addresses are 32-bit long and consist of: a network address part – network identifier a host address part – host number within that network IP addresses are grouped into classes (A,B,C) depending on the size of the network identifier and the host part of the address A fourth class (Class D) was defined later (1988) for Multicast addresses Oct 21, 2004 CS573: Network Protocols and Standards
Internet Address Classes 0 8 16 24 32 bits NETWORK HOST (24 BITS) Class A Class B Class C Class D Class E 10 NETWORK HOST (16 BITS) 110 NETWORK HOST (8 BITS) 1110 IP MULTICAST ADDRESSES (28 BITS) 11110 RESERVED FOR EXPERIMENTS Oct 21, 2004 CS573: Network Protocols and Standards
Internet Address Classes Class A 126 networks (0 and 127 reserved) Assigned to very large size networks where 65K < number of hosts < 16M Class B 16384 networks Assigned to Intermediate size networks where 256 < number of hosts < 65K Class C 2097152 networks Assigned to smaller networks where #hosts < 256 Oct 21, 2004 CS573: Network Protocols and Standards
Dotted Decimal Notation Internet addresses are represented in text by the dotted decimal notation each byte is written in decimal values (from 0 to 255) example: 10000000 00001010 00000010 00011110 is written as 128. 10. 2. 30 Oct 21, 2004 CS573: Network Protocols and Standards
Internet Address Classes Lowest Network Identifier Address Highest Network Identifier Address A 1.0.0.0 126.0.0.0 B 128.0.0.0 191.255.0.0 C 192.0.0.0 223.255.255.0 D 224.0.0.0 239.255.255.255 E 240.0.0.0 247.255.255.255 Oct 21, 2004 CS573: Network Protocols and Standards
Uniqueness of IP Addresses Network numbers are assigned by a central authority The Internet Network Information Center (InterNIC) Another authority, the IANA – Internet Assigned Numbers Authority sets policy Network numbers are unique worldwide Host numbers are assigned by network managers They must be unique within a given network Thus, IP addresses are unique worldwide. Oct 21, 2004 CS573: Network Protocols and Standards
Special Purpose IP Addresses 0.0.0.0 Means this host, used by machines as source address when they boot up (if they don’t know their IP address, and need to get it from a boot server) 255.255.255.255 Means limited broadcast. Used as a destination address to send packets to all hosts on the local network where the source is. Packets sent to this address are never relayed Network part all zeros Means the host on this network Host part all ones Broadcast address on the network specified in the network identifier; routers typically do not forward these datagrams Host part all zeros Broadcast address on the network specified in the network identifier (it was an implementation error in some networks) Oct 21, 2004 CS573: Network Protocols and Standards
Special Purpose IP Addresses 127.x.x.x Means loopback (datagrams are looped back in software; they are not sent on any physical interface) 224.0.0.1 Multicast address for “All systems on this subnetwork” 224.0.0.2 Multicast address for “All routers on this subnetwork” Oct 21, 2004 CS573: Network Protocols and Standards
CS573: Network Protocols and Standards Internet Addresses ALL 0’s This Host Host on this network Limited broadcast (local net) Directed broadcast (for NET) Loopback ALL 0’s HOST ALL 1’s NET ALL 1’s 127 ANYTHING Oct 21, 2004 CS573: Network Protocols and Standards
Translating Between IP and MAC Addresses (ARP and RARP) Each interface has an IP address at Layer 3, and a MAC address at Layer 2 Assume that host A wants to send a packet to host B (A and B on the same network) Host A knows the IP address of host B; however, in order to transmit the packet, host A must somehow know or find out what the MAC (layer 2) address of host B is! Solution: the Address Resolution Protocol (ARP), RFC826 Oct 21, 2004 CS573: Network Protocols and Standards
Address Resolution Protocol Used to find the physical address of a target device on the local physical network, given only the target’s IP address Mechanism: The source broadcasts a special packet asking the device with target IP address to respond with a message carrying the (IP address, physical address) mapping All devices on the local physical network receive the broadcast, but only the target recognizes its IP address and responds to the request When the source receives the reply, it sends the packet to the target using the target’s physical address and places the mapping in its cache (a cache is used to prevent repeated broadcasts for the same destination) Oct 21, 2004 CS573: Network Protocols and Standards
CS573: Network Protocols and Standards More on ARP ARP refinements Source includes its <IP address, physical address> mapping in the ARP request anticipating the target’s need for it in the near future. This avoids extra network traffic When all machines receive the ARP request broadcast, they can store the address mapping in their cache. Do they? ARP is used when an IP to physical address mapping changes to notify hosts on the network of the change ARP messages are encapsulated in MAC frames. A special value in the type field of the frame is used to indicate that it is carrying an ARP message (0806 hex is used for ARP) Entries in the local ARP cache for each host time out after a certain period Oct 21, 2004 CS573: Network Protocols and Standards
CS573: Network Protocols and Standards ARP Message Format PROTOCOL TYPE TARGET IP (octets 0-3) 16 8 24 HLEN HARDWARE TYPE SENDER HA (octets 0-3) TARGET HA (octets 2-5) 31 PLEN OPERATION SENDER IP (octetS 0-1) SENDER HA (octetS 4-5) TARGET HA (octets 0-1) SENDER IP (octetS 2-3) Oct 21, 2004 CS573: Network Protocols and Standards
CS573: Network Protocols and Standards ARP Message HARDWARE TYPE: specifies type of hardware interface for which the request is made (e.g., 1 for Ethernet) PROTOCOL TYPE: specifies high level protocol address supplied in message (e.g. 0800 hex for IP) HLEN and PLEN: specify length of fields for hardware address and protocol address respectively OPERATION: specifies if this is an ARP request or reply message (1 for ARP request, 2 for ARP response, 3 for RARP request and 4 for RARP response) HA and IP: hardware and IP addresses respectively Oct 21, 2004 CS573: Network Protocols and Standards
CS573: Network Protocols and Standards Reverse ARP Usually, a machine’s IP address is kept on its secondary storage (OS finds it at start up) Issue : Diskless Workstations! files are stored on a remote server need IP address to use TCP/IP to obtain initial boot image Solution : Use physical address to identify machine Given a physical network address, find the corresponding Internet address Reverse Address Resolution Protocol (RARP), RFC903 Oct 21, 2004 CS573: Network Protocols and Standards
CS573: Network Protocols and Standards RARP Mechanism Sender broadcasts a RARP request, supplying its physical network address in the Target HA field Only machines authorized to supply the RARP service (RARP servers) process the request and send a reply filling in the target internet address Mechanism allows a host to ask about an arbitrary target thus sender HA is separate from target HA address RARP server replies to sender’s HA Ethernet frame Protocol Type for RARP is 8035 hex Oct 21, 2004 CS573: Network Protocols and Standards
Autumn 2004-2005 Network Protocols and Standards Autumn 2002-2003 Oct 21, 2004 IP Routing Network Protocols and Standards Autumn 2002-2003 Oct 21, 2004 CS573: Network Protocols and Standards CS573: Network Protocols and Standards
CS573: Network Protocols and Standards Routing IP Datagram Direct Delivery (i.e., not involving routers): Transmission of an IP datagram between two machines on a single physical network does not involve routers The sender encapsulates the datagram in a physical frame, binds the destination IP address to a physical hardware address (using ARP), and sends the resulting frame directly to the destination The two machines are known to be on the same network because they have the same network identifier Example: A sends IP Datagram to B Router A B C Oct 21, 2004 CS573: Network Protocols and Standards
CS573: Network Protocols and Standards Routing IP Datagram Indirect delivery (i.e. through intermediate routers) Host performs routing decisions based on routing table indicating “next hop” “Next hop” refers to next router IP address on this network, via which the destination is reached Routing decisions are made based on network prefixes (not full IP address) The sender encapsulates the datagram in a frame with the router’s physical destination address (which is found by means of ARP). Oct 21, 2004 CS573: Network Protocols and Standards
Direct and Indirect Routing B wants to send packets to A and C! Host A 204.240.18.10 Internet 204.240.18.1 Router Direct Routing: Packets sent directly using MAC address of A Indirect Routing: Packets sent to the MAC address of the router. At the IP level, B is The source and C is the destination Host B 204.240.18.20 Host C 36.14.0.200 Oct 21, 2004 CS573: Network Protocols and Standards
IP Routing Decisions R3 R1 R2 Routing Table of R2 10.0.0.5 40.0.0.7 Network 10.0.0.0 20.0.0.6 30.0.0.6 20.0.0.5 R3 Network 20.0.0.0 Network 30.0.0.0 Network 40.0.0.0 R1 R2 30.0.0.7 Routing Table of R2 To Reach Hosts on Network Next Hop Address 20.0.0.0 Direct Delivery 30.0.0.0 10.0.0.0 20.0.0.5 40.0.0.0 30.0.0.7 Oct 21, 2004 CS573: Network Protocols and Standards
CS573: Network Protocols and Standards IP Routing Algorithm Router receives an IP datagram with network portion N and destination D If N is directly connected Transmit on that network Else If host specific entry for D exists Use next hop in that entry Else If route entry for N exists Else If default route for next hop exists Use default route for next hop Else Declare error Oct 21, 2004 CS573: Network Protocols and Standards
Routing Within Same Network Consider a small company with a single LAN to which a class C network address has been assigned The company is interested in adding another small physical network (connected to old network through a router) with a few hosts Question: Could this company assign these hosts IP addresses from the same C class network? i.e., could the two LANs share the same class C network address? Oct 21, 2004 CS573: Network Protocols and Standards
CS573: Network Protocols and Standards Proxy ARP Used to allow two physical networks to share the same IP network prefix Router R’s table is configured manually to route between these two networks Router R answers ARP requests on each network for hosts on the other network, giving its own hardware address as the target address Main Router To Internet Main Network A B C Router R D E Hidden Network Oct 21, 2004 CS573: Network Protocols and Standards
CS573: Network Protocols and Standards Proxy ARP Advantage of Proxy ARP Router Can be added without disturbing the routing table in other hosts or routers on that network Disadvantages: Does not generalize to complex network topologies (does not scale) Does not support a reasonable form of routing. (relies on network managers to maintain tables of machines and addresses manually) Issues: Several IP addresses map to the same physical address. How to distinguish between a legitimate Proxy ARP router and spoofing? Oct 21, 2004 CS573: Network Protocols and Standards