ee 122: ip addressing - university of california,...
TRANSCRIPT
1
1
EE 122: IP Addressing
Ion Stoica (and Brighten Godfrey)
TAs: Lucian Popa, David Zats and GaneshAnanthanarayanan
http://inst.eecs.berkeley.edu/~ee122/
(Materials with thanks to Vern Paxson, Jennifer Rexford,and colleagues at UC Berkeley)
2
Goals of Today’s Lecture
� IP addresses
� Dotted-quad notation
� IP prefixes for aggregation
� Classful addresses
� Classless InterDomain Routing (CIDR)
� Special-purpose address blocks
� Address allocation
� Hierarchy by which address blocks are given out
� Finding information about an allocation
2
3
Designing IP’s Addresses
� Question #1: what should an address be associated with?
� E.g., a telephone number is associated not with a person but with a handset
� Question #2: what structure should addresses have? What are the implications of different types of structure?
� Question #3: who determines the particular addresses used in the global Internet? What are the implications of how this is done?
4
IP Addresses (IPv4)
� A unique 32-bit number
� Identifies an interface (on a host, on a router, …)
� Represented in dotted-quad notation. E.g, 12.34.158.5:
00001100 00100010 10011110 00000101
12 34 158 5
3
5
Hierarchical Addressing in U.S.
� Addressing in the U.S. mail
� Zip code: 15232
� Street: Forbes Avenue
� Building on street: 5000
� Apartment: 61B
� Name of occupant: Ion Stoica
� Forwarding the U.S. mail
� Deliver letter to the post office in the zip code
� Assign letter to mailman covering the street
� Drop letter into mailbox for the building/room
� Give letter to the appropriate person
???
6
Hierarchical Addressing: IP
Prefixes
� Divided into network (left) & host portions (right)
� 12.34.158.0/24 is a 24-bit prefix with 29 addresses
� Terminology: “Slash 24”
00001100 00100010 10011110 00000101
Network (24 bits) Host (8 bits)
12 34 158 5
4
7
IP Address and a 24-bit Subnet Mask
00001100 00100010 10011110 00000101
12 34 158 5
11111111 11111111 11111111 00000000
255 255 255 0
Address
Mask
8
Addressing Hosts in the Internet
� The Internet is an “inter-network”
� Used to connect networks together, not hosts
� Needs a way to address a network (i.e., group of hosts)
host host host
LAN 1
...host host host
LAN 2
...
router router routerWAN WAN
LAN = Local Area Network
WAN = Wide Area Network
5
9
Routers
� Router consists of� Set of input interfaces where packets arrive� Set of output interfaces from which packets depart� Some form of interconnect connecting inputs to outputs
� Router implements� Forward packet to corresponding output interface� Manage bandwidth and buffer space resources
host host host
LAN 1
...host host host
LAN 2
...
router router routerWAN WAN
Router
10
Forwarding Table
� Store a mapping between IP addresses and output interfaces
� Forward an incoming packet based on its destination address
……
31.2.3.6
11.2.3.5
1
21.2.3.5
1.2.3.4
1.2.3.4 2
6
11
Scalability Challenge
� Suppose hosts had arbitrary addresses
� Then every router would need a lot of information
� …to know how to direct packets toward the host
host host host
LAN 1
...host host host
LAN 2
...
router router routerWAN WAN
1.2.3.4 5.6.7.8 2.4.6.8 1.2.3.5 5.6.7.9 2.4.6.9
1.2.3.4
1.2.3.5
forwarding table
12
Scalability Improved
� Number related hosts from a common subnet
� 1.2.3.0/24 on the left LAN
� 5.6.7.0/24 on the right LAN
host host host
LAN 1
...host host host
LAN 2
...
router router routerWAN WAN
1.2.3.4 1.2.3.7 1.2.3.156 5.6.7.8 5.6.7.9 5.6.7.212
1.2.3.0/24
5.6.7.0/24
forwarding table
7
13
Easy to Add New Hosts
� No need to update the routers
� E.g., adding a new host 5.6.7.213 on the right
� Doesn’t require adding a new forwarding entry
host host host
LAN 1
...host host host
LAN 2
...
router router routerWAN WAN
1.2.3.4 1.2.3.7 1.2.3.156 5.6.7.8 5.6.7.9 5.6.7.212
1.2.3.0/24
5.6.7.0/24
forwarding table
host
5.6.7.213
14
Classful Addressing
� Class A: if first byte in [0..127], assume /8 (top bit = 0)
� Very large blocks (e.g., MIT has 18.0.0.0/8)
� Class B: first byte in [128..191] ⇒ assume /16 (top bits = 10)
� Large blocks (e.g,. UCB has* 128.32.0.0/16)
� Class C: [192..223] ⇒ assume /24 (top bits = 110)
� Small blocks (e.g., ICIR has 192.150.187.0/24)
� The “swamp” (many European networks, due to history)
0******* ******** ******** ********
10****** ******** ******** ********
110***** ******** ******** ********
8
15
Classful Addressing (cont’d)
� Class D: [224..239] (top bits 1110)
� Multicast groups
� Class E: [240..255] (top bits 11110)
� Reserved for future use
� What problems can classful addressing lead to?
� Only comes in 3 sizes
� Routers can end up knowing about a lot of class C’s
1110**** ******** ******** ********
11110*** ******** ******** ********
16
Classless Inter-Domain Routing (CIDR)
IP Address : 12.4.0.0 IP Mask: 255.254.0.0
00001100 00000100 00000000 00000000
11111111 11111110 00000000 00000000
Address
Mask
for hosts Network Prefix
Use arbitrary length prefixesUse two 32-bit numbers to represent a network.
Network number = IP address + Mask
Written as 12.4.0.0/15 or 12.4/15
9
17
CIDR: Hierarchal Address Allocation
12.0.0.0/8
12.0.0.0/15
12.253.0.0/16
12.2.0.0/16
12.3.0.0/16
:
:
12.3.0.0/2212.3.4.0/24
:
:12.3.254.0/23
12.253.0.0/1912.253.32.0/1912.253.64.0/19
12.253.64.108/3012.253.96.0/1812.253.128.0/17
:
:
:
� Prefixes are key to Internet scalability
� Addresses allocated in contiguous chunks (prefixes)
� Routing protocols and packet forwarding based on prefixes
:
18
Scalability: Address Aggregation
Provider is given 201.10.0.0/21 (201.10.0.x .. 201.10.7.x)
201.10.0.0/22 201.10.4.0/24 201.10.5.0/24 201.10.6.0/23
Provider
Routers in the rest of the Internet just need to know
how to reach 201.10.0.0/21. The provider can direct the
IP packets to the appropriate customer.
10
19
But, Aggregation Not Always
Possible
201.10.0.0/21
201.10.0.0/22 201.10.4.0/24 201.10.5.0/24 201.10.6.0/23
Provider 1 Provider 2
Multi-homed customer with 201.10.6.0/23 has two
providers. Other parts of the Internet need to know how
to reach these destinations through both providers.
⇒⇒⇒⇒ /23 route must be globally visible
20
Growth in Routed Prefixes (1989-2005)
Initial growth super-linear; no aggregation
Advent of CIDR allows aggregation: linear growth
Internet boom: multihoming drives superlinear growth
Dot-com implosion; Internet bubble bursts
Back in business
11
21
Special-Purpose Address Blocks� Private addresses
� By agreement, not routed in the public Internet� For networks not meant for general Internet connectivity� Blocks: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
� Link-local� By agreement, not forwarded by any router� Used for single-link communication only� Intent: autoconfiguration (especially when DHCP fails)� Block: 169.254.0.0/16
� Loopback� Address blocks that refer to the local machine� Block: 127.0.0.0/8
� Usually only 127.0.0.1/32 is used
� Limited broadcast� Sent to every host attached to the local network� Block: 255.255.255.255/32
22
Scalability Through Non-Uniform
Hierarchy
Summary:
� Hierarchical addressing
� Critical for scalable system
� Don’t require everyone to know everyone else
� Reduces amount of updating when something changes
� Non-uniform hierarchy
� Useful for heterogeneous networks of different sizes
� Initial class-based addressing was far too coarse
� Classless InterDomain Routing (CIDR) gains much more flexibility
12
23
5 Minute Break
Questions Before We Proceed?
24
Address Allocation
13
25
Obtaining a Block of Addresses
� Separation of control� Prefix: assigned to an institution
� Addresses: assigned by the institution to their nodes
� Who assigns prefixes?� Internet Corporation for Assigned Names and Numbers
� Allocates large address blocks to Regional Internet Registries
� ICANN is politically charged
� Regional Internet Registries (RIRs)� E.g., ARIN (American Registry for Internet Numbers)
� Allocates address blocks within their regions
� Allocated to Internet Service Providers and large institutions ($$)
� Internet Service Providers (ISPs)� Allocate address blocks to their customers (could be recursive)
� Often w/o charge
26
Figuring Out Who Owns an Address
� Address registries� Public record of address allocations
� Internet Service Providers (ISPs) should update when giving addresses to customers
� However, records are notoriously out-of-date
� Ways to query� UNIX: “whois –h whois.arin.net 169.229.60.27”
� http://www.arin.net/whois/
� http://www.geektools.com/whois.php
� …
14
27
Example Output for 169.229.60.27
University of California, Office of the President UCNET-BLK (NET-169-229-0-0-1)
169.229.0.0 - 169.233.255.255
University of California at Berkeley ISTDATA
(NET-169-229-0-0-2)
169.229.0.0 - 169.229.255.255
• ISTDATA – Information Services and Technology (IST) -Data Communication and Network Services
28
Are 32-bit Addresses Enough?
� Not all that many unique addresses� 232 = 4,294,967,296 (just over four billion)
� Plus, some (many) reserved for special purposes
� And, addresses are allocated in larger blocks
� And, many devices need IP addresses� Computers, PDAs, routers, tanks, toasters, …
� Long-term solution (perhaps): larger address space� IPv6 has 128-bit addresses (2128 = 3.403 × 1038)
� Short-term solutions: limping along with IPv4� Private addresses
� Network address translation (NAT)
� Dynamically-assigned addresses (DHCP)
15
29
Network Address Translation (NAT)
� Before NAT…
� Every machine connected to the Internet had a unique IP address
1.2.3.4
1.2.3.5
5.6.7.8
LAN
Clients
Server
Internet
dest addr src addrdst port
src port
5.6.7.8 1.2.3.4 80 10015.6.7.8 1.2.3.4 80 1001
30
Network Address Translation (NAT)
� Before NAT…
� Every machine connected to the Internet had a unique IP address
1.2.3.4
1.2.3.5
5.6.7.8
LAN
Clients
Server
Internet1.2.3.45.6.7.880 1001
1.2.3.45.6.7.880 1001
16
31
Network Address Translation (cont’d)
� Independently assign addresses to machines behind same NAT
� Usually in address block 192.168.0.0/16
� Use port numbers to multiplex demultiplex internal addresses
192.2.3.4
192.2.3.5
5.6.7.8
Clients
Server
Internet
NAT
1.2.3.4
5.6.7.8 192.2.3.4 80 1001
5.6.7.8 192.2.3.4 80 1001
32
Network Address Translation (cont’d)
� Independently assign addresses to machines behind same NAT
� Usually in address block 192.168.0.0/16
� Use port numbers to multiplex demultiplex internal addresses
192.2.3.4
192.2.3.5
5.6.7.8
Clients
Server
Internet
NAT
1.2.3.4
192.2.3.4:1001 1.2.3.4:2000
5.6.7.8 1.2.3.4 80 2000
5.6.7.8 192.2.3.4 80 1001
17
33
Network Address Translation (cont’d)
� Independently assign addresses to machines behind same NAT
� Usually in address block 192.168.0.0/16
� Use port numbers to multiplex demultiplex internal addresses
192.2.3.4
192.2.3.5
5.6.7.8
Clients
Server
Internet
NAT
1.2.3.4
192.2.3.4:1001 1.2.3.4:2000
5.6.7.8 1.2.3.4 80 2000
5.6.7.8 1.2.3.4 80 2000
34
Network Address Translation (cont’d)
� Independently assign addresses to machines behind same NAT
� Usually in address block 192.168.0.0/16
� Use port numbers to multiplex demultiplex internal addresses
192.2.3.4
192.2.3.5
5.6.7.8
Clients
Server
Internet
NAT
1.2.3.4
192.2.3.4:1001 1.2.3.4:2000
1.2.3.45.6.7.880 2000
1.2.3.45.6.7.880 2000
18
35
Network Address Translation (cont’d)
� Independently assign addresses to machines behind same NAT
� Usually in address block 192.168.0.0/16
� Use port numbers to multiplex demultiplex internal addresses
192.2.3.4
192.2.3.5
5.6.7.8
Clients
Server
Internet
NAT
1.2.3.4
192.2.3.4:1001 1.2.3.4:2000
1.2.3.45.6.7.880 2000
5.6.7.8 192.2.3.480 1001
36
Network Address Translation (cont’d)
� Independently assign addresses to machines behind same NAT
� Usually in address block 192.168.0.0/16
� Use port numbers to multiplex demultiplex internal addresses
192.2.3.4
192.2.3.5
5.6.7.8
Clients
Server
Internet
NAT
1.2.3.4
192.2.3.4:1001 1.2.3.4:2000
5.6.7.8 192.2.3.480 1001
5.6.7.8 192.2.3.480 1001
19
37
Network Address Translation (cont’d)
� Independently assign addresses to machines behind same NAT
� Usually in address block 192.168.0.0/16
� Use port numbers to multiplex demultiplex internal addresses
192.2.3.4
192.2.3.5
5.6.7.8
Clients
Server
Internet
NAT
1.2.3.4
192.2.3.4:1001 1.2.3.4:2000
192.2.3.5:1001 1.2.3.4:2001
5.6.7.8 192.2.3.5 80 1001
5.6.7.8 192.2.3.5 80 1001
38
Network Address Translation (cont’d)
� Independently assign addresses to machines behind same NAT
� Usually in address block 192.168.0.0/16
� Use port numbers to multiplex demultiplex internal addresses
192.2.3.4
192.2.3.5
5.6.7.8
Clients
Server
NAT
1.2.3.4
192.2.3.4:1001 1.2.3.4:2000
5.6.7.8 1.2.3.4 80 2001
192.2.3.5:1001 1.2.3.4:2001
5.6.7.8 192.2.3.5 80 1001
20
39
Network Address Translation (cont’d)
� Independently assign addresses to machines behind same NAT
� Usually in address block 192.168.0.0/16
� Use port numbers to multiplex demultiplex internal addresses
192.2.3.4
192.2.3.5
5.6.7.8
Clients
Server
NAT
1.2.3.4
192.2.3.4:1001 1.2.3.4:2000
5.6.7.8 1.2.3.4 80 2001
192.2.3.5:1001 1.2.3.4:2001
5.6.7.8 1.2.3.4 80 2001
40
Network Address Translation (cont’d)
� Independently assign addresses to machines behind same NAT
� Usually in address block 192.168.0.0/16
� Use port numbers to multiplex demultiplex internal addresses
192.2.3.4
192.2.3.5
5.6.7.8
Clients
Server
NAT
1.2.3.4
192.2.3.4:1001 1.2.3.4:2000
192.2.3.5:1001 1.2.3.4:2001
1.2.3.45.6.7.880 2001 1.2.3.45.6.7.880 2001
21
41
Network Address Translation (cont’d)
� Independently assign addresses to machines behind same NAT
� Usually in address block 192.168.0.0/16
� Use port numbers to multiplex demultiplex internal addresses
192.2.3.4
192.2.3.5
5.6.7.8
Clients
Server
NAT
1.2.3.4
192.2.3.4:1001 1.2.3.4:2000
192.2.3.5:1001 1.2.3.4:2001
1.2.3.45.6.7.880 2001
5.6.7.8 192.2.3.580 1001
42
Network Address Translation (cont’d)
� Independently assign addresses to machines behind same NAT
� Usually in address block 192.168.0.0/16
� Use port numbers to multiplex demultiplex internal addresses
192.2.3.4
192.2.3.5
5.6.7.8
Clients
Server
NAT
1.2.3.4
192.2.3.4:1001 1.2.3.4:2000
192.2.3.5:1001 1.2.3.4:2001
5.6.7.8 192.2.3.580 1001
5.6.7.8 192.2.3.580 1001
22
43
Hard Policy Questions
� How much address space per geographic region?� Equal amount per country?
� Proportional to the population?
� What about addresses already allocated?
� Address space portability?� Keep your address block when you change providers?
� Pro: avoid having to renumber your equipment
� Con: reduces the effectiveness of address aggregation
� Keeping the address registries up to date?� What about mergers and acquisitions?
� Delegation of address blocks to customers?
� As a result, the registries are often out of date
44
Summary of IP Addressing
� 32-bit numbers identify interfaces
� Allocated in prefixes
� Non-uniform hierarchy for scalability and flexibility
� Routing is based on CIDR
� A number of special-purpose blocks reserved
� Address allocation:
� ICANN ⇒ RIR ⇒ ISP ⇒ customer network ⇒ host
� Issues to be covered later� How hosts get their addresses (DHCP)
� How to map from an IP address to a link address (ARP)
23
45
Next Lecture
� IP Forwarding; Transport protocols
� Read K&R: 3-3.4 (pp 195-240)