IPv6 - jibingl/CCNA-CCNP GitHub Wiki

Internet Protocol Version 6

  IPv6 Architecture   Global Routing Prefix   Subnet Identifier   Interface Identifier  /CIDR
  -----------------   ---------------------   -----------------   --------------------  -----
  Example             2001:0db8:8d00:         0001:               0000:0000:0000:0001   /64
  Number of bit       48 bits                 16 bits             64 bits

EUI-64 Based Interface Identifier Conversion

                                     0     7                  24                      47
  MAC/Ethernet/Link-layer Address   +------------------------+-------------------------+
    (built in MAC address)          |      b    OUI          |          NIC id         |
    34-56-78-9A-BC-DE               +------------------------+-------------------------+ 
                                     0     7                  24               40                      64
  IPv6 Interface Identifier         +------------------------+----------------+-------------------------+
    (revert U/L bit)                |      b    OUI          |1111111111111110|         NIC id          |
    3656:78ff:fe9a:bcde             +------------------------+----------------+-------------------------+ 

Addresses Type Identification (rfc 4291)

Address Type IPv6 Notation Binary Prefix Compare-to-IPv4
Unspecified ::/128 00...0 (128 bits) 0.0.0.0
Loopback ::1/128 00...1 (128 bits) 127.0.0.1
Multicast ff00::/8 11111111 224.0.0.0
Link-Local unicast fe80::/10 1111111010 N/A
Global unicast 2000::3 0010-0011 8.8.8.8
Unique local unicast fc00::/7 1111110 192.168.0.0/24

Multicast Addresses

Multicast Scope Prefix Description Examples
Interface-local ff01 Local device
Link-local ff02 Local subnet ff02::1 all nodes/hosts of a subnet
Site-local ff05 Limit to a single physical location ff05::1 all hosts of a company location
Organization-local ff08 Wider than site-local (an entire company) ff08::2 all routers of a company
Global-local ff0e No boundaries

Conversion Between Different Address Type

  Interface Identifier/ID example 3656:78ff:fe9A:bcde,
                                      0        9
  Link-Local Unicast                 +----------+-------------+-----------------------------------------------------+
    (prefix FE80::/64)               |1111111010|  54-bit 0s  |              Interface Identifier (64 bits)         |
    fe80::3656:78ff:fe9a:bcde/64     +----------+-------------+-----------------------------------------------------+
                                      0              15                   98             104
  Solicited-node Multicast           +----------------+------------------+----------------+-------------------------+
    (prefix FF02::1:FF00:0/104)      |1111111100000002|     72-bit 0s    |0000000111111111|  24-bit of Interface ID |
    fe02::1:ff:9a:bcde/64            +----------------+------------------+----------------+-------------------------+

Calculating the IPv6 Prefix

  IPv6 address   2001:0db8:8d00:0001:fb89:017b:0020:0011/93
        |                                    |
        |                                   0d11
        |                                   0b1011 -> 0b1000
        |                                             0d8
        |                                             0x8
  the prefix     2001:0db8:8d00:0001:fb89:0178::/93
  
  IPv6 Address                                 Prefix
  ------------                                 ------
  fe80:0000:0000:0000:4c2c:e2ed:6a89:2a27/9    fe80::/9
  2001:0db8:0001:0b23:ba89:0020:0000:00c1/64   2001:db8:1:b23::/64
  2001:0db8:0bad:cafe:1300:0689:9000:0cdf/71   2001:db8:bad:cafe:1200::/71
  2001:0db8:0000:feed:0dad:018f:6001:0da3/62   2001:db8:0:feec::/62
  2001:0db8:9bad:babe:0de8:ab78:2301:0010/63   2001:db8:9bad:babe::/63

Configurating an IPv6 GUA

  R1(config)#ipv6 unicast-routing                       //Enable router to perform ipv6 routing
  R1(config)#interface g0/0
  R1(config-if)#ipv6 address 2001:db8:0:0::1/64         //Manmully set a global unicast ipv6
    OR
  R1(config-if)#ipv6 address 2001:db8::/64 eui-64       //Autoconfiguration by using EUI-64 method combining wiht the configured prefix
    OR (SLAAC)
  R1(config-if)#ipv6 address autoconfig                 //Autoconfiguation by using NDP(RS/RA) to learn the prefix of the local link, then combining it with EUI-64 or random method
  
  R1(config)#ipv6 route destination/prefix {next-hop | exit-interface [next-hop]} [ad]
  //Note: For using link-local address as the next-hop, fully specified route must be given, like below syntax
  R1(config)#ipv6 route destination/prefix exit-interface next-hop-link-local-address

IPv6 DHCP

  1. SLACC (Stateless)
  2. Stateless DHCPv6 (No prefix)
    • In the DHCP server, define a DHCPv6 pool;
    • On the gateway port facing the DHCP clients, set other-config-flag;
    • On the gateway port facing the DHCP clients, clarify the DHCPv6 pool;
  3. Stateful DHCPv6 (Prefix, DNS, Domain, and more)
    • In the DHCP server, define a stateful DHCPv6 pool;
    • On the gateway port facing the DHCP clients, set managed-config-flag;
    • On the gateway port facing the DHCP clients, clarify the DHCPv6 pool;