Back

IPv6 - is alternative IP level protocol designed to get around IPv4
  exhaustion.

  Not compatible with IPv4, but because IP is a internet level protocol,
    it is implemented in software. Both protocols can run in parallel on
    any (most) node or network link (router).
 
IPv6  - ups the address size from 32 bit to 128 bit.
   IPv6 is classless by default.

     network prefix or sub-net prefix
        
       Upper 64 bit address assigned to a specific network domain without 
         regard to number of hosts or nodes that may be on that site.
         2^64 = 1.84467 x 10^19
     
         World's population is 7.6 x 10^9

       * Whole sequential block (/64) may be assigned to an ISP, who may break 
           it down into /48 or /56 networks (domains).

     Interface identifier
       Lower 64 bits for hosts(nodes) in a network domain. 

   Classless design allows for a better hierarchical design of network layout
     and more efficient routers for transmitting packets.
 
   Provides better security for packets being sent. IPsec.
 
   Most current hardware and OSes support IPv6, although it is often not
     actually implemented. 

   Specific IPv6 @ or IPv6 families.

     2001:0db8::/32 - demo (dummy) IPv6, like 555-xxxx phone numbers.

     2002:/16 - 6to4 tunneling across IPv4 hops.
       Host and target nodes use IPv6 but hops don't.
       1st 16 bits are 2002 (flag). 
       Next 32 bits is a IPv4 @ of destination 6to4 router.
       Last 16 bit of prefix is IPv6 sub-net mask.
       *
       Source and target nodes, or at least the gateway into the IPv6 
         sub-net, must have an IPv4 IP assigned to them.
       This 'dataframe' then becomes part of the IP payload as it hops
         accross an IPv4 network. protcol type 41.
         The real IPv6 IP is part of this encapulated packet.
       Gateway routers of both source and destination sub-net must support
         6to4 protocol.
 
     fec0::/10 - site-local
       Superseded by Unique Local Address

     fc00::/7 - Unique Local Address (ULA) - equivalent of the 10.x.x.x
       IPv4 private sub-net. 3 remaining bits allow for 8 separate private
       sub-nets with 2^111 nodes.  

     ff00::/8 - multicast addresses. Allows a single packet to be delievered
       to multiple selected target hosts. Requires support of gateway routers.

     fe80::/10 - link-local prefix. Packet only valid on local physical 
       network. Often seen on nodes that has IPv6 support but network
       or domain doesn't. Used for transmitting IPv6 packets across IPv4
       network.

     ::/96 - Zero prefix in left most 96 bits basically makes this an
       IPv4 (32-bit) compatible address.
 
     ::/128 - all zeros, similar to 0.0.0.0 in IPv4

     ::1/128 - loop back, same as 127.0.0.1 in IPv4

   Features :
      (http://searchenterprisewan.techtarget.com/definition/IPv6)

     Enforces IPsec (IP security) which protects data being transmitted.
      * IPv4 now implements IPsec.

     Implements a 40 octet fixed header lenght with extensions which are
       part of the payload. Options usually deatlt with at the endpoints
       of the transmission not at the hops along the way.

     TTL renamed Hop count. 

     Datagram size limited so that no fragmentation occurs once packet has
       left sending node. If fragmentation needed, handled at source.

       Either uses minimum legal size, 1280 octets, or sends a probing 
         ICMP packet to discover smallest allowable packet in path.

     If all hops between source and destination IPv6 nodes are IPV6 hops 
       (Internet2), packets can be up to 4GiB-1 

     Stateless address auto-configuration (SLAAC)
       Upper 64 bits are network prefix (domain address).

       Lower 64 bits are interface identifier (node id).

       Uses Media Access Control (MAC@) address as interface identifier.
       * Privacy extensions provide randomly generated interface identifiers
         used in place of MAC@.
         Available in most modern OSes and usually on.

    SLAAC - stateless autoconfiguration, allows a device to generate its
      own IP rather than relying on a dhcp server to assign one.

      Device uses neighbor discovery protocol to determine the network prefix
        (domain) it is on. 

      The node then uses its MAC# with some modifications to generate the 
        interface identifier.    

      The node may also hash this with a random number to create new 
        temporary interface identifier.  This may be replaced from time to 
        time to obscure the ID of the node.

        Note that the interface identifier as initially generated will be 
          the same on any network you device is attached and could be used
          to track your movements.

    Eliminates header checksum. This means that the hop count adjustment
      doesn't require a new checksum to be generated.
 
    Support on hops/links that don't use IPv6
   
      If node/link has no support for IPv6 and packet is IPv6, it won't accept.

      Available kludges - allows an IPv6 packet to be moved across an IPv4 
        network/link.

        6in4 - packet level protocol for encapsulating a IPv6 packet in 
          an IPv4 packet.

        6to4 - protocol/mechanism for creating and routing 6in4 packets.

          * 6in4, 6to4 does not handle IPv4 NAT generated IPs.
          10.x.x.x and 192.168.x.x

          6to4 use a IPv6 prefix that starts with 2002

          Source and Destination nodes are IPv6

          Doesn't work well if source is behind NAT firewall,
            unless firewall specially configured.

          Uses IPv4 multi-cast packets in its implementation.

        Teredo - protocol/mechanism for allowing IPv6 capable node to use a 
          NAT type router to move packets across an IPv4 only network.

          * 6to4 works on the edge of a IPv6 local network. Teredo is used
            when the node is IPv6 but the local network is IPv4 which 
            interfaces with an IPv6 network.

          Teredo client - IPv4 client (behind NAT) receives a generated IPv6 
            address from Teredo server.  IPv6 prefix starts with 2001
            Client has to know of a Teredo server address.

          Teredo server - generates and assign IPv6 address to an IPv4 node.
            Once assigned, its work is done.
      
          Teredo relays - route packets between IPv4 network and IPv6 world.
            Very heavy load.

          see : http://www.ipv6tf.org/index.php?page=using/connectivity/teredo

          Teredo is meant to be a temporary fix. As IPv6 becomes the default,
             Teredo will cease to exist.

          It encapsulates IPv6 Packets inside IPv4 UDP packets to move them
            across an IPv4 network.

          Teredo handles both public and private IPs. And can work with 
            NAT firewalls.

       Isatap - Intra-Site Automatic Tunneling Addressing Protocol
         
         Does not use multi-cast IPv4 packets. 
        
         Implemented at the Data-Link layer.

         Uses the fe80: IPv6 prefix.

Comparison of IPv4 vs. IPv6

Lectures