Efficient Addressing Outline Addressing Subnetting Supernetting CS 640 1 IPV4 Global Addresses ● Properties ● ● ● ● IPv4 uses 32 bit address space globally unique hierarchical: network + host Dot Notation ● ● ● 10.3.2.4 128.96.33.81 192.12.69.77 A: B: C: CS 640 0 1 1 7 24 Network Host 0 1 0 14 16 Network Host 21 8 Network Host 2 How to Make Routing Scale ● Flat (Ethernet) versus Hierarchical (Internet) Addresses ● ● Problem: inefficient use of Hierarchical Address Space ● ● ● All hosts attached to same network have same network address class C with 2 hosts (2/255 = 0.78% efficient) class B with 256 hosts (256/65535 = 0.39% efficient) Problem: still Too Many Networks ● routing tables do not scale – ● Big tables make routers expensive route propagation protocols do not scale CS 640 3 Subnetting - 1985 ● Original intent was for network to identify one physical network ● ● Solution: add another level to address/routing hierarchy: subnet ● ● ● Allocate addresses to several physical networks Routers in other ASs (networks) route all traffic to network as if it is a single physical network Subnet masks define variable partition of host part ● ● ● Lots of small networks are what we actually have – how do we handle this? 1’s identify subnet, 0’s identify hosts within the subnet Mechanism for sharing a single network number among multiple networks Subnets visible only within a site Network number Host number Class B address 111111111111111111111111 00000000 Subnet mask (255.255.255.0) Network number Subnet ID Host ID Subnetted address CS 640 4 Subnet Example Subnet mask: 255.255.255.128 Subnet number: 128.96.34.0 128.96.34.15 128.96.34.1 H1 R1 Subnet mask: 255.255.255.128 Subnet number: 128.96.34.128 128.96.34.130 128.96.34.139 128.96.34.129 R2 H3 128.96.33.14 128.96.33.1 Subnet mask: 255.255.255.0 Subnet number: 128.96.33.0 H2 Forwarding table at router R1 Subnet Number 128.96.34.0 128.96.34.128 128.96.33.0 CS 640 Subnet Mask 255.255.255.128 255.255.255.128 255.255.255.0 Next Hop interface 0 interface 1 R2 5 Forwarding Algorithm D = destination IP address for each entry (SubnetNum, SubnetMask, NextHop) D1 = SubnetMask & D if D1 = SubnetNum if NextHop is an interface deliver datagram directly to D else deliver datagram to NextHop ● ● ● ● ● Use a default router if nothing matches Not necessary for all 1s in subnet mask to be contiguous Can put multiple subnets on one physical network Subnets not visible from the rest of the Internet This is a simple, toy example!! CS 640 6 Subnets contd. ● ● ● Subnetting is not the only way to solve scalability problems Additional router support is necessary to include netmask and forwarding functionality Non-contiguous netmask numbers can be used ● ● Multiple subnets can reside on a single network ● ● Requires routers within the network Subnets help solve scalability problems ● ● ● They make administration more difficult Do not require us to use class B or C address for each physical network Help us to aggrigate information Chief advantage of IP addresses: routers could keep one entry per network instead of one per destination host CS 640 7 Continued Problems with IPv4 Addresses ● Problem: ● Potential exhaustion of IPv4 address space (due to inefficiency) – – ● Growth of back bone routing tables – – ● Class B network numbers are highly prized ● Not everyone needs one Lots of class C addresses but no one wants them We don’t want lots of small networks since this causes large routing tables Route calculation and management requires high computational overhead Solution: ● ● Allow addresses assigned to a single entity to span multiple classed prefixes Enhance route aggregation CS 640 8 Supernetting ● ● Assign block of contiguous network numbers to nearby networks Called CIDR: Classless Inter-Domain Routing ● ● Breaks rigid boundries between address classes If ISP needs 16 class C addresses, make them contiguous – ● ● ● Eg.192.4.16 to 192.4.31 enables a 20-bit network number Idea is to enable network number to be any length Collapse multiple addresses assigned to a single AS to one address Represent blocks (number of class C networks) with a single pair (first_network_address, count) ● ● ● Restrict block sizes to powers of 2 Use a bit mask (CIDR mask) to identify block size All routers must understand CIDR addressing CS 640 9 CIDR Addresses ● Identifying a CIDR block requires both an address and a mask ● ● Slash notation 128.211.168.0/21 for addresses 128.211.168.0 – 128.211.175.255 – ● All possible CIDR masks can easily be generated – ● ● Here the /21 indicates a 21 bit mask /8, /16, /24 correspond to traditional class A, B, C categories IP addresses are now arbitrary integers, not classes Raises interesting questions about lookups ● Routers cannot determine the division between prefix and suffix just by looking at the address – – Hashing does not work well Interesting lookup algorithms have been developed and analyzed CS 640 10 CIDR Address Assignment 201.10.0.0/20 Provider 201.10.0.0/22 201.10.4.0/24 201.10.5.0/24 201.10.6.0/23 11 CIDR Implications ● Longest prefix match ● 7 contiguous Class C’s given to network A: – – ● 8th class C given to network B: – – ● 200.10.0.0 – 200.10.6.255 N/w number – 200.10.0.0/21 200.10.7.0 – 200.10.7.255 N/w number – 200.10.7.0/24 Packet with destination address 200.10.7.1 matches both networks – Must pick the most specific match! 12 IP/MAC Address Translation Outline ARP RARP DHCP Transition from Network to Datalink ● How do we get datagrams to the right physical host? ● ● IP datagrams contain an IP address ● ● Tricky part comes when a router is forwarding to a LAN with multiple hosts (which is typically the case) Configured in OS NIC’s only understand addressing of their particular network ● Ethernet’s 48 bit MAC addresses 14 Address Translation Problem ● We need a means for mapping IP addresses into MAC (physical) addresses ● ● ● ● Destination host Next hop router We can then encapsulate (surpirse!) IP datagrams inside a frame with link level address Possible mapping techniques ● Encode physical address in host part of IP address – – ● Make physical address the same as the host portion of IP address Obviously not possible using IPv4 and Ethernet Build a table of IP/MAC pairs – How is it maintained? 15 Address Resolution Protocol (ARP) • • • ARP is part of the TCP/IP specification Enable each host to build table of IP to physical address bindings – Dynamic binding protocol – no static entries in table – Allows new nodes to be easily added to broadcast network Simple idea: broadcast request if an IP address not in table – Supported by link level technology – Determine host B’s physical address PB from it IP address IB 1. Host A broadcasts an ARP request containing IB to all hosts on LAN 2. Host B responds with an ARP reply containing the pair (IB ,PB ) 16 ARP Implementation ● ARP Packet Details ● ● ● HardwareType: type of physical network (e.g., Ethernet) ProtocolType: type of higher layer protocol (e.g., IP) HLEN & PLEN: length of physical and protocol addresses – ● ● ● Provides for flexibility to handle a variety of network technologies Operation: request or response Source/Target-Physical/Protocol addresses Notes ● ● ● ● ● Table entries timeout in about 10 minutes (caching is important) Update table with source when you are the target Update table even if there is already an entry Do not refresh table entries upon reference IP addresses are assigned independently of a systems HW addresses 17 ARP Packet Format 0 8 16 Hardware type = 1 HLen = 48 31 ProtocolT ype = 0x0800 PLen = 32 Operation SourceHardwareAddr (bytes 0 – 3) SourceHardwareAddr (bytes 4 – 5) SourceProtocolAddr (bytes 0 – 1) SourceProtocolAddr (bytes 2 – 3) TargetHardwareAddr (bytes 0 – 1) TargetHardwareAddr (bytes 2 TargetProtocolAddr (bytes 0 – 5) – 3) 18 Determining an IP Address at Startup ● How does a machine without permanent storage determine its IP address? ● ● ● OS images with specific IP’s cannot be used on multiple machines Critical for network appliances or embedded systems Use the network to obtain an IP from a remote server ● ● ● System must use its physical address to to communicate Requests address from server which maintains table of IP’s System doesn’t know the server - sends broadcast 19 request for address Dynamic Configuration ● BOOTP was designed for relatively static environment where each host has a permanent network connection ● ● Wireless networking enables environments much more dynamic ● ● Net manager creates a BOOTP config file with parameters for each host – file is typically stable for long periods BOOTP does not provide for dynamic address assignment Dynamic configuration is the primary method for IP address allocation used today ● Not only facilitates mobility but also efficient use of IPs 20 Dynamic Host Configuration Protocol ● DHCP extends BOOTP ● ● ● ● Still supports static allocation Supports automatic configuration where addresses are permanent but assigned by DHCP Supports temporary allocation Relies on existence of a DHCP server ● ● ● Repository for host configuration information Maintains a pool of available IP’s for use on demand Considerably reduces administration overhead – ● Autoconfiguration of course depends on administrative policy Uses UDP to send messages – Uses a relay agent to communicate with servers off LAN (same as BOOTP) ● Relay agent is statically configured with DHCP server address 21 DHCP Implementation ● State machine (6 states) which determines DHCP operation ● ● To contact the DHCP server(s) a client sends DHCPDISCOVER message to IP broadcast address and moves to SELECT state ● ● ● Client can receive 0 or more responses and responds to one Client moves to REQUEST state to negotiate IP lease with 1 server ● ● Unique header format with variable length options field UDP packet sent to well known BOOTP port 67 Server(s) respond with DHCPOFFER message ● ● Host boots into INITIALIZE state Sends DHCPREQUEST message to server which responds with DHCPACK Client is then in BOUND (normal) state 22 DHCP Implementation contd. ● From BOUND, client can issue DHCPRELEASE and return to INITIALIZE state ● ● When lease reaches 50% of lease expiration time, it issues DHCPREQUEST to extend lease of current IP with server and moves to RENEW state ● ● ● This is simply client deciding it no longer needs the IP Receipt of DHCPACK moves client back to BOUND state Receipt of DHCPNACK moves client back to INITIALIZE state If no response is received by 87.5% of lease expiration time, the client resends the DHCPREQUEST and moves to REBIND state ● ● Receipt of DHCPACK moves client back to BOUND state Receipt of DHCPNACK or timeout moves client back to INITIALIZE state 23 DHCP Details ● ● Without relay agent, DHCP would not scale since it would require large number of servers (one per LAN) Addresses which are leased over a given period of time and must be updated ● ● This means that DHCP requests might have to be made multiple times by the same system (RENEW requests) DHCP does not interact with DNS ● Binding between IP assigned by DHCP and host name must be made independently – – – Possible result 1: No host name given Possible result 2: Host is automatically assigned a preallocated domain name with its IP Possible results 3: Hosts are assigned permanent names ● Requires additional mechanisms which do not yet exist 24