Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
IPv4 Doomsday ?
50 00 40 00 30 00 20 00 10 00 0
19 88 19 89 19 90 19 91 19 92 19 93 19 94 19 95 19 96 19 97 19 98 19 99 20 00 20 01 20 02 20 03 20 04 20 05 20 06 20 07
Theoretical
Usable
Allocated
Addressable
Exponential Growth
Linear Growth
http://www.telstra.net/ops/bgptable.html
Distribution Statement A: Cleared for Public Release; Distribution is unlimited.
14 12
16
10 8
2 0
6 4
Un Ja p an i te d St a S. t es Ko r Ge ea rm an Sw y ed en
Ju
100 90 80 70 60 50 40 30 20 10 0
lAu 99 gSe 99 p9 Oc 9 t- 9 No 9 vDe 99 cJa 99 nFe 00 bM 00 ar Ap 00 r M -00 ay Ju 00 n0 Ju 0 lAu 00 g0 Se 0 p0 Oc 0 t- 0 No 0 vDe 00 c0 Ja 0 nFe 01 bM 01 ar Ap 01 r-0 M 1 ay -0 1
1991 ALE WG studied projections about address consumption rate showed exhaustion by 2008.
Bake-off in mid-1994 selected approach of a new protocol over multiple layers of encapsulation.
CIDR
Aligns routing table size with needs-based address allocation policy. Additional enforced aggregation actually lowered routing table growth rate to linear for a few years.
NAT
Hides many nodes behind limited set of public addresses.
What did intense conservation efforts of the last 5 years buy us?
The lifetime-extending efforts & technologies delivered the ability to absorb the dramatic growth in consumer demand during the late 90s. In short they bought TIME
NO!
NAT enforces a client-server application model where the server has topological constraints.
They wont work for peer-to-peer or devices that are called by others (e.g., IP phones) They inhibit deployment of new applications and services, because all NATs in the path have to be upgraded BEFORE the application can be deployed.
NAT compromises the performance, robustness, and security of the Internet. NAT increases complexity and reduces manageability of the local network. Public address consumption is still rising even with current NAT deployments.
Why is a larger address space needed? Overall Internet is still growing its user base
~320 million users in 2000 : ~550 million users by 2005
Room for many levels of structured hierarchy and routing aggregation Easy address auto-configuration Easier address management and delegation than IPv4 Ability to deploy end-to-end IPsec
(NATs removed as unnecessary)
Expanded addressing capabilities Structured hierarchy to manage routing table growth Serverless autoconfiguration and reconfiguration Streamlined header format and flow identification Improved support for options / extensions
Source address selection Mobility - More efficient and robust mechanisms Security - Built-in, strong IP-layer encryption and authentication Quality of Service Privacy Extensions for Stateless Address Autoconfiguration (RFC 3041)
IPv6 Markets
Home Networking
Set-top box/Cable/xDSL/Ether@Home Residential Voice over IP gateway
Address Complexity
IPv6 has many different kinds of addresses unicast, anycast, multicast, link-local, site-local, loopback, IPv4-embedded, care-of, manuallyassigned, DHCP-assigned, self-assigned, solicited-node, and more most of this complexity is also present in IPv4, just never written down in one place a result of 20 years of protocol evolution one simplification: no broadcast addresses in IPv6! uses multicast to achieve same effects
IPv6 Addresses
3 m n o p 125-mnop
010
Registry ID
Provider ID
Subscriber ID
Subnet ID
Interface ID
Address assignment
provider-based (cant change provider easily) geographic
Prefix 0000 0000 0000 0001 0000 001 0000 010 0000 011 0000 1 0001 001 010 011 100 101 110 1110 1111 0 1111 10 1111 110 1111 1110 0 1111 1110 10 1111 1110 11 1111 1111
Use Reserved Unassigned Reserved for NSAP Allocation Reserved for IPX Allocation Unassigned Unassigned Unassigned Unassigned Provider-Based Unicast Address IPV4-like Unassigned Reserved for Geographic-Based Unicast Addresses Unassigned Unassigned Unassigned Unassigned Unassigned Unassigned Unassigned Link Local Use Addresses no global uniqueness Site Local Use Addresses no global uniqueness Multicast Addresses
IPv6 Header
Ver-
sion
Priority
FlowLabel (24)
NextHeader HopLimit
40-byte base header Extension headers (fixed order, mostly fixed length)
PayloadLen
SourceAddress
DestinationAddress
Next header/data
Routing
Same longest-prefix match routing as IPv4 CIDR Straightforward changes to existing IPv4 routing protocols to handle bigger addresses
unicast: OSPF, RIP-II, IS-IS, BGP4+, multicast: MOSPF, PIM,
Use of Routing header with anycast addresses allows routing packets through particular regions
e.g., for provider selection, policy, performance, etc.
Routing Header
Next Header Hdr Ext Len Routing Type Reserved Segments Left
Address[0]
Address[1]
Transition
Gradual Transition with IPV4 and IPV6 Dual Stack - (both supported on some nodes) Tunneling
When v6 passes through v4 network Encapsulate v6 inside v4 packet with a v6 router as a destination destination router then sends v6 packet lose QoS and other desirable features in v4 segment
Tunneling
B Z IPV4 IPV4
B Z
B
B Z
B
IPV6=C IPV4=Y
IPV6=D IPV4=Z
IPV6=A
IPV6=B
in6_addr
struct in6_addr { uint8_t s6_addr[16]; };
sockaddr_in6
struct sockaddr_in6 { uint8_t sin6_len; sa_family_t sin6_family; in_port_t sin6_port; uint32_t sin6_flowinfo; struct in6_addr sin6_addr; };
Dual Server
In the future it will be important to create servers that handle both IPv4 and IPv6. The work is handled by the O.S. (which contains protocol stacks for both v4 and v6):
automatic creation of IPv6 address from an IPv4 client (IPv4-mapped IPv6 address).
IPv4 client
IPv6 server
IPv4
IPv6 Clients
If an IPv6 client specifies an IPv4 address for the server, the kernel detects and talks IPv4 to the server. DNS support for IPv6 addresses can make everything work.
gethostbyname() returns an IPv4 mapped IPv6 address for hosts that only support IPv4.
We can find out if we are talking to an IPv4 client or server by checking whether the address is an IPv4 mapped address.
Internet Multicast
Overview
IPv4
class D addresses demonstrated with Mbone (uses tunneling) Place least significant 23 bits of IP number in last 23 bits of ETH/FDDI address MSB on in Ethernet indicates multicast
Link-State Multicast
Each host on a LAN periodically announces the groups it belongs to (IGMP). Augment update message (LSP) to include set of groups that have members on a particular LAN. Each router uses Dijkstra's algorithm to compute shortest-path spanning tree for each source/group pair. Each router caches tree for currently active source/group pairs.
source
R1
A
R2
R3
R4
R5
R6
R7
source
R1
A
R2
R1
A
R2
R3
R4
R5
R3
R4
R5
R6
R7
R6
R7
R1
A
R2
R3
R4
R5
R6
R7
source
Distance-Vector Multicast
Reverse Path Broadcast (RPB) Each router already knows that shortest path to destination S goes through router N. When receive multicast packet from S, forward on all outgoing links (except the one on which the packet arrived), iff packet arrived from N. Eliminate duplicate broadcast packets by only letting parent for LAN (relative to S) forward
shortest path to S (learn via distance vector) smallest address to break ties
Goal: Prune networks that have no hosts in group G Step 1: Determine of LAN is a leaf with no members in G
leaf if parent is only router on the LAN determine if any hosts are members of G using IGMP
PIM
RP Join R3 R2 R4 R3 Join R1 (a) R5 R1 (b) R5 R2 R4 RP
RP
Dense Mode
R2 R4 R3
RP
Join
R3
R4
R1 (c)
R5
R1
RP G
G G R3 R2 G R4
RP G
R1 G Host
R5
Open Questions
ATM LANE? Reliable Multicast BGP? Exterior routing protocols