iPv6

Course: https://www.internetsociety.org/tutorials/introduction-to-ipv6/module-1-introduction/

Module 1: Introduction to iPv6

  • IETF = Internet Engineering Task Force (IETF)
  • Problems addressed when transitioning to iPv6:
    • iPv4 address exhaustion
    • need for simpler auto-configuration and re-numbering
    • requirement for security at IP level
    • improved protocol design
    • new possibilities of managing flow
  • iPv4 only has 2 billion IP addresses available, iPv6 encompasses 340 trillion trillion trillion
  • Since iPv6 is a huge amount to address space, the subnet sizes are huge as well
    • At ISP level (/32), there are 79 septillion addresses assigned
    • Largest block of iPv6 addresses allocated to France Telecom and Deutsche Telekom > allocation is /19 block, equivalent to 35, 000 billion
  • Most of the internet becoming dual stack because iPv4 and iPv6 are not compatible
  • Difficulty and cost of obtaining iPv4 address space will increase, inevitable that in the future some sites will only support iPv6
  • Workarounds: Network Address Translation
  • Adopting MAT technology will help systems maintain iPv4 service while moving to iPv6 (bust costly in long-term)
  • Steps to move to iPv6:
    • Learn more about iPv6
    • Get network iPv6 ready

Module 2: Understanding iPv6 Addresses

  • iPv6 addresses are 128 bits
    • broken into sixteen 8 bit sections
    • example of address: 128.91.45.157.220.40.0.0.0.252.87.212.200.32.255
    • can be converted to hex
  • To convert iPv6 from binary address to hexadecimal:
    • Break binary into 8 blocks of 16 bits
    • Split each block of 16 bits into 4 segments
    • Convert each segment into a hexadecimal (0-F)
  • zero compression – consecutive blocks of zeros
    • if there is more than 1 consecutive block where characters are all zeroes, you can compress to ::
    • zero compression can only be used ONCE in an address
  • zero suppression – leading 0’s
    • remove all leading 0s (front part) in each segment (cannot remove if after a non-zero in a segment)
    • each segment must contains at least a single digit if not using zero compression
  • iPv6 prefixes
    • iPv6 is hierarchical, addresses can be sub-netted for performance and security reasons in the same way as iPv4
    • all devices whose IP addresses have the same prefix share the same network component of address and are part of a subnet
    • larger subnet = smaller # after dash
      • /32 subnet (means network is only 32 bits, whereas subnet contains up to 96 bits left for specific addresses)
      • /48 subnet has 80 bits left for specific addresses
      • /32 is a bigger subnet than /48
    • iPv6 address types
      • iPv6 addresses identify an interface/group of interfaces
      • 3 main types of iPv6 addresses:
        • Unicast (2000::)
          • Most common type of iPv6
          • Identifies a single interface
          • Communication between single sender and single receiver over network
          • Every machine should have at least open global unicast address assigned to each interface
          • Global unicast addresses all begin with same prefix: 2000::/3
        • Anycast
          • Anycast addresses identify groups of interfaces
          • Packets for anycast addresses are sent to nearest interface in a group
          • Facilitates communication between any sender and nearest group of receivers in a network
          • Allocated from unicast address space (2600::), not distinguishable from unicast address
        • Multicast (ff00::)
          • Identifies a group of interfaces, belonging to different nodes
            • Packages sent to multicast addresses are delivered to all interfaces in the group
            • Facilitate communication between single sender and multiple receivers
            • Multicast replaces broadcast addresses in iPv4
            • Prefix: ff00::/8
            • Format:
              • Indicator: Always 11111111 (aka FF), indicates multicast
              • Scope: indicates how broadly multicast packets will spread
                • 4 possible values:
                  • Node-local
                  • Link-local
                  • Site-local
                  • Global
                • Group ID: multicast group within the given scope
                  • All nodes, all-routers, OSPF, NTP
                • Special iPv6 Addresses
                  • Unspecified (::/128)
                    • All zeros, refers to host when host doesn’t know own address
                    • Used for devices seeking to have iPv6 address assigned
                  • Loopback (::1/128)
                    • Has single address for loopback function
                  • IPv4 Mapped (::ffff:0:0/96)
                    • Prefix is 96 bits, 32 bits hold the embedded iPv4 addresses
                    • Used to represent iPv4 address as an iPv6 address
                    • Address helps to transition from iPv4 to iPv6
                  • Unique Local Unicast (ULA) (fc00::/7)
                    • For local use, within a site or group of sites
                    • Not routable on the global internet
                  • Link-Local Unicast (fe80::/10)
                    • Unicast addresses to be used on a single link
                    • Used for neighbor discovery, automatic address configuration, when no routers are present