IPv6 – NDP, SLAAC and static routing

Engineers working on network deployment, maintenance and debugging may feel like being caught in the endless journey transcending between various realms. Fret not, IPv6 deployments are getting easier, and more help is coming !  In the mean time lets understand what is NDP, SLAAC and static routing in IPv6.

Solicited-node multicast address

  • Generated by using the last 6 hex characters from IPv6 address and append it to ff02::1:ff
    • E.g. For a unicast address 2001:1bd9:0000:0002:1d2a:5adf:ae3a:1d00c, the solicited-node multicast address is ff02:0000:0000:0000:0000:0001:ff3a:1d00c

NDP

  • NDP (Neighbor Discovery Protocol) in IPv6 has various functions, one of them is to replace ARP (Address Resolution Protocol) used in IPv4 networks to get the MAC address of a node in the network from the IP address of the node.
    • NDP uses ICMPv6 and solicited-node multicast address for ARP function
    • Unlike ARP, NDP does not use broadcast
    • Two messages are used
      • NS (Neighbor solicitation) = ICMPv6 Type 135
      • NA (Neighbor Advertisement) = ICMPv6 Type 136
  • Instead of ARP table, IPv6 neighbor table is maintained
  • NDP also allows hosts to discover routers on local networks.
    • RS (Router Solicitation) = ICMPv6 Type 133
      • sent to address FF02::2 (routers multicast group)
      • Sent when interface is (re)enabled
    • RA (Router Advertisement) = ICMPv6 Type 134
      • Sent to address FF02::1 (all nodes multicast group) as reply to RS and periodically

SLAAC

  • SLAAC (Stateless Address Auto-configuration) – one of the  ways to configure IPv6 address
    • Node uses RS/RA messages to learn the IPv6 local link prefix
    • Interface ID is then generated using EUI-64 or randomly
An Engineer working on solving a complex IPv6 networking problem about NDP, SLAAC and static routing with a tiger and starwars soldiers guarding

DAD

  • DAD (Duplicate Address Detection) – a function of NDP which a node uses before an IPv6 address is configured on its interface to check if any other node has the same IPv6 address
    • Host sends NS to its own IPv6 address. If there is a reply, it means there is a host with the same address and therefore the host cannot use this IPv6 address.

IPv6 static routing

  • Directly attached static route: Only exit interface is mentioned. Used for point-to-point link that do not need next-hop resolution. Broadcast network like Ethernet not allowed
  • Recursive static route: Only next hop IPv6 address is specified
  • Fully specified static route: Both exit interface and next hop are specified.