Lecture8

advertisement
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
Download