Overview: Addressing

advertisement
Addressing
Jennifer Rexford
Advanced Computer Networks
http://www.cs.princeton.edu/courses/archive/fall08/cos561/
Tuesdays/Thursdays 1:30pm-2:50pm
What is Addressing?
• Providing suitable identifiers to nodes
– So you can direct data to a node
– So you know which node sent the data
– … and how to send data back to that node
• Addressing in the U.S. mail
– Zip code: 08540
– Street: Olden Street
– Building on street: 35
– Room in building: 306
– Name of occupant: Jennifer Rexford
???
Phone Numbers
• Hierarchical
– Country code (1)
– Area code (609)
– Local exchange (258)
– Subscriber number (5182)
• Some exceptions
– 800: indirection service (free for the caller)
– 900: indirection service (billed to the caller)
– Cell phone numbers, where the node is mobile
– ... blurring distinction between name and address
Overview of Today’s Class
• Two widely-used addressing schemes
– Medium Access Control (MAC) addresses
– Internet Protocol (IP) addresses
• Key concepts in addressing
– Number of unique addresses
– Allocating addresses to nodes
– Flat vs. hierarchical structure
– Persistent vs. temporary identifiers
– Handling diminishing address space
– Spoofing of source addresses
• Discussion of Clark88 and Saltzer81 papers
Some Questions
• Could every host on the Internet have an
arbitrary, unique numerical address?
– Would it scale?
• Is hierarchy necessary to make it scale?
– Tying the addressing to the topology & routing?
• What about mobile hosts?
• Who should allocate the addresses?
– Network provider? Device manufacturer?
• Does the sender of the traffic need to
authenticate itself? The destination?
– What about spoofing and impersonation?
Comparing MAC and IP Addresses
MAC
Assignment
IP
Size
Hard-coded in
the adaptor
48 bits
Configured or
learned
32 bits (in v4)
Structure
Flat
Hierarchical
Portability
Constant over life
of the adapter
Delivery within a
single network
Changes with
time and location
Delivery across
an inter-network
Purpose
E.g., social security number vs. postal address
MAC Addresses
MAC Addresses
• Flat name space of 48 bits
– Typically written in six octets in hex
– E.g., 00-15-C5-49-04-A9 for my Ethernet
• Organizationally unique identifier
– Assigned by IEEE Registration Authority
– Determines the first 24 bits of the address
– E.g., 00-15-C5 corresponds to “Dell Inc”
• Remainder of the MAC address
– Allocated by the manufacturer
– E.g., 49-04-A9 for my Ethernet card
Scalability Challenges
• MAC addresses are flat
– Multiple hosts on the same network
– No relationship between MAC addresses
• Data plane
– Forwarding based on MAC address
– Table size? Look-up overhead?
• Control plane
– Determining where the host is located
– Keeping the information up-to-date
Forwarding Frames to Destination Adapter
• Shared media
– Forward all frames on the shared media
– Adapter grabs frames with matching dest address
host
host ...
• Multi-hop switched networks
– Flood every frame over every link?
– Learn where the MAC address is located?
host
host
host
host
host
When to Learn?
• When the adapter connects to the network?
– Requires adaptor to register its presence
– Overhead even when not sending/receiving
– Leading to control messages and large tables
• When the adapter sends a frame?
– Source MAC address is in the frame
– Allows switch to learn about the adapter
• When the adapter needs to receive a frame?
– Destination MAC address is in the frame
– Switch needs to figure out how to get there
Motivation For Self Learning
• Switches forward frames selectively
– Forward frames only on segments that need them
• Switch table
– Maps dest MAC address to outgoing interface
– Goal: construct the switch table automatically
B
A
C
switch
D
Self Learning: Building the Table
• When a frame arrives
– Inspect the source MAC address
– Associate the address with the incoming interface
– Store the mapping in the switch table
– Use a TTL field to eventually forget the mapping
Switch learns
how to reach A.
B
A
C
D
Self Learning: Handling Misses
• When frame arrives with unfamiliar dest
– Forward the frame out all of the interfaces
– … except for the one where the frame arrived
– Hopefully, this case won’t happen very often
Switch floods frame
that is destined to C.
B
A
C
D
Switch Filtering/Forwarding
When switch receives a frame:
index switch table using MAC dest address
if entry found for destination
then {
if dest on segment from which frame arrived
then drop the frame
else forward the frame on interface indicated
}
else flood
forward on all but the interface
on which the frame arrived
MAC Addresses
• Disadvantages
– Large forwarding tables in the data plane
– Flooding overhead to learn location information
– Lack of privacy
• Advantages
– Persistent identifier (well, except for spoofing)
– Mobile hosts are easy to handle
– Forwarding-table look-up is a simple match
COS 461: Internet Control Protocols (#8)
• Dynamic Host Configuration Protocol (DHCP)
– End host learns how to send packets
– Learn IP address, DNS servers, and gateway
• Address Resolution Protocol (ARP)
– Others learn how to send packets to the end host
– Learn mapping between IP and MAC addresses
??? 1.2.3.7 1.2.3.156
host
host ...
DNS
host
host ...
DNS
5.6.7.0/24
1.2.3.0/24
1.2.3.19
router
router
router
COS 461: Hubs and Switches (#10)
• Different devices switch different things
– Physical layer: electrical signals (repeaters, hubs)
– Link layer: frames (bridges, switches)
– Network layer: packets (routers)
• Key ideas in switches
– Self learning of the switch table
– Cut-through switching
– Spanning trees
• Virtual LANs (VLANs)
Frame Packet TCP
header header header
User
data
Application gateway
Transport gateway
Router
Bridge, switch
Repeater, hub
IP Addresses
IP Addressing: Scalability Through Hierarchy
• Hierarchy through IP prefixes
– Routing between networks
– Allocation of address blocks
• Non-uniform hierarchy
– More efficient address allocation
– More complex packet forwarding
• Dealing with limited address space
– Larger address space (IPv6 with 128 bits)
– Sharing a small set of addresses (NAT)
– Dynamic assignment of addresses (DHCP)
Grouping Related Hosts
• The Internet is an “inter-network”
– Used to connect networks together, not hosts
– Needs a way to address a group of hosts
host
host ...
host
host
host ...
host
LAN 2
LAN 1
router
WAN
LAN = Local Area Network
WAN = Wide Area Network
router
WAN
router
Scalability Challenge
• Suppose hosts had arbitrary IP addresses
– Then every router would need a lot of information
– …to know how to direct packets toward the host
1.2.3.4
5.6.7.8
host
host ...
2.4.6.8
host
1.2.3.5
5.6.7.9
host
host ...
2.4.6.9
host
LAN 2
LAN 1
router
WAN
1.2.3.4
1.2.3.5
forwarding table
router
WAN
router
Hierarchy Through Prefixes
• Divided into network and host portions
• 12.34.158.0/24 is 24-bit prefix (28 addresses)
12
34
158
5
00001100 00100010 10011110 00000101
Network (24 bits)
Host (8 bits)
Example IP Address and Subnet Mask
Address
12
34
158
5
00001100 00100010 10011110 00000101
11111111 11111111 11111111 00000000
Mask
255
255
255
0
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
1.2.3.4
1.2.3.7 1.2.3.156
host ...
host
5.6.7.8 5.6.7.9 5.6.7.212
host
host
host ...
host
LAN 2
LAN 1
router
WAN
1.2.3.0/24
5.6.7.0/24
forwarding table
router
WAN
router
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
1.2.3.4
1.2.3.7 1.2.3.156
host ...
host
5.6.7.8 5.6.7.9 5.6.7.212
host
host
host ...
host
LAN 2
LAN 1
router
WAN
router
WAN
router
host
5.6.7.213
1.2.3.0/24
5.6.7.0/24
forwarding table
Classful Addressing (and Dotted Quad Notation)
• In the olden days…
– Class A: 0*
• Very large /8 blocks (e.g., MIT has 18.0.0.0/8)
– Class B: 10*
• Large /16 blocks (e.g,. Princeton has 128.112.0.0/16)
– Class C: 110*
• Small /24 blocks (e.g., AT&T Labs has 192.20.225.0/24)
– Class D: 1110*
• Multicast groups
– Class E: 11110*
• Reserved for future use (sounds a bit scary…)
• And then, address space became scarce…
Classless Inter-Domain Routing (CIDR)
Use two 32-bit numbers to represent a network.
Network number = IP address + Mask
IP Address : 12.4.0.0
Address
Mask
IP Mask: 255.254.0.0
00001100 00000100 00000000 00000000
11111111 11111110 00000000 00000000
Network Prefix
for hosts
Usually written as 12.4.0.0/15
CIDR = Hierarchy in Address Allocation
• Prefixes are key to Internet scalability
– Routing protocols and packet forwarding based on prefixes
– Today, routing tables contain ~150,000-200,000 prefixes
12.0.0.0/16
12.1.0.0/16
12.2.0.0/16
12.3.0.0/16
12.0.0.0/8
:
:
:
12.253.0.0/16
12.254.0.0/16
12.3.0.0/24
12.3.1.0/24
:
:
12.3.254.0/24
12.253.0.0/19
12.253.32.0/19
12.253.64.0/19
12.253.96.0/19
12.253.128.0/19
12.253.160.0/19
12.253.192.0/19
:
:
:
Obtaining a Block of Addresses
• Separation of control
– Prefix: assigned to an institution
– Addresses: assigned to nodes by the institution
• Who assigns prefixes?
– Internet Corp. for Assigned Names and Numbers
• Allocates large blocks to Regional Internet Registries
– Regional Internet Registries (RIRs)
• E.g., ARIN (American Registry for Internet Numbers)
• Allocated to ISPs and large institutions in a region
– Internet Service Providers (ISPs)
• Allocate address blocks to their customers
• Who may, in turn, allocate to their customers…
whois –h whois.arin.net 128.112.136.35
OrgName: Princeton University
OrgID: PRNU
Address: Office of Information Technology
Address: 87 Prospect Avenue
City: Princeton
StateProv: NJ
PostalCode: 08544-2007
Country: US
NetRange: 128.112.0.0 - 128.112.255.255
CIDR: 128.112.0.0/16
NetName: PRINCETON
NetHandle: NET-128-112-0-0-1
Parent: NET-128-0-0-0-0
NetType: Direct Allocation
RegDate: 1986-02-24
Longest Prefix Match Forwarding
• Forwarding tables in IP routers
– Maps each IP prefix to next-hop link(s)
• Destination-based forwarding
– Packet has a destination address
– Router identifies longest-matching prefix
– Pushing complexity into forwarding decisions
forwarding table
destination
12.34.158.5
4.0.0.0/8
4.83.128.0/17
12.0.0.0/8
12.34.158.0/24
126.255.103.0/24
outgoing link
Serial0/0.1
Are 32-bit Addresses Enough?
• Not all that many unique addresses
– 232 = 4,294,967,296 (just over four billion)
– Plus, some are 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: a larger address space
– IPv6 has 128-bit addresses (2128 = 3.403 × 1038)
Short-Term Solutions: Limping Along
• Network Address Translation
(COS 461 lecture #9)
– Allowing multiple hosts to share an IP address
– IP addresses not unique and not end-to-end
138.76.29.7
10.0.0.1
NAT
10.0.0.2
inside
outside
Short-Term Solutions: Limping Along
• Dynamic Host Configuration Protocol
(lecture #8)
– Share a pool of addresses among many hosts
– Dynamically assign an IP address upon request
arriving
client
DHCP server
233.1.2.5
Growth in the Number of IP Prefixes
Internet
bust
Internet
boom
CIDR
pre-CIDR
recovery?
Continued Growth in the Number of Prefixes
• Since 2005
– Now up to 250,000-300,000 prefixes
• Increased concern about scalability
– Data plane: longest-prefix match lookup times
– Control plane: memory and messages for routing
protocols
– http://trac.tools.ietf.org/group/irtf/trac/wiki/RoutingResearchGroup
• Exploration of architectural alternatives
– Avoid routers needing to know all prefixes
– Routing on ASes, using tunnels, caching, etc.
http://trac.tools.ietf.org/group/irtf/trac/wiki/RoutingResearchGroup
Design Philosophy of the DARPA
Internet Protocols
David Clark
Proc. ACM SIGCOMM, 1988
Fundamental Goal
• Effective technique for multiplexed utilization
of existing interconnected networks
• Concrete objective: connect the ARPAnet and
the ARPA packet radio network
• Must grapple with
– Diverse technologies, including legacy networks
– Separate administrative control
Second-Level Goals
• Main goals
– Survivability in the face of failure
– Multiple types of communication service
– Wide variety of network technologies
• Other goals
– Distributed management of resources
– Cost effectiveness
– Host attachment with low level of effort
– Accountability of resources
Design Consequences of the Goals
• Effective multiplexed utilization of existing networks
– Packet switching, not circuit switching
• Continued communication despite network failures
– Routers don’t store state about ongoing transfers
– End hosts provide key communication services
• Support for multiple types of communication service
– Multiple transport protocols (e.g., TCP and UDP)
• Accommodation of a variety of different networks
– Simple, best-effort packet delivery service
– Packets may be lost, corrupted, or delivered out of order
• Distributed management of network resources
– Multiple institutions managing the network
– Intradomain and interdomain routing protocols
Different Goals, Different Outcomes
• What about the unique needs of:
– Network operators for commercial carriers
– Secure, mission-critical networks (e.g., military)
• Different goals, and different priorities
– How would the goals differ?
– How would the priorities differ?
• Different outcomes
– What design decisions would change?
Mismatch With Network Operators
• Accountability of network resources
– But, routers don’t maintain state about transfers
– But, measurement isn’t part of the infrastructure
• Reliability/predictability of services
– But, IP doesn’t provide performance guarantees
– But, equipment is not very reliable (no “five-9s”)
• Fine-grain control over the network
– But, routers don’t do fine-grain resource allocation
– But, network self-configures after failures
• End-to-end control over communication
– But, end hosts adapt to congestion
– But, traffic may traverse multiple domains
Mismatch With Security
• The Internet must support multiplexed
utilization of existing interconnected networks
– Doesn’t consider the need to balance trade-offs
between interconnectivity and security
– Required security mechanisms are driven by the
limitations of the least capable legacy network
• Internet communication must continue despite
loss of networks or gateways
– Oversimplifies the nature of modern threats by not
including cyberattacks, signals intelligence, …
http://www.darpa.mil/STO/solicitations/AGN/index.html
Mismatch With Security
• The Internet must support multiple types of
communications service
– Mission-specific secure networks are not an
appropriate arena for experimentation/innovation
– Lack of separation between user applications and
network services needlessly exposes essential
services to easy attack by users
• The Internet architecture must accommodate
a variety of networks
– Cross-domain security solutions are particularly
difficult to design
Mismatch With Security
• The Internet architecture must permit
distributed management of its resources
– Existing distributed management is largely based
on assumptions of trust, allowing a single inept or
malicious user or administrator to create chaos
– Protocols do not have ways to limit damage from
errors or malicious users
– Defensive systems are layered upon protocols at
additional cost and complexity, instead of being
jointly designed with those protocols
– Configuration complexity and human error are the
largest source of vulnerability in many networks
Mismatch With Security
• Internet architecture must be cost effective
– To the extent that economic considerations may
be a root cause of poor security, a criterion
concerning the cost of network defense should
perhaps have a higher priority
• Internet architecture must permit host
attachment with a low level of effort
– It is unclear what minimum requirements must be
imposed on end systems in a secure network
• Resources used must be accountable
– Authentication and accountability are central to
availability, integrity, and confidentiality
Trade-Offs in Goals
• Is it possible to address these problems
– Decentralized management of the Internet
– Diverse layer-2 technologies like wireless
– Naïve, selfish, or malicious hosts
• Without sacrificing the other goals?
• Without a major change to the architecture?
Download