Classful IP Addresses

advertisement
IPv4 Addresses
Internet Protocol: Which version?
There are currently two versions of the Internet Protocol in
use for the Internet
• IPv4 (IP Version 4)
•
•
•
•
Specified in 1980/81 (RFC 760, 791)
Four byte addresses
Universally deployed
Problem: Address space almost exhausted
• IPv6 (IP Version 6)
•
•
•
•
Specification from 1998 (RFC 2460)
Significant differences to IPv4, but not fundamental changes
16-byte addresses
Problem: Not widely used (yet?)
Slow adoption of IPv6
• IPv6 is available since 15 years, and almost all operating
systems now support it
• But IPv6 is not yet widely adopted
• Measurements at Internet Exchange Point in Amsterdam:
linear
semi-log
Slow adoption of IPv6
• IPv6 is available since 15 years, and almost all operating
systems now support it
• But IPv6 is not yet widely adopted
• Measurements at Internet Exchange Point in Amsterdam:
linear
ECE 461: IPv4 based
We use IPv4 throughout in lecture, labs, and assignment
IPv6 concepts are discussed in the lecture
IPv4 Addresses
32 bits
version
(4 bits)
header
length
Type of Service/TOS
(8 bits)
flags
(3 bits)
Identification (16 bits)
TTL Time-to-Live
(8 bits)
Total Length (in bytes)
(16 bits)
Protocol
(8 bits)
Fragment Offset (13 bits)
Header Checksum (16 bits)
Source IP address (32 bits)
Destination IP address (32 bits)
Ethernet Header
IP Header
TCP Header
Ethernet frame
Application data
IPv4 Addresses
32 bits
0x4
0x5
0x00
4410
9d08
12810
0102
00000000000002
0x06
8bff
128.143.137.144
128.143.71.21
Ethernet Header
IP Header
TCP Header
Ethernet frame
Application data
IP Addresses
• An IPv4 address is an address of the Internet Protocol
Version 4. When the version is understood from the context
we only say “IP address”
• On the public Internet, an IP address is unique global address
of a network interface
• The IP address is used by hosts and routers for delivery of IP
datagrams
Dotted Decimal Notation
• IPv4 addresses are written using dotted decimal notation:
– Each byte is identified by a decimal number in the range [0..255],
separated by periods (`dots’).
• Example:
10000000
1st Byte
= 128
1100100
2nd Byte
= 100
00001011
3rd Byte
= 11
128.100.11.60
00111100
4th Byte
= 60
Structure of an IP address
• IP address consists of a network prefix and a host number
network prefix
host number
– Network prefix identifies a particular network
– Host number identifies an interface on the network
• The delivery of a packet from a sender to the destination
proceeds in 2 steps:
1. Use network prefix to deliver packet to the right network
2. Once the network is found, use the host number to deliver
packet to the right interface
• How can you determine the length of the network prefix?
Length of network prefix
32 bits
network prefix
host number
Length of
network prefix
• The length of the network prefix must be provided in addition
to the numerical value of the address
• There are two conventions for indicating the length:
1. Add length of the network prefix to address
(“prefix notation”, “slash notation”, “CIDR notation”)
2. Add bitmask of the network prefix in dotted decimal notation
(“netmask”)
Notation of IP address
• Example: Suppose the network prefix is 16 bits long
128.100
11.60
network prefix
host number
netmask 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
255
255
0
• Prefix notation:
128.100.11.60/16
• Netmask notation:
128.100.11.60
255.255.0.0
0
Special IP Addresses
• IP address of a network
– Host number is set to all zeros, e.g., 128.100.0.0
• Broadcast address
– Host number is set to all ones, e.g., 128.100.255.255
– Broadcast goes to all hosts on the network
– The address 255.255.255.255 is a broadcast on the local
network
• Convention for default gateway (but not a reserved address):
– Default gateway has host number set to ‘1’, e.g., 128.100.0.1
Reserved Network Prefixes
• Loopback interfaces:
127.0.0.0/8
– Most systems use 127.0.0.1 as loopback address
– A host can send a packet to itself by sending it to address 127.0.0.1
• Link Local Addresses:
169.254.0.0/16
– Also referred to as auto-configuration
– When a system cannot acquire an IP address, it selects a random
address from the range (it tests whether the address is in use)
– Packets from this address are not forwarded to other networks
• Private networks:
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
– Private networks are IP networks that are not part of the public Internet
– IP addresses need to be unique only within the same private network
• Systems on different private networks can re-use addresses
– When packets cross between private network and public Internet, IP
addresses in header must be modified
Network Prefix and Address Block
• The IP address of a network has the host number set to 0:
128.100.0.0
• Network address with prefix length is called network prefix:
128.100.0.0/16
or
128.100/16
• A network prefix is interpreted as a range of IP addresses:
128.100.0.0/16  128.100.0.0–128.100.255.255
– A network prefix is also called address block
– It provides the range of addresses allowed on the network
– The shorter the network prefix, the larger the address block
Network prefix length and address block size
• To set up a network of a given size, one needs to acquire a
address block with a sufficient number of addresses
Network Prefix
# of IP Addresses
/32
/31
/30
…
/24
/23
/22
/21
/20
…
1
2
4
…
256
512
1,024
2,048
4,096
…
/16
…
65,536
…
/8
…
16,777,216
…
/2
/1
1,073,741,824
2,147,483,648
How does one get an IP network address?
IANA
allocates
RIR
allocates
LIR
(ISP)
assigns
assigns
End user
End user
• Internet Assigned Number Authorities (IANA) manages the global IP
address space.
• IANA allocates addresses to Regional Internet Registries (RIR)
– IANA allocates addresses in /8 address blocks
– All available blocks have been allocated. The last available address block was assigned
in 2011
How does one get an IP network address?
IANA
allocates
RIR
allocates
LIR
(ISP)
assigns
assigns
End user
End user
• RIR allocates addresses to Local Internet Registries (LIR)
– LIRs are generally Internet Service Providers
– Block sizes are /20 or larger
• End users obtain addresses from an RIR or LIR
• Some countries have National Internet Registries (NIR), which are between
the RIR and LIR levels
Regional Internet Registries
• There are five Regional Internet Registries, each responsible
for managing the address space of a large geographic area
• Address blocks managed by the RIRs are listed at:
http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml
Available IPv4 addresses (9/2012)
• RIRs are running
low on IP addresses:
(one /8 address block ≈16.8 million IP addresses)
• Current status of
remaining IP
addresses:
Source: http://www.potaroo.net/tools/ipv4/index.html
(2013)
(2012)
Addresses in RIR
Pool (/8s)
Approximate number
of Addresses
APNIC
0.8363
0.9138
≈ 15
14 million
RIPENCC
0.8681
1.1984
≈ 14.5
million
20 million
ARIN
1.8219
3.3656
≈ 30
56 million
LACNIC
1.9690
3.2246
≈ 33
54 million
AFRINIC
3.6389
4.1441
≈ 61
70 million
IPv4 exhaustion and Migration to IPv6
• The vast majority of IPv4 addresses are used up
 IPv4 exhaustion
• Adoption of IPv6 is driven by IPv4 exhaustion:
– There have been numerous predictions of imminent IPv4 exhaustion
– People have been creative with slowing down IPv4 exhaustion through
policies and protocols
– IPv4 exhaustion will occur gradually, but is increasingly urgent
• As IPv4 addresses become less available, the use of IPv6 is
expected to increase substantially
– The migration from IPv4 to IPv6 is expected to be a slow
transition, lasting a decade or more
– Until then, IPv4 and IPv6 will co-exist
Classful IP Addresses
•
When Internet addresses were standardized (early 1980s),
the Internet address space was divided up into classes
•
Three classes available for interfaces:
– Class A: Network prefix is 8 bits long
– Class B: Network prefix is 16 bits long
– Class C: Network prefix is 24 bits long
•
Two additional classes:
– Class D: Used (multicast) group addresses
– Class E: Reserved for future use
Classful IP Addresses
• The classes were identified by the bit values of the IP address
– Class A: IP address starts with “0”
– Class B: IP address starts with “10”
– Class C: IP address starts with “110”
– Class D: IP address starts with “1110”
– Class E: IP address starts with “11110”
• The length of the network prefix is implied by the address
• There is no need to provide the length of the network prefix
Classful IP Addresses
bit # 0
Class A
1
7 8
31
0
Network Prefix
Host Number
8 bits
24 bits
bit # 0 1 2
Class B
10
15 16
network id
110
host
Network Prefix
Host Number
16 bits
16 bits
bit # 0 1 2 3
Class C
31
23 24
network id
31
host
Network Prefix
Host Number
24 bits
8 bits
Classful IP Addresses
bit # 0 1 2 3 4
Class D
1110
31
multicast group id
bit # 0 1 2 3
Class E
1111
31
(reserved for future use)
• We will learn about multicast addresses later in this course
• Class E addresses have never been released for use
IP Allocation with Classful IP Addresses
• Limited flexibility for obtaining a network address:
Class C: ≤ 224 - 2 = 254 IP addresses:
Class B: ≤ 216 - 2 = 65534 IP addresses
Class A: ≤ 224 - 2 = 16,772,214 IP addresses
• Too few network addresses for large networks
27 = 128
Class A networks
214 = 16,384 Class B networks
• Flat address space. Routing tables in the backbone Internet
need one entry for each network address.
Class C networks: up to 221 = 2,097,152 entries
By 1993, the lookup time of routing tables had become a
bottleneck for Internet performance
Allocation of Classful Addresses
From Classful to Classless
• In 1993, there was a major shift for interpreting and allocating
IP addresses:
until 1993:
after 1993:
Classful
Addresses
Classless
Interdomain
Routing
(CIDR)
CIDR - Classless Interdomain Routing
• CIDR abandons the notion of classes
• Key Concept: The length of the network prefix of IP
addresses can be any value
• Consequences:
• Since the length of the network prefix is no longer
implied by the address, the size of the network
prefix must be provided with an IP address
( CIDR notation)
• Hierarchical routing aggregation introduces
dependency of IP addresses to service provider
• Need for new lookup algorithms for routing tables
Division of IPv4 address space
00000…00
Class A
(231 addresses)
10000…00
11000…00
11100…00
11110…00
Class B
(230 addresses)
Class C (229 addresses)
Class D (228 addresses)
Class E (228 addresses)
unused
addresses
Download