Curs_IPv6

Embed Size (px)

Citation preview

  • 8/10/2019 Curs_IPv6

    1/120

    Introduction to IPv6

  • 8/10/2019 Curs_IPv6

    2/120

    Outline

    Protocol Background

    Technology Highlights

    Enhanced Capabilities

    Transition Issues

    Next Steps

  • 8/10/2019 Curs_IPv6

    3/120

    Background

  • 8/10/2019 Curs_IPv6

    4/120

  • 8/10/2019 Curs_IPv6

    5/120

    What Ever Happened to IPv5?

    0 IP March 1977 version(deprecated)

    1 IP January 1978 version (deprecated)

    2 IP February 1978 version A (deprecated)

    3 IP February 1978 version B (deprecated)

    4 IPv4 September 1981 version (current widespread)

    5 ST Stream Transport (not a new IP, littleuse)

    6 IPv6 December 1998 version (formerly SIP, SIPP)

    7 CATNIP IPng evaluation (formerly TP/IX; deprecated)8 Pip IPng evaluation (deprecated)

    9 TUBA IPng evaluation (deprecated)

    10-15 unassigned

  • 8/10/2019 Curs_IPv6

    6/120

    What about technologies & effortsto slow the consumption rate?

    Dial-access / PPP / DHCP Provides temporary allocation aligned with actual endpoint use.

    Strict allocation policies Reduced allocation rates by policy of current-need vs. previous

    policy based on projected-maximum-size.

    CIDR Aligns routing table size with needs-based address allocation

    policy. Additional enforced aggregation actually lowered routingtable growth rate to linear for a few years.

    NAT Hides many nodes behind limited set of public addresses.

  • 8/10/2019 Curs_IPv6

    7/120

    What did intense conservation effortsof the last 5 years buy us? Actual allocation history

    1981IPv4 protocol published

    1985 ~ 1/16 total space

    1990 ~ 1/8 total space

    1995 ~ 1/4 total space 2000 ~ 1/2 total space

    The lifetime-extending efforts & technologies

    delivered the ability to absorb the dramaticgrowth in consumer demand during the late90s.

    In short they boughtTIME

  • 8/10/2019 Curs_IPv6

    8/120

    Would increased use ofNATs be adequate?

    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 byothers (e.g., IP phones)

    They inhibit deployment of new applications and services, becauseall NATs in the path have to be upgraded BEFORE the applicationcan be deployed.

    NAT compromises the performance, robustness, and security of theInternet.

    NAT increases complexity and reduces manageability of the localnetwork.

    Public address consumption is still rising even with current NATdeployments.

  • 8/10/2019 Curs_IPv6

    9/120

    What were the goals of anew IP design?

    Expectation of a resurgence of always-ontechnologies xDSL, cable, Ethernet-to-the-home, Cell-phones, etc.

    Expectation of new users with multiple devices. China, India, etc. as new growth

    Consumer appliances as network devices (1015endpoints)

    Expectation of millions of new networks. Expanded competition and structured delegation.

    (1012sites)

  • 8/10/2019 Curs_IPv6

    10/120

    Return to an End-to-EndArchitecture

    Global

    Addressing

    Realm

    Always-on Devices

    Need an Address

    When You Call Them

    New Technologies/Applications for Home UsersAlways-onCable, DSL, Ethernet@home, Wireless,

  • 8/10/2019 Curs_IPv6

    11/120

    Why is a larger address spaceneeded? Overall Internet is still growing its user base

    ~320 million users in 2000 : ~550 million users by 2005

    Users expanding their connected device count 405 million mobile phones in 2000, over 1 billion by 2005 UMTS Release 5 is Internet Mobility, ~ 300M new Internet connected

    ~1 Billion cars in 2010 15% likely to use GPS and locality based Yellow Page services

    Billions of new Internet appliances for Home users Always-On ; Consumer simplicity required

    Emerging population/geopolitical & economic drivers MIT, Xerox, & Apple each have more address space than all of China

    Moving to an e-Economy requires Global Internet accessibility

    Wh W 128 Bit Ch

  • 8/10/2019 Curs_IPv6

    12/120

    Why Was 128 Bits Chosenas the IPv6 Address Size?

    Proposals for fixed-length, 64-bit addresses Accommodates 1012sites, 1015nodes, at .0001 allocation efficiency (3

    orders of mag. more than IPng requirement)

    Minimizes growth of per-packet header overhead

    Efficient for software processing on current CPU hardware

    Proposals for variable-length, up to 160 bits Compatible with deployed OSI NSAP addressing plans

    Accommodates auto-configuration using IEEE 802 addresses

    Sufficient structure for projected number of service providers

    Settled on fixed-length, 128-bit addresses (340,282,366,920,938,463,463,374,607,431,768,211,456 in all!)

  • 8/10/2019 Curs_IPv6

    13/120

    Benefits of128 bit Addresses

    Room for many levels of structured hierarchyand routing aggregation

    Easy address auto-configuration Easier address management and delegation

    than IPv4

    Ability to deploy end-to-end IPsec(NATs removed as unnecessary)

  • 8/10/2019 Curs_IPv6

    14/120

    Incidental Benefits ofNew Deployment

    Chance to eliminate some complexity in IPheader

    improve per-hop processing Chance to upgrade functionality

    multicast, QoS, mobility

    Chance to include new features binding updates

  • 8/10/2019 Curs_IPv6

    15/120

    Summary of Main IPv6 Benefits 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

  • 8/10/2019 Curs_IPv6

    16/120

    IPv6 Advanced Features 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 AddressAutoconfiguration (RFC 3041)

  • 8/10/2019 Curs_IPv6

    17/120

    IPv6 Markets

    Home Networking

    Set-top box/Cable/xDSL/Ether@Home

    Residential Voice over IP gateway

    Gaming (10B$ market) Sony, Sega, Nintendo, Microsoft

    Mobile devices

    Consumer PC

    Consumer Devices Sony (Mar/01 - energetically introducing IPv6 technology into hardware products )

    Enterprise PC

    Service Providers

    Regional ISP, Carriers, Mobile ISP, and Greenfield ISPs

  • 8/10/2019 Curs_IPv6

    18/120

    IPv6 Markets

    Academic NRN: Internet-II (Abilene, vBNS+), Canarie*3, Renater-II, Surfnet, DFN,

    CERNET, 6REN/6TAP

    Geographies & Politics: Prime Minister of Japan called for IPv6 (taxes reduction)

    EEC summit PR advertised IPv6 as the way to go for Europe

    China Vice minister of MII deploying IPv6 with the intent to take aleadership position and create a market force

    Wireless (PDA, Mobile, Car,...): Multiple phases before deployment

    RFP -> Integration -> trial -> commercial

    Requires client devices, eg. IPv6 handset ?

  • 8/10/2019 Curs_IPv6

    19/120

    Outline

    Protocol Background

    Technology Highlights

    Enhanced Capabilities

    Transition Issues

    Next Steps

  • 8/10/2019 Curs_IPv6

    20/120

    A new Header

  • 8/10/2019 Curs_IPv6

    21/120

    0 31

    Version Class Flow Label

    Payload Length Next Header Hop Limit

    128 bit Source Address

    128 bit Destination Address

    4 12 2416

    The IPv6 Header40 Octets, 8 fields

  • 8/10/2019 Curs_IPv6

    22/120

    0 31

    Ver IHL Total Length

    Identifier Flags Fragment Offset

    32 bit Source Address

    32 bit Destination Address

    4 8 2416

    Service Type

    Options and Padding

    Time to Live Header ChecksumProtocol

    The IPv4 Header20 octets + options : 13 fields, including 3 flag bits

    shaded fields are absent from IPv6 header

  • 8/10/2019 Curs_IPv6

    23/120

  • 8/10/2019 Curs_IPv6

    24/120

    Extension Headers

    next h eader =

    TCP

    TCP header + data

    IPv6 header

    next header =

    Rout ing

    TCP header + dataRouting header

    next header =

    TCP

    IPv6 header

    next header =

    Rout ing

    fragment of TCP

    header + data

    Routing header

    next header =

    Fragment

    Fragment header

    next header =

    TCP

    IPv6 header

  • 8/10/2019 Curs_IPv6

    25/120

    Extension Headers (cont.)

    Generally processed only by node identified inIPv6 Destination Address field => much loweroverhead than IPv4 options processing exception: Hop-by-Hop Options header

    Eliminated IPv4s 40-byte limit on options in IPv6, limit is total packet size,

    or Path MTU in some cases

    Currently defined extension headers: Hop-by-Hop Options, Routing, Fragment,

    Authentication, Encryption, Destination Options

  • 8/10/2019 Curs_IPv6

    26/120

    Fragment Header

    though discouraged, can use IPv6 Fragmentheader to support upper layers that do not (yet)do path MTU discovery

    IPv6 frag. & reasm. is an end-to-end function;routers do not fragment packets en-route if toobigthey send ICMP packet too big instead

    Next Header

    Original Packet Identifier

    Reserved Fragment Offset 0 0 M

  • 8/10/2019 Curs_IPv6

    27/120

    Routing Header

  • 8/10/2019 Curs_IPv6

    28/120

  • 8/10/2019 Curs_IPv6

    29/120

    Routing Header

    Address[1]

    Reserved

    Address[0]

    Next Header Hdr Ext Len Routing Type Segments Left

    f

  • 8/10/2019 Curs_IPv6

    30/120

    SA

    B

    D

    Example of Using the RoutingHeader

  • 8/10/2019 Curs_IPv6

    31/120

    Addressing

  • 8/10/2019 Curs_IPv6

    32/120

    Some Terminology

    node a protocol module that implements IPv6

    router a node that forwards IPv6 packets not explicitlyaddressed to itself

    host any node that is not a routerlink a communication facility or medium over which

    nodes can communicate at the link layer,i.e., the layer immediately below IPv6

    neighbors nodes attached to the same link

    interface a nodes attachment to a linkaddress an IPv6-layer identifier for an interface or a set

    of interfaces

  • 8/10/2019 Curs_IPv6

    33/120

    Text Representation of Addresses

    Preferred form:1080:0:FF:0:8:800:200C:417A

    Compressed form: FF01:0:0:0:0:0:0:43

    becomes FF01::43

    IPv4-compatible: 0:0:0:0:0:0:13.1.68.3

    or ::13.1.68.3

  • 8/10/2019 Curs_IPv6

    34/120

    IPv6 - Addressing Model

    Link-LocalSite-LocalGlobal

    Addresses are assigned to interfaces

    No change from IPv4 Model

    Interface expected to have multiple addresses

    Addresses have scope

    Link Local

    Site Local

    Global

    Addresses have lifetime

    Valid and Preferred lifetime

  • 8/10/2019 Curs_IPv6

    35/120

  • 8/10/2019 Curs_IPv6

    36/120

    Interface Address set Loopback

    (only assigned to a single virtual interface per node)

    Link local

    Site local

    Auto-configured 6to4 (if IPv4 public is address available)

    Auto-configured IPv4 compatible (operationally discouraged)

    Solicited node Multicast

    All node multicast

    Global anonymous

    Global published

  • 8/10/2019 Curs_IPv6

    37/120

    D ti ti Add S l ti

  • 8/10/2019 Curs_IPv6

    38/120

    Destination Address SelectionRules

    Rule 1: Avoid unusable destinations

    Rule 2: Prefer matching scope Rule 3: Avoid dst with matching deprecated src address Rule 4: Prefer home addresses Rule 5: Prefer matching labelfrom policy table

    Native IPv6 source > native IPv6 destination

    6to4 source > 6to4 destination

    IPv4-compatible source > IPv4-compatible destination

    IPv4-mapped source> IPv4-mapped destination

    Rule 6: Prefer higher precedence Rule 7: Prefer smaller scope

    Rule 8: Use longest matching prefix Rule 9: Order returned by DNS

    Local policy may override

  • 8/10/2019 Curs_IPv6

    39/120

    Address Type Prefixes

    Address type Binary prefix

    IPv4-compatible 0000...0 (96 zero bits)

    global unicast 001

    link-local unicast 1111 1110 10

    site-local unicast 1111 1110 11

    multicast 1111 1111

    all other prefixes reserved (approx. 7/8ths of total)

    anycast addresses allocated from unicast prefixes

  • 8/10/2019 Curs_IPv6

    40/120

    site

    topology

    (16 bits)

    interface

    identifier

    (64 bits)

    public

    topology

    (45 bits)

    interface IDSLA*NLA*TLA001

    Global Unicast Addresses

    TLA = Top-Level AggregatorNLA* = Next-Level Aggregator(s)SLA* = Site-Level Aggregator(s)

    all subfields variable-length, non-self-encoding (likeCIDR)

    TLAs may be assigned to providers or exchanges

  • 8/10/2019 Curs_IPv6

    41/120

    Link-local addresses for use during auto-configurationand when no routers are present:

    Site-local addresses for independence from changesof TLA / NLA*:

    Link-Local & Site-Local Unicast

    Addresses

    1111111010 0 interface ID

    1111111011 0 interface IDSLA*

  • 8/10/2019 Curs_IPv6

    42/120

    Interface IDs

    Lowest-order 64-bit field of unicast addressmay be assigned in several different ways:

    auto-configured from a 64-bit EUI-64, or expandedfrom a 48-bit MAC address (e.g., Ethernet address)

    auto-generated pseudo-random number(to address privacy concerns)

    assigned via DHCP manually configured

    possibly other methods in the future

    Some Special P rpose Unicast

  • 8/10/2019 Curs_IPv6

    43/120

    Some Special-Purpose UnicastAddresses

    The unspecified address, used as a placeholder whenno address is available:

    0:0:0:0:0:0:0:0

    The loopback address, for sending packets to self:

    0:0:0:0:0:0:0:1

  • 8/10/2019 Curs_IPv6

    44/120

    Multicast Address Format

    flag field low-order bit indicates permanent/transient group

    (three other flags reserved)

    scope field: 1 - node local 8 - organization-local 2 - link-local B - community-local

    5 - site-local E - global (all other values reserved)

    map IPv6 multicast addresses directly into low order32 bits of the IEEE 802 MAC

    FP (8bits) Flags (4bits) Scope (4bits) Group ID (32bits)

    11111111 000T Lcl/Sit/Gbl Locally administered

    RESERVED (80bits)

    MUST be 0

    Multicast Address Format

  • 8/10/2019 Curs_IPv6

    45/120

    Multicast Address FormatUnicast-Prefix based

    P = 1 indicates a multicast address that is assigned based on the

    network prefix

    plen indicates the actual length of the network prefix

    Source-specific multicast addresses is accomplished by setting P = 1

    plen = 0

    network prefix = 0

    draft-ietf-ipngwg-uni-based-mcast-01.txt

    FP (8bits) Flags (4bits) Scope (4bits) Group ID (32bits)

    11111111 00PT Lcl/Sit/Gbl Auto configured

    reserved (8bits)

    MUST be 0

    plen (8bits)

    Locallyadministered

    Network Prefix(64bits)

    Unicast prefix

  • 8/10/2019 Curs_IPv6

    46/120

    Outline

    Protocol Background

    Technology Highlights

    Enhanced Capabilities

    Transition Issues

    Next Steps

  • 8/10/2019 Curs_IPv6

    47/120

    Security

  • 8/10/2019 Curs_IPv6

    48/120

    IPv6 Security

    All implementations required to supportauthentication and encryption headers (IPsec)

    Authentication separate from encryption for usein situations where encryption is prohibited orprohibitively expensive

    Key distribution protocols are under

    development (independent of IP v4/v6) Support for manual key configuration required

  • 8/10/2019 Curs_IPv6

    49/120

    Authentication Header

    Destination Address + SPI identifies securityassociation state (key, lifetime, algorithm, etc.)

    Provides authentication and data integrity for all fieldsof IPv6 packet that do not change en-route

    Default algorithm is Keyed MD5

    Next Header Hdr Ext Len

    Security Parameters Index (SPI)

    Reserved

    Sequence Number

    Authentication Data

  • 8/10/2019 Curs_IPv6

    50/120

    Encapsulating Security Payload

    (ESP)

    Payload

    Next Header

    Security Parameters Index (SPI)

    Sequence Number

    Authentication Data

    Padding LengthPadding

  • 8/10/2019 Curs_IPv6

    51/120

    Quality of Service

  • 8/10/2019 Curs_IPv6

    52/120

    IP Quality of Service Approaches

    Two basic approaches developed by IETF:

    Integrated Service (int-serv)

    fine-grain (per-flow), quantitative promises(e.g., x bits per second), uses RSVP signaling

    Differentiated Service (diff-serv)

    coarse-grain (per-class), qualitative promises(e.g., higher priority), no explicit signaling

  • 8/10/2019 Curs_IPv6

    53/120

    IPv6 Support for Int-Serv

    20-bit Flow Label field to identify specificflows needing special QoS

    each source chooses its own Flow Labelvalues; routers use Source Addr + FlowLabel to identify distinct flows

    Flow Label value of 0 used when no special

    QoS requested (the common case today) this part of IPv6 is not standardized yet, and

    may well change semantics in the future

  • 8/10/2019 Curs_IPv6

    54/120

    IPv6 Support for Diff-Serv

    8-bit Traffic Class field to identify specificclasses of packets needing special QoS

    same as new definition of IPv4 Type-of-Service byte

    may be initialized by source or by routerenroute; may be rewritten by routers enroute

    traffic Class value of 0 used when no specialQoS requested (the common case today)

  • 8/10/2019 Curs_IPv6

    55/120

    Compromise

    Signaled diff-serv (RFC 2998)

    uses RSVP for signaling with course-grainedqualitative aggregate markings

    allows for policy control without requiring per-routerstate overhead

  • 8/10/2019 Curs_IPv6

    56/120

    Mobility

  • 8/10/2019 Curs_IPv6

    57/120

    IPv6 Mobility Mobile hosts have one or more home address

    relatively stable; associated with host name in DNS

    A Host will acquire a foreign address when it discovers itis in a foreign subnet (i.e., not its home subnet)

    uses auto-configuration to get the address registers the foreign address with a home agent,

    i.e, a router on its home subnet

    Packets sent to the mobiles home address(es) are

    intercepted by home agent and forwarded to the foreignaddress, using encapsulation

    Mobile IPv6 hosts will send binding-updates tocorrespondent to remove home agent from flow

  • 8/10/2019 Curs_IPv6

    58/120

    Mobile IP (v4 version)

    home agent

    home location of mobile host

    foreign agent

    mobile host

    correspondent

    host

  • 8/10/2019 Curs_IPv6

    59/120

    Mobile IP (v4 version)

    home agent

    home location of mobile host

    foreign agent

    mobile host

    correspondent

    host

  • 8/10/2019 Curs_IPv6

    60/120

    Mobile IP (v4 version)

    home agent

    home location of mobile host

    foreign agent

    mobile host

    correspondent

    host

  • 8/10/2019 Curs_IPv6

    61/120

    Mobile IP (v4 version)

    home agent

    home location of mobile host

    foreign agent

    mobile host

    correspondent

    host

  • 8/10/2019 Curs_IPv6

    62/120

    Mobile IP (v6 version)

    home agent

    home location of mobile host

    mobile host

    correspondent

    host

  • 8/10/2019 Curs_IPv6

    63/120

    Mobile IP (v6 version)

    home agent

    home location of mobile host

    mobile host

    correspondent

    host

  • 8/10/2019 Curs_IPv6

    64/120

    Mobile IP (v6 version)

    home agent

    home location of mobile host

    mobile host

    correspondent

    host

  • 8/10/2019 Curs_IPv6

    65/120

    Mobile IP (v6 version)

    home agent

    home location of mobile host

    mobile host

    correspondent

    host

  • 8/10/2019 Curs_IPv6

    66/120

    Mobile IP (v6 version)

    home agent

    home location of mobile host

    mobile host

    correspondent

    host

  • 8/10/2019 Curs_IPv6

    67/120

    IPv6 Routing

  • 8/10/2019 Curs_IPv6

    68/120

    RIPng

    RIPv2, supports split-horizon withpoisoned reverse

    RFC2080

  • 8/10/2019 Curs_IPv6

    69/120

    BGP4+ Overview

    Added IPv6 address-family

    Added IPv6 transport

    Runs within the same process - only oneAS supported

    All generic BGP functionality works as forIPv4

    Added functionality to route-maps andprefix-lists

  • 8/10/2019 Curs_IPv6

    70/120

    IPv6 routing

    OSPF & ISIS updated for IPv6

  • 8/10/2019 Curs_IPv6

    71/120

    Outline

    Protocol Background

    Technology Highlights

    Enhanced Capabilities

    Transition Issues

    Next Steps

  • 8/10/2019 Curs_IPv6

    72/120

    Porting Issues

  • 8/10/2019 Curs_IPv6

    73/120

    Effects on higher layers

    Changes TCP/UDP checksum pseudo-header

    Affects anything that reads/writes/stores/passes IPaddresses (just about every higher protocol)

    Packet lifetime no longer limited by IP layer(it never was, anyway!)

    Bigger IP header must be taken into account whencomputing max payload sizes

    New DNS record type: AAAA and (new) A6

  • 8/10/2019 Curs_IPv6

    74/120

    Sockets API Changes Name to Address Translation Functions Address Conversion Functions

    Address Data Structures

    Wildcard Addresses

    Constant Additions

    Core Sockets Functions

    Socket Options

    New Macros

  • 8/10/2019 Curs_IPv6

    75/120

    Core Sockets Functions

    Core APIsUse IPv6 Family and Address Structures

    socket() Uses PF_INET6

    Functions that pass addressesbind()

    connect()

    sendmsg()sendto()

    Functions that return addressesaccept()

    recvfrom()

    recvmsg()

    getpeername()

    getsockname()

  • 8/10/2019 Curs_IPv6

    76/120

    Name to Address Translation getaddrinfo()

    Pass in nodename and/or servicename string Can Be Address and/or Port

    Optional Hints for Family, Type and Protocol FlagsAI_PASSIVE, AI_CANNONNAME, AI_NUMERICHOST,

    AI_NUMERICSERV, AI_V4MAPPED, AI_ALL, AI_ADDRCONFIG

    Pointer to Linked List of addrinfo structures Returned Multiple Addresses to Choose From

    freeaddrinfo()

    struct addrinfo {

    int ai_flags;

    int ai_family;

    int ai_socktype;

    int ai_protocol;

    size_t ai_addrlen;

    char *ai_canonname;

    struct sockaddr *ai_addr;

    struct addrinfo *ai_next;

    };

    int getaddrinfo(IN const char FAR * nodename,

    IN const char FAR * servname,

    IN const struct addrinfo FAR * hints,

    OUT struct addrinfo FAR * FAR * res

    );

  • 8/10/2019 Curs_IPv6

    77/120

    Address to Name Translation getnameinfo()

    Pass in address (v4 or v6) and port Size Indicated by salen

    Also Size for Name and Service buffers (NI_MAXHOST, NI_MAXSERV)

    Flags

    NI_NOFQDN

    NI_NUMERICHOST NI_NAMEREQD

    NI_NUMERICSERV

    NI_DGRAM

    int getnameinfo(

    IN const struct sockaddr FAR * sa,

    IN socklen_t salen,

    OUT char FAR * host,

    IN size_t hostlen,

    OUT char FAR * serv,IN size_t servlen,

    IN int flags

    );

  • 8/10/2019 Curs_IPv6

    78/120

    Porting Environments Node Types

    IPv4-only

    IPv6-only

    IPv6/IPv4

    Application Types IPv6-unaware

    IPv6-capable

    IPv6-required

    IPv4 Mapped Addresses

  • 8/10/2019 Curs_IPv6

    79/120

    Porting Issues Running on ANY System

    Including IPv4-only

    Address Size Issues

    New IPv6 APIs for IPv4/IPv6

    Ordering of API Calls

    User Interface Issues

    Higher Layer Protocol Changes

  • 8/10/2019 Curs_IPv6

    80/120

    Specific things to look for

    Storing IP address in 4 bytes of an array. Use of explicit dotted decimal format in UI.

    Obsolete / New:

    AF_INET replaced by AF_INET6

    SOCKADDR_IN replaced by SOCKADDR_STORAGE

    IPPROTO_IP replaced by IPPROTO_IPV6

    IP_MULTICAST_LOOP replaced by SIO_MULTIPOINT_LOOPBACK

    gethostbyname replaced by getaddrinfo

    gethostbyaddr replaced by getnameinfo

  • 8/10/2019 Curs_IPv6

    81/120

    IPv6 literal addresses in URLs

    From RFC 2732

    Literal IPv6 Address Format in URL's Syntax To use a literal IPv6 address in a

    URL, the literal address should be enclosed in [ and ] characters. For

    example the following literal IPv6 addresses:

    FEDC:BA98:7654:3210:FEDC:BA98:7654:3210

    3ffe:2a00:100:7031::1

    ::192.9.5.5

    2010:836B:4179::836B:4179

    would be represented as in the following example URLs:

    http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html

    http://[3ffe:2a00:100:7031::1]

    http://[::192.9.5.5]/ipng

    http://[2010:836B:4179::836B:4179]

  • 8/10/2019 Curs_IPv6

    82/120

    Other Issues

    Renumbering & Mobility routinely result in changing IPAddresses

    Use Names and Resolve, Dont Cache

    Multihomed Servers More Common with IPv6

    Try All Addresses Returned

    Using New IPv6 Functionality

  • 8/10/2019 Curs_IPv6

    83/120

    Porting Steps -Summary

    Use IPv4/IPv6 Protocol/Address Family

    Fix Address Structuresin6_addr

    sockaddr_in6

    sockaddr_storage to allocate storage

    Fix Wildcard Address Usein6addr_any, IN6ADDR_ANY_INIT

    in6addr_loopback, IN6ADDR_LOOPBACK_INIT

    Use IPv6 Socket OptionsIPPROTO_IPV6, Options as Needed

    Use getaddrinfo()For Address Resolution

  • 8/10/2019 Curs_IPv6

    84/120

    IPv4 - IPv6Co-Existence / Transition

    v me ne(A pragmatic projection)

  • 8/10/2019 Curs_IPv6

    85/120

    (A pragmatic projection)

    Q

    1

    Q

    2

    Q

    3

    Q

    4

    2007

    Q

    1

    Q

    2

    Q

    3

    Q

    4

    2004

    Q

    1

    Q

    2

    Q

    3

    Q

    4

    2003

    Q

    1

    Q

    2

    Q

    3

    Q

    4

    2000

    Q

    1

    Q

    2

    Q

    3

    Q

    4

    2001

    Q

    1

    Q

    2

    Q

    3

    Q

    4

    2002

    Q

    1

    Q

    2

    Q

    3

    Q

    4

    2005

    Q

    1

    Q

    2

    Q

    3

    Q

    4

    2006

    Consumer adoption

    Enterprise adoption

    =>adoption

  • 8/10/2019 Curs_IPv6

    86/120

  • 8/10/2019 Curs_IPv6

    87/120

    Impediments to IPv6 deployment

    ApplicationsApplications

    Applications

    Move to the new APIs NOW

  • 8/10/2019 Curs_IPv6

    88/120

    Transition / Co-Existence Techniques

    A wide range of techniques have been identified and implemented,basically falling into three categories:

    (1) dual-stacktechniques, to allow IPv4 and IPv6 to

    co-exist in the same devices and networks (2) tunnelingtechniques, to avoid order

    dependencies when upgrading hosts, routers, orregions

    (3) translationtechniques, to allow IPv6-onlydevices to communicate with IPv4-only devices

    Expect all of these to be used, in combination

  • 8/10/2019 Curs_IPv6

    89/120

    Dual-Stack Approach

    When adding IPv6 to a system, do notdelete IPv4

    this multi-protocol approach is familiar andwell-understood (e.g., for AppleTalk, IPX, etc.)

    note: in most cases, IPv6 will be bundled withnew OS releases, not an extra-cost add-on

    Applications (or libraries) choose IP version to use

    when initiating, based on DNS response:

    Prefer scope match first, when equal IPv6 over IPv4

    when responding, based on version of initiating packet This allows indefinite co-existence of IPv4 and IPv6, and gradual

    app-by-app upgrades to IPv6 usage

    Tunnels to Get Through

  • 8/10/2019 Curs_IPv6

    90/120

    gIPv6-Ignorant Routers Encapsulate IPv6 packets inside IPv4 packets

    (or MPLS frames)

    Many methods exist for establishing tunnels:

    manual configuration

    tunnel brokers (using web-based service to create a tunnel)

    automatic (depricated, using IPv4 as low 32bits of IPv6)

    6-over-4 (intra-domain, using IPv4 multicast as virtual LAN)

    6-to-4 (inter-domain, using IPv4 addr as IPv6 site prefix)

    Can view this as:

    IPv6 using IPv4 as a virtual NBMA link-layer, or an IPv6 VPN (virtual public network), over the IPv4 Internet

  • 8/10/2019 Curs_IPv6

    91/120

  • 8/10/2019 Curs_IPv6

    92/120

    Tunnels

    6to4 Configured

    Automatic

  • 8/10/2019 Curs_IPv6

    93/120

    6to4 tunnels

    IPv4IPv6 IPv6

    6to4 prefix is 2002::/16 + IPv4 address.

    2002:a.b.c.d::/48 IPv6 Internet6to4 relay

    2002:B00:1::1

    Announces 2002::/16 to the IPv6 Internet

    130.67.0.1 148.122.0.1

    11.0.0.1

    2002:8243:1::/48

    2002:947A:1::/48

    FP (3bits)

    TLA (13bits)

    IPv4 Address (32bits)

    SLA ID (16bits)

    Interface ID (64bits)

    001 0x0002 ISP assigned Locally administered Auto configured

  • 8/10/2019 Curs_IPv6

    94/120

    6to4 tunnels II

    Pros ConsMinimal configuration All issues that NMBA

    networks have.

    Only site border router

    needs to know about 6to4

    Requires relay router to

    reach native IPv6 Internet

    Works without adjacentnative IPv6 routers

    Has to use 6to4addresses, not native.

    NB: there is a draft describing how to use IPv4 anycast to reach the relay router.

    (This is already supported, by our implementation...)

  • 8/10/2019 Curs_IPv6

    95/120

    Configured tunnels

    IPv4IPv6 IPv6

    3ffe:c00:1::/48

    3ffe:c00:2::/48

    130.67.0.1 148.122.0.1

    --------------------------------------

    |IPv4 header|IPv6 header IPv6 payload|

    --------------------------------------

    IPv4 protocol type = 41

  • 8/10/2019 Curs_IPv6

    96/120

    Configured tunnels II

    Pros ConsAs point to point links Has to be configured and

    managed

    Multicast Inefficient traffic patterns

    Real addresses No keepalive mechanism,interface is always up

  • 8/10/2019 Curs_IPv6

    97/120

    Automatic tunnels

    IPv4IPv6 IPv6

    Connects dual stacked nodes

    Quite obsoleteIPv6 Internet

    130.67.0.1

    ::130.67.0.1

    148.122.0.1

    ::148.122.0.1

    IPv4 Address (32bits)

    ISP assignedDefined

    0

  • 8/10/2019 Curs_IPv6

    98/120

  • 8/10/2019 Curs_IPv6

    99/120

    Tunneling issues

    IPv4 fragmentation needs to be reconstructed attunnel endpoint.

    No translation of Path MTU messages betweenIPv4 & IPv6.

    Translating IPv4 ICMP messages and pass backto IPv6 originator.

    May result in an inefficient topology.

  • 8/10/2019 Curs_IPv6

    100/120

    Tunneling issues II

    Tunnel interface is always up. Use routingprotocol to determine link failures.

    Be careful with using the same IPv4 sourceaddress for several tunneling mechanisms.Demultiplexing incoming packets is difficult.

  • 8/10/2019 Curs_IPv6

    101/120

    Deployment scenarios

    Many ways to deliver IPv6 services to End Users

    Most important is End to End IPv6 traffic forwarding

    Service Providers and Enterprises may have

    different deployment needs IPv6 over IPv4 tunnels

    Dedicated Data Link layers for native IPv6

    no impact on IPv4 traffic & revenues

    Dual stack Networks

    IPv6 over MPLS or IPv4-IPv6 Dual Stack Routers

  • 8/10/2019 Curs_IPv6

    102/120

    Media - Interface Identifier

    IEEE interfaces - EUI-64

    MAC-address: 0050.a218.0c38

    Interface ID: 250:A2FF:FE18:C38

    P2P links (HDLC, PPP) Interface ID: 50:A218:C00:D

    48 bits from the first MAC address in the box + 16bit interface index. U/L bit off

    IPv4 tunnels Interface ID: ::a.b.c.d

  • 8/10/2019 Curs_IPv6

    103/120

    Outline

    Protocol Background

    Technology Highlights

    Enhanced Capabilities Transition Issues

    Next Steps

  • 8/10/2019 Curs_IPv6

    104/120

    Current Status

  • 8/10/2019 Curs_IPv6

    105/120

    Standards core IPv6 specifications are IETF DraftStandards

    => well-tested & stable IPv6 base spec, ICMPv6, Neighbor Discovery, PMTU

    Discovery, IPv6-over-Ethernet, IPv6-over-PPP,... other important specs are further behind on the

    standards track, but in good shape mobile IPv6, header compression, A6 DNS support,...

    for up-to-date status: playground.sun.com/ipng UMTS R5 cellular wireless standards mandate

    IPv6

  • 8/10/2019 Curs_IPv6

    106/120

    IPv6 Addresses

  • 8/10/2019 Curs_IPv6

    107/120

    Bootstrap phase

    Where to get address space? Real IPv6 address space now allocated

    by APNIC, ARIN and RIPE NCC APNIC 2001:0200::/23 ARIN 2001:0400::/23

    RIPE NCC 2001:0600::/23

    6Bone 3FFE::/16Have a look at www.cisco.com/ipv6 for further information

    IPv6 Address Space

  • 8/10/2019 Curs_IPv6

    108/120

    Current Allocations APNIC (whois.apnic.net)

    CONNECT-AU-19990916 2001:210::/35WIDE-JP-19990813 2001:200::/35

    NUS-SG-19990827 2001:208::/35

    KIX-KR-19991006 2001:220::/35

    ETRI-KRNIC-KR-19991124 2001:230::/35

    NTT-JP-19990922 2001:218::/35

    HINET-TW-20000208 2001:238::/35

    IIJ-JPNIC-JP-20000308 2001:240::/35

    CERNET-CN-20000426 2001:250::/35

    INFOWEB-JPNIC-JP-2000502 2001:258::/35

    JENS-JP-19991027 2001:228::/35

    BIGLOBE-JPNIC-JP-20000719 2001:260::/35

    6DION-JPNIC-JP-20000829 2001:268::/35

    DACOM-BORANET-20000908 2001:270::/35

    ODN-JPNIC-JP-20000915 2001:278::/35

    KOLNET-KRNIC-KR-20000927 2001:280::/35

    HANANET-KRNIC-KR-20001030 2001:290::/35

    TANET-TWNIC-TW-20001006 2001:288::/35

    January 5th, 2001

    SONYTELECOM-JPNIC-JP-20001207 2001:298::/35

    TTNET-JPNIC-JP-20001208 2001:2A0::/35CCCN-JPNIC-JP-20001228 2001:02A8::/35IMNET-JPNIC-JP-20000314 2001:0248::/35

    KORNET-KRNIC-KR-20010102 2001:02B0::/35 ARIN (whois.arin.net)ESNET-V6 2001:0400::/35

    ARIN-001 2001:0400::/23VBNS-IPV6 2001:0408::/35

    CANET3-IPV6 2001:0410::/35

    VRIO-IPV6-0 2001:0418::/35

    CISCO-IPV6-1 2001:0420::/35

    QWEST-IPV6-1 2001:0428::/35

    DEFENSENET 2001:0430::/35ABOVENET-IPV6 2001:0438::/35

    SPRINT-V6 2001:0440::/35

    UNAM-IPV6 2001:0448::/35

    GBLX-V6 2001:0450::/35

    IPv6 Address Space

  • 8/10/2019 Curs_IPv6

    109/120

    Current Allocations

    RIPE (whois.ripe.net)UK-BT-19990903 2001:0618::/35

    CH-SWITCH-19990903 2001:0620::/35

    AT-ACONET-19990920 2001:0628::/35

    UK-JANET-19991019 2001:0630::/35

    DE-DFN-19991102 2001:0638::/35

    NL-SURFNET-19990819 2001:0610::/35

    RU-FREENET-19991115 2001:0640::/35

    GR-GRNET-19991208 2001:0648::/35

    EU-UUNET-19990810 2001:0600::/35

    DE-TRMD-20000317 2001:0658::/35

    FR-RENATER-20000321 2001:0660::/35

    EU-EUNET-20000403 2001:0670::/35

    DE-IPF-20000426 2001:0678::/35

    DE-NACAMAR-20000403 2001:0668::/35

    DE-XLINK-20000510 2001:0680::/35

    DE-ECRC-19991223 2001:0650::/35

    FR-TELECOM-20000623 2001:0688::/35

    PT-RCCN-20000623 2001:0690::/35

    SE-SWIPNET-20000828 2001:0698::/35

    PL-ICM-20000905 2001:06A0::/35

    DE-SPACE-19990812 2001:0608::/35

    BE-BELNET-20001101 2001:06A8::/35

    SE-SUNET-20001218 2001:06B0::/35

    IT-CSELT-20001221 2001:06B8::/35

    SE-TELIANET-20010102 2001:06C0::/35

    D l t

  • 8/10/2019 Curs_IPv6

    110/120

    Deployment experimental infrastructure: the 6bone

    for testing and debugging IPv6 protocols andoperations (see www.6bone.net)

    production infrastructure in support of education

    and research: the 6ren CAIRN, Canarie, CERNET, Chunahwa Telecom,

    Dante, ESnet, Internet 2, IPFNET, NTT, Renater,Singren, Sprint, SURFnet, vBNS, WIDE(see www.6ren.net, www.6tap.net)

    commercial infrastructure a few ISPs (IIJ, NTT, SURFnet, Trumpet,) have

    announced commercial IPv6 service or service trials

    D l t ( t )

  • 8/10/2019 Curs_IPv6

    111/120

    Deployment (cont.)

    IPv6 address allocation

    6bone procedure for test address space

    regional IP address registries (APNIC, ARIN,RIPE-NCC) for production address space

    deployment advocacy (a.k.a. marketing)

    IPv6 Forum: www.ipv6forum.com

    M h Still T D

  • 8/10/2019 Curs_IPv6

    112/120

    Much Still To Do

    though IPv6 today has all the functional capability of IPv4, implementations are not as advanced

    (e.g., with respect to performance, multicast support,compactness, instrumentation, etc.)

    deployment has only just begun much work to be done moving application, middleware,

    and management software to IPv6

    much training work to be done(application developers, network administrators, salesstaff,)

    many of the advanced features of IPv6 still needspecification, implementation, and deployment work

    Recent IPv6 Hot Topics in the

    IETF

  • 8/10/2019 Curs_IPv6

    113/120

    IETF multihoming / address

    selection

    address allocation

    DNS discovery

    3GPP usage of IPv6

    anycast addressing

    scoped addressarchitecture

    flow-label semantics

    API issues (flow label, traffic class, PMTU

    discovery, scoping,)

    enhanced router-to-host info site renumbering procedures

    temp. addresses for privacy

    inter-domain multicast routing

    address propagation and AAA

    issues of different accessscenarios (always-on, dial-up, mobile,)

    and, of course, transition /co-existence / interoperabilitywith IPv4

    Note: this indicates vitality, not incompleteness, of IPv6!

  • 8/10/2019 Curs_IPv6

    114/120

    Next Steps

    F M I f ti

  • 8/10/2019 Curs_IPv6

    115/120

    For More Information

    https://reader010.{domain}/reader010/html5/0605/charter.html

    http://www.ietf.org/html.charters/ngtrans-charter.html

    http://playground.sun.com/ipv6/

    http://www.6bone.net/ngtrans/

    F M I f ti

  • 8/10/2019 Curs_IPv6

    116/120

    For More Information

    http://www.6bone.net

    http://www.ipv6forum.com

    http://www.ipv6.org

    http://www.cisco.com/ipv6/

    http://www.microsoft.com/windows2000/librar

    y/howitworks/communications/networkbasics/IPv6.asp

    F M I f ti

  • 8/10/2019 Curs_IPv6

    117/120

    For More Information

    BGP4+ References

    RFC2858 Multiprotocol extension to BGPRFC2545 BGP MP for IPv6RFC2842 Capability negotiation

    RIPng RFC2080

  • 8/10/2019 Curs_IPv6

    118/120

    Q ti ?

  • 8/10/2019 Curs_IPv6

    119/120

    119 2000, Cisco Systems, Inc.

    Questions?

    22131313_06_2000_c2

  • 8/10/2019 Curs_IPv6

    120/120

    Cisco Systems