Library homepage

  • school Campus Bookshelves
  • menu_book Bookshelves
  • perm_media Learning Objects
  • login Login
  • how_to_reg Request Instructor Account
  • hub Instructor Commons
  • Download Page (PDF)
  • Download Full Book (PDF)
  • Periodic Table
  • Physics Constants
  • Scientific Calculator
  • Reference & Cite
  • Tools expand_more
  • Readability

selected template will load here

This action is not available.

Engineering LibreTexts

8.8: IPv6 Host Address Assignment

  • Last updated
  • Save as PDF
  • Page ID 11173

  • Peter Lars Dordal
  • Loyola University of Chicago

IPv6 provides two competing ways for hosts to obtain their full IP addresses. One is DHCPv6 , based on IPv4’s DHCP ( 7.10 Dynamic Host Configuration Protocol (DHCP) ), in which the entire address is handed out by a DHCPv6 server. The other is StateLess Address AutoConfiguration , or SLAAC, in which the interface-identifier part of the address is generated locally, and the network prefix is obtained via prefix discovery. The original idea behind SLAAC was to support complete plug-and-play network setup: hosts on an isolated LAN could talk to one another out of the box, and if a router was introduced connecting the LAN to the Internet, then hosts would be able to determine unique, routable addresses from information available from the router.

In the early days of IPv6 development, in fact, DHCPv6 may have been intended only for address assignments to routers and servers, with SLAAC meant for “ordinary” hosts. In that era, it was still common for IPv4 addresses to be assigned “statically”, via per-host configuration files. RFC 4862 [ https://tools.ietf.org/html/rfc4862.html] states that SLAAC is to be used when “a site is not particularly concerned with the exact addresses hosts use, so long as they are unique and properly routable.”

SLAAC and DHCPv6 evolved to some degree in parallel. While SLAAC solves the autoconfiguration problem quite neatly, at this point DHCPv6 solves it just as effectively, and provides for greater administrative control. For this reason, SLAAC may end up less widely deployed. On the other hand, SLAAC gives hosts greater control over their IPv6 addresses, and so may end up offering hosts a greater degree of privacy by allowing endpoint management of the use of private and temporary addresses (below).

When a host first begins the Neighbor Discovery process, it receives a Router Advertisement packet. In this packet are two special bits: the M (managed) bit and the O (other configuration) bit. The M bit is set to indicate that DHCPv6 is available on the network for address assignment. The O bit is set to indicate that DHCPv6 is able to provide additional configuration information ( eg the name of the DNS server) to hosts that are using SLAAC to obtain their addresses. In addition, each individual prefix in the RA packet has an A bit, which when set indicates that the associated prefix may be used with SLAAC.

8.7.1 Duplicate Address Detection

Whenever an IPv6 host obtains a unicast address – a link-local address, an address created via SLAAC, an address received via DHCPv6 or a manually configured address – it goes through a duplicate-address detection (DAD) process. The host sends one or more Neighbor Solicitation messages (that is, like an ARP query), as in 8.6 Neighbor Discovery , asking if any other host has this address. If anyone answers, then the address is a duplicate. As with IPv4 ACD ( 7.9.1 ARP Finer Points ), but not as with the original IPv4 self-ARP, the source-IP-address field of this NS message is set to a special “unspecified” value; this allows other hosts to recognize it as a DAD query.

Because this NS process may take some time, and because addresses are in fact almost always unique, RFC 4429 [ https://tools.ietf.org/html/rfc4429.html] defines an optimistic DAD mechanism. This allows limited use of an address before the DAD process completes; in the meantime, the address is marked as “optimistic”.

Outside the optimistic-DAD interval, a host is not allowed to use an IPv6 address if the DAD process has failed. RFC 4862 [ https://tools.ietf.org/html/rfc4862.html] in fact goes further: if a host with an established address receives a DAD query for that address, indicating that some other host wants to use that address, then the original host should discontinue use of the address.

If the DAD process fails for an address based on an EUI-64 identifier, then some other node has the same Ethernet address and you have bigger problems than just finding a working IPv6 address. If the DAD process fails for an address constructed with the RFC 7217 [ https://tools.ietf.org/html/rfc7217.html] mechanism, 8.2.1 Interface identifiers , the host is able to generate a new interface identifier and try again. A counter for the number of DAD attempts is included in the hash that calculates the interface identifier; incrementing this counter results in an entirely new identifier.

While DAD works quite well on Ethernet-like networks with true LAN-layer multicast, it may be inefficient on, say, MANETs ( 3.7.8 MANETs ), as distant hosts may receive the DAD Neighbor Solicitation message only after some delay, or even not at all. Work continues on the development of improvements to DAD for such networks.

8.7.2 Stateless Autoconfiguration (SLAAC)

To obtain an address via SLAAC, defined in RFC 4862 [ https://tools.ietf.org/html/rfc4862.html] , the first step for a host is to generate its link-local address (above, 8.2.2 Link-local addresses ), appending the standard 64-bit link-local prefix fe80::/64 to its interface identifier ( 8.2.1 Interface identifiers ). The latter is likely derived from the host’s LAN address using either EUI-64 or the RFC 7217 [ https://tools.ietf.org/html/rfc7217.html] mechanism; the important point is that it is available without network involvement.

The host must then ensure that its newly configured link-local address is in fact unique; it uses DAD (above) to verify this. Assuming no duplicate is found, then at this point the host can talk to any other hosts on the same LAN, eg to figure out where the printers are.

The next step is to see if there is a router available. The host may send a Router Solicitation (RS) message to the all-routers multicast address. A router – if present – should answer with a Router Advertisement (RA) message that also contains a Prefix Information option; that is, a list of IPv6 network-address prefixes ( 8.6.2 Prefix Discovery ).

As mentioned earlier, the RA message will mark with a flag those prefixes eligible for use with SLAAC; if no prefixes are so marked, then SLAAC should not be used. All prefixes will also be marked with a lifetime, indicating how long the host may continue to use the prefix. Once the prefix expires, the host must obtain a new one via a new RA message.

The host chooses an appropriate prefix, stores the prefix-lifetime information, and appends the prefix to the front of its interface identifier to create what should now be a routable address. The address so formed must now be verified through the DAD mechanism above.

In the era of EUI-64 interface identifiers, it would in principle have been possible for the receiver of a packet to extract the sender’s LAN address from the interface-identifier portion of the sender’s SLAAC-generated IPv6 address. This in turn would allow bypassing the Neighbor Solicitation process to look up the sender’s LAN address. This was never actually permitted, however, even before the privacy options below, as there is no way to be certain that a received address was in fact generated via SLAAC. With RFC 7217 [ https://tools.ietf.org/html/rfc7217.html] -based interface identifiers, LAN-address extraction is no longer even potentially an option.

A host using SLAAC may receive multiple network prefixes, and thus generate for itself multiple addresses. RFC 6724 [ https://tools.ietf.org/html/rfc6724.html] defines a process for a host to determine, when it wishes to connect to destination address D, which of its own multiple addresses to use. For example, if D is a unique-local address, not globally visible, then the host will likely want to choose a source address that is also unique-local. RFC 6724 [ https://tools.ietf.org/html/rfc6724.html] also includes mechanisms to allow a host with a permanent public address (possibly corresponding to a DNS entry, but just as possibly formed directly from an interface identifier) to prefer alternative “temporary” or “privacy” addresses for outbound connections. Finally, RFC 6724 [ https://tools.ietf.org/html/rfc6724.html] also defines the sorting order for multiple addresses representing the same destination; see 8.11 Using IPv6 and IPv4 Together .

At the end of the SLAAC process, the host knows its IPv6 address (or set of addresses) and its default router. In IPv4, these would have been learned through DHCP along with the identity of the host’s DNS server; one concern with SLAAC is that it originally did not provide a way for a host to find its DNS server. One strategy is to fall back on DHCPv6 for this. However, RFC 6106 [ https://tools.ietf.org/html/rfc6106.html] now defines a process by which IPv6 routers can include DNS-server information in the RA packets they send to hosts as part of the SLAAC process; this completes the final step of autoconfiguration.

How to get DNS names for SLAAC-configured IPv6 hosts into the DNS servers is an entirely separate issue. One approach is simply not to give DNS names to such hosts. In the NAT-router model for IPv4 autoconfiguration, hosts on the inward side of the NAT router similarly do not have DNS names (although they are also not reachable directly, while SLAAC IPv6 hosts would be reachable). If DNS names are needed for hosts, then a site might choose DHCPv6 for address assignment instead of SLAAC. It is also possible to figure out the addresses SLAAC would use (by identifying the host-identifier bits) and then creating DNS entries for these hosts. Finally, hosts can also use Dynamic DNS ( RFC 2136 [ https://tools.ietf.org/html/rfc2136.html] ) to update their own DNS records.

8.7.2.1 SLAAC privacy

A portable host that always uses SLAAC as it moves from network to network and always bases its SLAAC addresses on the EUI-64 interface identifier (or on any other static interface identifier) will be easy to track: its interface identifier will never change. This is one reason why the obfuscation mechanism of RFC 7217 [ https://tools.ietf.org/html/rfc7217.html] interface identifiers ( 8.2.1 Interface identifiers ) includes the network prefix in the hash: connecting to a new network will then result in a new interface identifier.

Well before RFC 7217 [ https://tools.ietf.org/html/rfc7217.html] , however, RFC 4941 [ https://tools.ietf.org/html/rfc4941.html] introduced a set of privacy extensions to SLAAC: optional mechanisms for the generation of alternative interface identifiers, based as with RFC 7217 on pseudorandom generation using the original LAN-address-based interface identifier as a “seed” value.

RFC 4941 goes further, however, in that it supports regular changes to the interface identifier, to increase the difficulty of tracking a host over time even if it does not change its network prefix. One first selects a 128-bit secure-hash function F(), eg MD5 ( 22.6 Secure Hashes ). New temporary interface IDs (IIDs) can then be calculated as follows

\[(IID_{new},seed_{new}) = F(seed_{old}, IID_{old})\]

where the left-hand pair represents the two 64-bit halves of the 128-bit return value of F() and the arguments to F() are concatenated together. (The seventh bit of IID new must also be set to 0; cf 8.2.1 Interface identifiers where this bit is set to 1.) This process is privacy-safe even if the initial IID is based on EUI-64.

The probability of two hosts accidentally choosing the same interface identifier in this manner is vanishingly small; the Neighbor Solicitation mechanism with DAD must, however, still be used to verify that the address is in fact unique within the host’s LAN.

The privacy addresses above are to be used only for connections initiated by the client; to the extent that the host accepts incoming connections and so needs a “fixed” IPv6 address, the address based on the original EUI-64/RFC-7217 interface identifier should still be available. As a result, the RFC 7217 mechanism is still important for privacy even if the RFC 4941 mechanism is fully operational.

RFC 4941 stated that privacy addresses were to be disabled by default, largely because of concerns about frequently changing IP addresses. These concerns have abated with experience and so privacy addresses are often now automatically enabled. Typical address lifetimes range from a few hours to 24 hours. Once an address has “expired” it generally remains available but deprecated for a few temporary-address cycles longer.

DHCPv6 also provides an option for temporary address assignments, again to improve privacy, but one of the potential advantages of SLAAC is that this process is entirely under the control of the end system.

Regularly ( eg every few hours, or less) changing the host portion of an IPv6 address should make external tracking of a host more difficult, at least if tracking via web-browser cookies is also somehow prevented. However, for a residential “site” with only a handful of hosts, a considerable degree of tracking may be obtained simply by observing the common 64-bit prefix.

For a general discussion of privacy issues related to IPv6 addressing, see RFC 7721 [ https://tools.ietf.org/html/rfc7721.html] .

8.7.3 DHCPv6

The job of a DHCPv6 server is to tell an inquiring host its network prefix(es) and also supply a 64-bit host-identifier, very similar to an IPv4 DHCPv4 server. Hosts begin the process by sending a DHCPv6 request to the All_DHCP_Relay_Agents_and_Servers multicast IPv6 address ff02::1:2 (versus the broadcast address for IPv4). As with DHCPv4, the job of a relay agent is to tag a DHCPv6 request with the correct current subnet, and then to forward it to the actual DCHPv6 server. This allows the DHCPv6 server to be on a different subnet from the requester. Note that the use of multicast does nothing to diminish the need for relay agents. In fact, the All_DHCP_Relay_Agents_and_Servers multicast address scope is limited to the current LAN; relay agents then forward to the actual DHCPv6 server using the site -scoped address All_DHCP_Servers.

Hosts using SLAAC to obtain their address can still use a special Information-Request form of DHCPv6 to obtain their DNS server and any other “static” DHCPv6 information.

Clients may ask for temporary addresses. These are identified as such in the “Identity Association” field of the DHCPv6 request. They are handled much like “permanent” address requests, except that the client may ask for a new temporary address only a short time later. When the client does so, a different temporary address will be returned; a repeated request for a permanent address, on the other hand, would usually return the same address as before.

When the DHCPv6 server returns a temporary address, it may of course keep a log of this address. The absence of such a log is one reason SLAAC may provide a greater degree of privacy. SLAAC also places control of the cryptographic mechanisms for temporary-address creation in the hands of the end user.

A DHCPv6 response contains a list (perhaps of length 1) of IPv6 addresses. Each separate address has an expiration date. The client must send a new request before the expiration of any address it is actually using.

In DHCPv4, the host portion of addresses typically comes from “address pools” representing small ranges of integers such as 64-254; these values are generally allocated consecutively. A DHCPv6 server, on the other hand, should take advantage of the enormous range (2 64 ) of possible host portions by allocating values more sparsely, through the use of pseudorandomness. This is to make it very difficult for an outsider who knows one of a site’s host addresses to guess the addresses of other hosts, cf 8.2.1 Interface identifiers .

The Internet Draft draft-ietf-dhc-stable-privacy-addresses [tools.ietf.org/id/draft-ietf...resses-00.txt] proposes the following mechanism by which a DHCPv6 server may generate the interface-identifier bits for the addresses it hands out; F() is a secure-hash function and its arguments are concatenated together:

\[F(prefix, client_DUID, IAID, DAD_counter, secret_key)\]

The prefix, DAD_counter and secret_key arguments are as in 8.7.2.1 SLAAC privacy . The client_DUID is the string by which the client identifies itself to the DHCPv6 server; it may be based on the Ethernet address though other options are possible. The IAID, or Identity Association identifier, is a client-provided name for this request; different names are used when requesting temporary versus permanent addresses.

Some older DHCPv6 servers may still allocate interface identifiers in serial order; such obsolete servers might make the SLAAC approach more attractive.

PacketMania

Technology | Knowledge | Sharing

IPv6 Dynamic Address Allocation Mechanism Illustrated

IPv6 supports multiple addresses, making address assignments more flexible and convenient. Unlike IPv4, which relied solely on the DHCP protocol for address assignment, IPv6 incorporates a native Stateless Address AutoConfiguration SLAAC) protocol. SLAAC can either work alone to provide IPv6 addresses to hosts, or it can work with DHCPv6 to generate new assignment schemes. Here is a comprehensive analysis of the dynamic address allocation mechanism for IPv6.

Who the hell knew how much address space we needed? — Vint Cerf (American Internet pioneer and one of "the fathers of the Internet")

IPv6 Address Overview

Address formats.

ipv6 assignment command

The interface identifier can be generated in several ways:

  • Static manual setting
  • Converted from the interface's MAC address using the modified EUI-64 format
  • Obtained from a DHCPv6 server
  • Automatically established randomly or cryptographically

IETF recommends a canonical textual representation format for ease of writing. It includes leading zeros suppression and compression of consecutive all-zero fields. With the network prefix length at the end, the above address can be shortened to 2001:db8:130f :: 7000: 0 :140b/ 64 .

Address Types

RFC 4291 defines three types of addresses:

  • Unicast: A network address corresponds to a single network node, point-to-point connection.
  • Anycast: The target address corresponds to a group of receiving nodes, but only the "nearest" one receives.
  • Multicast: The target address corresponds to a group of nodes that can receive replicated messages.

Note that there are no broadcast addresses in IPv6, their function being superseded by multicast addresses. Anycast addresses are syntactically indistinguishable from unicast addresses and have very limited applications. A typical application for anycast is to set up a DNS root server to allow hosts to look up domain names in close proximity. For unicast and multicast addresses, they can be identified by different network prefixes:

ipv6 assignment command

  • All Nodes Addresses on the local link — ff02::1
  • All Routers Addresses on the local link — ff02::2
  • Solicited-Node Address on local link — ff02::1:ffxx:xxxx

Dynamic Allocation Schemes

Ndp protocol.

IPv6 dynamic address assignment depends on Neighbor Discovery Protocol (NDP). NDP acts at the data link layer and is responsible for discovering other nodes and corresponding IPv6 addresses on the link and determining available routes and maintaining information reachability to other active nodes. It provides the IPv6 network with the equivalent of the Address Resolution Protocol (ARP) and ICMP router discovery and redirection protocols in IPv4 networks. However, NDP adds many improvements and new features. NDP defines five ICMPv6 message types:

  • Router Solicitation (RS)
  • Router Advertisement (RA)
  • Neighbor Solicitation (NS)
  • Neighbor Advertisement (NA)

The first two message types here, RS and RA, are the keys to implementing dynamic IPv6 address assignment. The host sends an RS message to the multicast address ff02::2 of all routers in the local network segment to request routing information. When the router receives the RS from the network node, it sends an immediate RA in response. The message format of the RA is as follows

It defines two special bits, M and O, with the following meaning:

  • M — "Managed address configuration" flag, set to 1 when the address is obtained from DHCPv6.
  • O — "Other configuration" flag, set to 1 to indicate that other configuration information is available via DHCPv6

The RA message ends with the Options section, which originally had three possible options: Source Link-Layer Address, MTU, and Prefix Information. Later, RFC 8106 (which replaced RFC 6106) added the Recursive DNS Server (RDNSS) and DNS Search List (DNSSL) options. The Prefix Information option directly provide hosts with on-link prefixes and prefixes for Address Autoconfiguration, and it has the following format

Here the Prefix Length and the Prefix jointly determine the network prefix of the IPv6 address. In addition, the Prefix Information option also defines two special bits, L and A:

  • L — on-link flag. When set, indicates that this prefix can be used for on-link determination.
  • A — autonomous address-configuration flag. When set, indicates that this prefix can be used for SLAAC.

Similar to the IPv4 subnet mask feature, the purpose of the "on-link" determination is to allow the host to determine which networks an interface can access. By default, the host only considers the network where the link-local address is located as "on-link". If the "on-link" status of a destination address cannot be determined, the host forwards the IPv6 datagram to the default gateway (or default router) by default. When the host receives an RA message, if the "on-link" flag for a prefix information option is set to 1 and the Valid Lifetime is also a non-zero value, the host creates a new prefix network entry for it in the prefix list. All unexpired prefix network entries are "on-link".

Message Sequence

After understanding the NDP protocol and the information conveyed by the RA messages, let's see how they guide the network nodes to achieve dynamic address assignment.

Routers in the network periodically send RA messages to the multicast addresses (ff02::1) of all nodes in the local subnet. However, to avoid latency, the host sends one or more RS messages to all routers in the local subnet as soon as it has finished booting. The protocol requires the routers to respond to the RA messages within 0.5 seconds. Then, based on the values of the M/O/A bits in the received RA messages, the host decides how to dynamically configure the unique local and global unicast addresses of the interface and how to obtain other configuration information. With certain combinations of bit fetch values, the host needs to run DHCPv6 client software to connect to the server to obtain address assignment and/or other configuration information. The entire process is shown in the following message sequence diagram.

Note: Unlike the IPv4 DHCP protocol, DHCPv6 clients use UDP port 546 and servers use UDP port 547.

Next explain in detail three dynamic allocation schemes determined by the combination of the M/O/A-bit values:

SLAAC + Stateless DHCPv6

Stateful dhcpv6.

SLAAC is the simplest automatic IPv6 address assignment scheme and does not require any server. It works by sending an RS message request after the host starts up and the router sends back RA messages to all nodes in the local network segment. If the RA message contains the following configuration

  • M-bit and O-bit all clear in the message header
  • L-bit and A-bit all set in Prefix Information option

Then the host receives this RA message and performs the following operations to implement SLAAC:

  • Combine the network prefix with the local interface identifier to generate a unique local address or global unicast address.
  • Install the default gateway (or default route) to point to the router address (source address of the RA message).
  • Set this interface as the "on-link" corresponding to the network prefix, which is also the next-hop interface of the default gateway above.
  • If the RDNSS and/or DNSSL options are included, install the name servers and domain name suffixes.

This way, the host gets one or more IPv6 unique local addresses or global unicast addresses, plus the default gateway and domain name service information to complete various Internet connections.

The following is an example of the SLAAC configuration on a Cisco Catalyst 9300 Multilayer Access Switch:

The Layer 3 interface of the Cisco Multilayer Switch provides routing functionality. As you can see, when IPv6 is activated on the Layer 3 interface in VLAN 10, its default address auto-assignment scheme is SLAAC. the control bits of RA messages from this interface are all set according to the SLAAC scheme, and the network prefixes for each IPv6 address it configures are automatically added to the RA prefix information options list. Of course, the network administrator can also exclude certain network prefixes with a separate interface configuration command. The last two lines of the example configuration command specify RDNSS and DNSSL, which are also added to the RA message options.

If a host connects to a port in VLAN 10, it immediately gets a global unicast address with the network prefix of 2001:ABCD:1000::/64, and its default gateway address is set to 2001:ABCD:1000::1. Open a browser and enter a URL, and it will send a message to the specified domain name server 2001:4860:4860::8888 (Google's public name server address) to obtain the IPv6 address of the destination URL to establish a connection.

SLAAC automatic address assignment is fast and easy, providing a plug-and-play IPv6 deployment solution for small and medium-sized network deployments. However, if a network node needs access to additional configuration information, such as NTP/SNTP server, TFTP server, and SIP server addresses, or if its functionality relies on certain Vendor-specific Information Options, it must choose SLAAC + stateless DHCPv6 scheme.

This scenario still uses SLAAC automatic address assignment, but the router instructs the host to connect to a DHCPv6 server for additional configuration information. At this point, the RA message sent back by the router has

  • M-bit clear and O-bit set in the message header

After receiving this RA message, the host performs the following actions:

  • Install a default gateway (or default route) pointing to the router address (source address of the RA message).
  • Start the DHCPv6 client and connect to the DHCPv6 server to request additional configuration information .
  • Save the additional configuration information replied by the DHCPv6 server .

As you can see, SLAAC + stateless DHCPv6 is not different from SLAAC in terms of address assignment. DHCPv6 only provides additional configuration information and does not assign IPv6 addresses. So the DHCPv6 server does not track the address assignment status of network nodes, which is what "stateless" means.

The corresponding configuration commands on the Catalyst 9300 switch are as follows.

The difference with the SLAAC example is that the VLAN 10 interface configuration command ipv6 nd other-config-flag explicitly specifies to set the O-bit of the RA message. Its next command, ipv6 dhcp server vlan-10-clients , activates the DHCPv6 server response feature of the interface, corresponding to the server's pool name of vlan-10-clients . The DHCPv6 server is configured above the interface configuration, starting at ipv6 dhcp pool vlan-10-clients , and contains the DNS server address, DNS domain name, and SNTP server address.

If you are using a separate DHCPv6 server located on a network segment, you can remove the ipv6 dhcp server command and enable the ipv6 dhcp relay destination command on the next line of the example to specify the address to forward DHCPv6 requests to the external server.

Many large enterprises use DHCP to manage the IPv4 addresses of their devices, so deploying DHCPv6 to centrally assign and manage IPv6 addresses is a natural preference. This is where Stateful DHCPv6 comes into play. This scenario also requires RA messages sent by the router but does not rely solely on network prefixes for automatic address assignment. The control bits of the RA messages are configured to

  • M-bit set in the message header, O-bit does not matter
  • L-bit and A-bit can be set or clear as desired in Prefix Information option

Upon receiving this RA message, the host performs the following actions:

  • Generate a unique local address or a global unicast address if there is a Prefix Information option with the A-bit set.
  • If there is a Prefix Information option with the L-bit set, set this interface to "on-link" with the corresponding network prefix.
  • If the RDNSS and/or DNSSL options are included, install the name servers and domain suffixes.
  • Start the DHCPv6 client and connect to the server to request addresses and other configuration information .
  • Set the address assigned by the DHCPv6 server to this interface .
  • Save additional configuration information from the DHCPv6 server response .

An example of the Stateful DHCPv6 configuration command on a Catalyst 9300 switch is as follows.

Compared to SLAAC + Stateless DHCPv6 , the interface configuration here removes the ipv6 nd other-config-flag and replaces it with the ipv6 nd managed-config-flag command. This corresponds to setting the M-bit of the RA message header. The DHCPv6 server configuration adds two address prefix commands to set the network prefix. Also, the ipv6 nd prefix 2001:ABCD:1:1::/64 no-advertise configured for the interface specifies that the router does not include the 2001:ABCD:1:1::/64 prefix information option into the RA. So, this example host interface will not generate SLAAC addresses, but only two addresses from DHPCv6: a unique local address with the network prefix FD09:9:5:90::/64, and a global unicast address with the network prefix 2001:9:5:90::/64. The interface identifier for each of these two addresses is also specified by DHPCv6.

How to distinguish the source of dynamically assigned addresses for host interfaces? The method is simple. One thing to remember is that DHPCv6 does not send the network prefix length to the requestor, so the network prefix length of the addresses received from DHPCv6 is 128, while the network prefix length of the addresses generated by SLAAC will not be 128. See the following example of the wired0 interface on a Linux host:

We can immediately determine that the interface is using Stateful DHCPv6 address assignment, but also generates the SLAAC address with the same network prefix 2001:20::/64 received.

  • 2001:20::53c7:1364:a4d8:fd91/128 — DHCPv6 address, random interface identifer
  • 2001:20::a2ec:f9ff:fe6c:d930/64 — SLAAC addeess, interface identifer is MAC in EUI-64 format
  • fe80::a2ec:f9ff:fe6c:d930/64 — Link-local address, interface identifer is MAC in EUI-64 format

Note: DHPCv6 server also does not provide any IPv6 default gateway information. The host needs to be informed of the dynamic default gateway from the RA message.

Summary and Comparison

The following table shows the control bit combinations of RA messages concerning different address allocation and other configuration acquisition methods.

Summarize three dynamic allocation schemes:

Note: Since IPv6 network interfaces can have multiple addresses (a link-local address, plus one or more unique local addresses and/or global unicast addresses), it becomes important how the source address is selected when establishing an external connection. RFC 6724 gives detailed IPv6 source address selection rules. In the development of embedded systems, the control plane and the data plane connected to the same remote device are often implemented by different functional components. For example, the control plane directly calls a Linux userspace socket to establish the connection, and the IPv6 source address used for the connection is selected by the TCP/IP stack, while the data plane directly implements data encapsulation processing and transmission in kernel space. In this case, the IPv6 source address selected by the control plane has to be synchronized to the data plane in time, otherwise, the user data might not be delivered to the same destination.

Troubleshooting Guide

The common IPv6 dynamic address assignment debugging and troubleshooting commands on Cisco routers and switches are listed in the following table.

The following console NDP protocol debug log shows that the router received an RS message from host FE80::5850:6D61:1FB:EF3A and responded with an RA message to the multicast address FF02::1 of all nodes in this network:

And the next log shows an example of Stateless DHCPv6 observed after entering the debug ipv6 dhcp debug command. Host FE80::5850:6D61:1FB:EF3A sends an INFORMATION-REQUEST message to the DHCPv6 server, which selects the source address FE80::C801:B9FF:FEF0:8 and sends a response message.

The following debug log of Stateful DHCPv6 shows the complete process of two message exchanges (SOLICIT/ADVERTISE, REQUEST/REPLY) on lines 1, 15, 16, and 26.

For complex cases where it is difficult to identify whether the problem is with the host, router, or DHCPv6 server, we recommend using the free open-source network packet analysis software Wireshark to capture packets of the entire process for analysis. While analyzing packets with Wireshark, you can apply the keyword filtering function.

We can either run Wireshark directly on the host side, or we can use the Switched Port Analyzer (SPAN) provided with the switch. Running on the network side, SPAN can collectively redirect packets from a given port to the monitor port running Wireshark for capturing. Cisco Catalyst 9300 Series switches also directly integrate with Wireshark software to intercept and analyze filtered packets online, making it very easy to use.

Sample packet capture files for three allocation scheme are available here for download and study: slaac.pcap , stateless-dhcpv6.pcap , stateful-dhcpv6.pcap

IPv6 Product Certification Test

Accurate and effective testing of IPv6 products is key to ensuring high interoperability, security, and reliability of IPv6 infrastructure deployments. The IPv6 Ready logo is an IPv6 testing and certification program created by the IPv6 Forum . Its goals are to define IPv6 conformance and interoperability test specifications, provide a self-testing toolset, establish Global IPv6 Test Centers and provide product validation services, and finally, issue IPv6 Ready logo.

In May 2020, IPv6 Ready Logo Program published new version 5.0 test specifications :

  • IPv6 Core Protocols Test Specification (Conformance)
  • IPv6 Core Protocols Interoperability Test Specification (Interoperability)

Along with these two new test specifications, the project team also affirmed two permanent changes:

  • Testing must be done in an IPv6-only environment, without any IPv4 being used for the device to function.
  • The device under test must have IPv6 on and enabled on all IP interfaces by default.

Not surprisingly, the new version 5.0 core protocols test specification has a section dedicated to defining SLAAC test cases to validate this core IPv6 protocol.

IPv6 Core Protocol RFC List

In the list below, the RFCs shown in bold are directly covered by the IPv6 Ready Version 5.0 Core Protocol Test Specification:

  • RFC 4191 Default Router Preferences and More-Specific Routes
  • RFC 4193 Unique Local IPv6 Unicast Addresses
  • RFC 4291 IP Version 6 Addressing Architecture
  • RFC 4443 Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification
  • RFC 4861 Neighbor Discovery for IP version 6 (IPv6)
  • RFC 4862 IPv6 Stateless Address Autoconfiguration
  • RFC 4941 Privacy Extensions for Stateless Address Autoconfiguration in IPv6
  • RFC 5095 Deprecation of Type 0 Routing Headers in IPv6
  • RFC 6724 Default Address Selection for Internet Protocol Version 6 (IPv6)
  • RFC 6980 Security Implications of IPv6 Fragmentation with IPv6 Neighbor Discovery
  • RFC 7217 A Method for Generating Semantically Opaque Interface Identifiers with IPv6 Stateless Address Autoconfiguration (SLAAC)
  • RFC 8064 Recommendation on Stable IPv6 Interface Identifiers
  • RFC 8106 IPv6 Router Advertisement Options for DNS Configuration
  • RFC 8200 Internet Protocol, Version 6 (IPv6) Specification
  • RFC 8201 Path MTU Discovery for IP version 6
  • RFC 8415 Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
  • Gitalk Comments
  • Utterances Comments
  • Disqus Comments

Stack Exchange Network

Stack Exchange network consists of 183 Q&A communities including Stack Overflow , the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

How do I assign IPv6 addresses manually?

So I'm still rather clueless with IPv6, but I wanted to try something with my network today. Currently, I assign IPv4 LAN addresses manually, so that my router is 192.168.0.1 , then my first computer is 192.168.0.2 , and so on.

So far, I haven't been able to figure out how to do this with IPv6. Or is the process completely different that this is not how it would work?

Router is an Archer C4000, and my main system runs Ubuntu 19.04

EDIT: To clarify with how I manually set network IP addresses, my router has a page where I can set an address of my choosing to a MAC address. No configuration is done outside of the router.

hiigaran's user avatar

  • Please edit question and indicate how you assign LAN addesses manually. (On the router only? On your first computer as well?) I suspect you just set a network range on the router, and then addresses are not assigned "manually", but by DHCP from the router. On IPv6 then your router needs to advertise a subnet. On Ubuntu, you can set both IPv4 and IPv6 address manually with ip addr add ... . –  dirkt Sep 10, 2019 at 11:22
  • Edited. I'm going to guess then that it is assigned from a range, but then I limit what can be assigned based on MAC addresses. If I'm setting the IP address manually on each device, is there any further configuration that needs to be done (apart from avoiding duplicates), or will the router just accept that device A is going to use its own configured address? –  hiigaran Sep 10, 2019 at 12:00
  • If there's a page where you can assign an IPv4 address based on a MAC address, then this is for static addresses assigned via DHCP from the router. IPv6 works differently. While there is DHCPv6, the normal way is to use SLAAC , and let each computer pick an IPv6 address based on the announced subnet prefix.So this page won't help you to assign IPv6 addresses... –  dirkt Sep 10, 2019 at 12:05

2 Answers 2

To clarify with how I manually set network IP addresses, my router has a page where I can set an address of my choosing to a MAC address. No configuration is done outside of the router

This usually isn't called "manual configuration" to avoid confusion (from the LAN hosts' point of view, it is still automatic configuration). The usual terms are "static DHCP lease" or "DHCP reservation".

Overall, the process in IPv6 is usually completely different.

In IPv6 primary address auto-configuration mechanism (SLAAC) is completely stateless: the router does not issue individual addresses; it only periodically advertises the subnet address prefix and each host just combines it with its own chosen suffix. The router cannot limit hosts to just a specific sub-range; in fact the router does not receive any feedback about hosts' chosen address at all.

(Depending on each device's OS, the suffix might be a MAC address in traditional RFC4862 SLAAC; it might be a static hash value in RFC7217; it might be completely random in RFC4941 "Privacy Extensions"; and it might even be a user-provided value if the OS allows that.)

For example, the router advertises 2001:db8:123:456::/64 as the LAN address prefix; client A combines it with its own MAC address and begins using 2001:db8:123:456:6af2:68fe:ff7c:e25c .

That said, DHCP does exist in the IPv6 world and handles address leases in much the same way as IPv4 DHCP does. That means you can create DHCPv6 address pools, you can configure static address leases in DHCPv6, and so on. But not all clients support DHCPv6 at all (e.g. Android does not), so having SLAAC alongside is almost unavoidable.

So if you have a DHCPv6-capable client on a DHCPv6-capable network, chances are it'll have both a nice DHCPv6-assigned address and a longer SLAAC-autoconfigured address.

If I'm setting the IP address manually on each device, is there any further configuration that needs to be done (apart from avoiding duplicates), or will the router just accept that device A is going to use its own configured address?

As you can see above, that's how IPv6 address configuration works anyway .

u1686_grawity's user avatar

Your router's manual is found in User Guide and contains for IPv6 only an option for entering a static IPv6 address for the router itself (as received from the ISP).

The section about specifying the IP addresses that the router assigns by MAC address does not say whether they are IPv4 or IPv6, but I think it is highly unlikely that this will work for IPv6. And here is why.

IPv6 is quite unlike IPv4 in the sense that the long IPv6 address is made up of two parts. The first (the prefix) is assigned by the ISP. The second is assigned locally by the router or by each computer and is usually a random value based on the MAC address.

This means that the router does not control the IPv6 prefix which the ISP can change whenever it likes. You can force your computer to use a static IPv6 address, but only if it agrees with the ISP. You may be able to ask the ISP for a static IPv6 address, but that is a bad idea.

The reason it's a bad idea, is that all your devices are visible to the entire Internet by their IPv6 address (unless the router intervenes). Therefore having a fixed IPv6 address just makes tracking you that much easier.

If you wish, you would in Windows set a computer's static IPv6 inside Start > Network > Network and Sharing Center > Change Adapter Setting , right-click on the Ethernet connection IPv6 and choose Properties, right-click "Internet Protocol Version 6 (TCP/IPv6)" and click on Properties, the set "Use the following IPv6 address".

But the fact you can does not mean you should. The only place that static IPv6 addresses makes sense is inside a local network which is not connected to the Internet.

harrymc's user avatar

  • What about if I wanted to run a web server? I'm constantly traveling for work, and I would love to have access to one of the computers at home which runs 24/7. I'd need to set a static IPv6 for this to work, wouldn't I? –  hiigaran Sep 10, 2019 at 19:23
  • A general solution would require an IPv6 dynamic DNS provider. See for that the article dynv6.com: IPv6 dynamic DNS done right . –  harrymc Sep 10, 2019 at 19:29
  • @harrymc Help me understand your logic, why would a server in a data center have a static IP but a server at home a dynamic one? In what world does that make any sense? –  Chazy Chaz Jul 29, 2022 at 12:40
  • In a world where the ISP attributes to users dynamic IP addresses. –  harrymc Jul 29, 2022 at 12:51

You must log in to answer this question.

Not the answer you're looking for browse other questions tagged networking router ipv6 ..

  • The Overflow Blog
  • Climbing the GenAI decision tree sponsored post
  • Diverting more backdoor disasters
  • Featured on Meta
  • New Focus Styles & Updated Styling for Button Groups
  • Upcoming initiatives on Stack Overflow and across the Stack Exchange network
  • Google Cloud will be Sponsoring Super User SE

Hot Network Questions

  • How would the existence of sapient "Pet Rocks" affect the economy of a medieval kingdom?
  • American 'bought' sometimes sounds like 'bop'?
  • What can we do when flights are cancelled and we're offered replacements from another airport?
  • Security implications of increasing sudo timeout in terminal
  • What are some of the legal consequenses of hiring full-time employees on contract basis?
  • Red Dwarf: Episode in which Holly Offers to Make a Woman?
  • What's the most common word in Latin?
  • Are my skin and hair colors believable?
  • Has anyone ever made a quiet floppy drive?
  • Can falsehood be measured? If so, would it be continuous or discrete?
  • Can the minimisation operation be seen from a programming language perspective?
  • How different is the German in a Bavarian edition schoolbook?
  • Is there something between Debug and Release build?
  • Novella about man reminiscing about his girlfriend/wife while standing by her dead body
  • Did Goethe say this quote praising the Prophet Muhammed?
  • Humourous television series. An arrogant man seems to be giving a blow by blow count of a dangerous battle. He was describing a game of Risk
  • Factoring through projective modules is an equivalence relation
  • How to find info on rare languages?
  • Is an LED driver IC just a boost conv with voltage across Rsense fed into FB?
  • Why isn't there financial safety if I am arrested illegally?
  • Is there a valid case to do the imposible turn(180)?
  • How Probable is the Philosophical Significance of Numerical Patterns in Religious Texts?
  • How to equally split college fund between 2 children going to college 5 years apart?
  • Addplot messes with axis coordinate system?

ipv6 assignment command

How to configure IPv6 Static Route

Lesson Contents

If you know how to configure a static route for IPv4 , you shouldn’t have any issues with IPv6 static routes. The configuration and syntax are similar. There are only some minor differences. In this lesson, I will show you how to configure all IPv6 static route types.

Configuration

To demonstrate this topology, I will use the following topology:

r1 r2 serial link ipv6 addresses

R1 and R2 are connected with a serial link. R2 has a loopback interface with IPv6 address 2001:DB8:2:2::2/64. Let’s see if we can reach this address.

  • Static route for a prefix

Let’s start with a simple example where we create a static route for the prefix we want to reach: 2001:DB8:2:2::/64.

Static route for a prefix – outgoing interface

Like with IPv4, it is possible to use an interface as the next hop. This will only work with point-to-point interfaces:

Here’s what the routing table looks like:

Let’s see if it works:

Our ping is working.

Static route for a prefix – global unicast next hop

Instead of an outgoing interface, we can also specify the global unicast address as the next hop:

No problem at all…

Static route for a prefix – link-local next hop

One of the differences between IPv4 and IPv6 is that IPv6 generates a link-local address for each interface. These link-local addresses are also used by routing protocols like RIPng, EIGRP, OSPFv3, etc, as the next-hop addresses. Let’s see what the link-local address is of R2:

Let’s use this as the next-hop address. When you use a global unicast address as the next hop, your router can look at the routing table and figure out what outgoing interface to use to reach this global unicast address. With link-local addresses, the router has no clue which outgoing interface to use so you will have to specify both the outgoing interface and the link-local address:

Just to be sure, let’s try a ping:

No problems there.

  • Static default route

Just like IPv4, we can also create static default routes. A default route has only zeroes (::) and a /0 prefix length. This is the equivalent of 0.0.0.0/0 in IPv4. We can do this with an interface, global unicast, or link-local address. Let’s try all options!

Static default route – outgoing interface

Let’s start with the outgoing interface first:

Here’s the routing table:

Let’s try a quick ping:

Static default route – global unicast next hop

Instead of an outgoing interface, let’s try a global unicast next-hop address:

Time for the next option.

Static default route – link-local next hop

Let’s replace the global unicast next hop address with a link-local address:

  • Static host route

We can also create static routes for a single IPv6 address, called a static host route . These examples are the same as the ones you have seen before, but this time, we will create an entry for 2001:DB8:2:2::2/128, which is similar to using a /32 subnet mask in IPv4.

Static host route – outgoing interface

First, we will try the outgoing interface:

Here is the routing table:

Static host route – global unicast next hop

Let’s try a global unicast address as the next hop:

And let’s try a quick ping:

Static host route – link-local next hop

Last but not least, a link-local address as the next hop address:

Here’s R1’s routing table:

Let’s try another ping:

  • Static floating route

We can also configure floating static routes . To test this, I have to add another router:

r1 r2 r3 serial fastethernet ipv6 addresses

R3 is added to our topology, and I configured the same loopback address (2001:DB8:23:23::23/128) on both routers. R3 will be used as our main path to reach this address. When the link is down, we want to use R2.

Here’s the static route that is used to use R3 as the primary path:

Static floating route – outgoing interface

Let’s try the outgoing interface first. The static route looks like this:

Note that at the end of the line above, I specified the administrative distance with a value of 2. With both interfaces up, R1 will send all traffic to R3:

Above, you can see that the default administrative distance is 1. Let’s shut the FastEthernet 0/0 interface to test our static floating route:

Let’s look at the routing table again:

The entry to R2 is now installed. You can also see the administrative distance value of two in the routing table.

Static floating route – global unicast next hop

Instead of the outgoing interface, we can also use a global unicast address as the next hop:

The routing table will then look like this:

Static floating route – link-local next hop

Or use a link-local address as the next hop:

You have now learned how to configure the following IPv6 static routes:

And how to do this with different next-hop types:

  • Outgoing interface (only for point-to-point interfaces)
  • Global unicast address
  • Link-local address

I hope these examples have been useful to you!

Tags: Static Route

Forum Replies

please help me with IPv6 default route.

for example:

Futura(config)#ipv6 route ::/0 fastEthernet 0/0 FE80::CE0A:22FF:FED5:0

so ::/0 means, any address, where must match 0 bytes.

Is my example of default route correct?

Using ::/0 for the default route is correct. The :: part means all 0s and the /0 represents the network mask, not the bytes.

Hello Rene,

Thanks alot for your amazing way to explain this. I have a question, how did you get the address FE80::CE0A:22FF:FED5:0 is it any address start with FE80 (link local) or what? I did not get it. Thanks in advance Wisam

Everything that starts with FE80::/10 is a link-local address. The remaining part of the address was generated with EUI-64. This article will help:

https://networklessons.com/ipv6/ipv6-eui-64-explained

Hello Rene, Thanks alot for your reply.

I still did not get how you get it to write it in your command line below,

“Futura(config) #ipv6 route 2001::2/128 fastEthernet 0/0 FE80::CE0A:22FF:FED5:0” where we can find it? do we have to use show command before we add this line.

Thanks Rene Wisam

33 more replies! Ask a question or join the discussion by visiting our Community Forum

Logo

CCNA 200-301

  • CCNA 200-301 Labs
  • CCNP 350-401 ENCOR
  • CCNP 350-401 ENCOR Labs
  • CCNP 300-410 ENARSI
  • CCIE Enterprise Infrastructure
  • Cisco Packet Tracer Lab Course
  • NRS II IRP Course
  • NRS II MPLS Course
  • NRS II Service Architecture
  • Nokia Configuration Course
  • Nokia SRC Program
  • JNCIA Junos
  • HCIA (HCNA)
  • HCIA Configuration Course
  • What is Huawei R&S Certification?
  • Huawei ICT Certifications
  • Python Course
  • IPv6 Course
  • IP Multicast Course
  • NRS I Configuration Course
  • Cisco Packet Tracer How To Guide
  • Online Courses
  • Udemy Courses
  • CCNA Flashcard Questions
  • Protocol Cheat Sheets
  • Subnetting Cheat Sheet
  • Linux Cheat Sheet
  • Python Cheat Sheet
  • CLI Commands Cheat Sheets
  • Miscellaneous Cheat Sheets
  • Cisco Packet Tracer Labs
  • Cisco GNS3 Labs
  • Huawei eNSP Labs
  • Nokia GNS3 Labs
  • Short Config Videos
  • Network Tools
  • IPCisco on Social Media
  • Network Engineer Interview Questions
  • Personality Interview Training
  • Sign In/Up | Members
  • Lost password
  • Sign In/Sign Up
  • ENROLL HERE

Logo

  • IPv6 Configuration on Cisco Packet Tracer

ipv6-configuration

Table of Contents

IPv6 Configuration

IPv6 is the new version of the most important Network Layer Protocol IP. With this new IP version, IPv6, beside different features, some configuration differencies are also coming. In this lesson, we will focus on these IPv6 Configuration Steps, IPv6 Configuration on Cisco devices . We will use the below Packet Tracer topology for our IPv6 Config .

You can download Packet Tracer IPv6 Lab , in Packet Tracer Labs page.

In this configuration lesson, we will follow the below IPv6 Configuration steps :

Enable IPv6 Globally

Enable ipv6 on interface, configure eui-64 format global unicast address, configure manual global unicast address, manual link local address configuration, auto ipv6 address configuration, enable dhcpv6 client, ipv6 verification commands.

  So, let’s go to the IPv6 Configuration steps and configure IPv6 for Cisco routers .

After going to the configuration mode with “ configure terminal ” command, to enable IPv6 on a Cisco router, “ ipv6 unicast-routing ” command is used. With this Cisco command, IPv6 is enabled globally on the router. This can be used before both interface configurations and IPv6 Routing Protocol configurations.

Router 1# configure terminal Router 1(config)# ipv6 unicast-routing Router 2# configure terminal Router 2(config)# ipv6 unicast-routing

After enabling IPv6 globally, we should enable IPv6 under the Interfaces. To enable IPv6 under an interface, we will use “ ipv6 enable ” command. Let’s enable IPv6 on two interfaces of each router.

Router 1 (config)# interface FastEthernet0/0 Router 1 (config-if)# ipv6 enable Router 1 (config-if)# no shutdown Router 1 (config)# interface FastEthernet0/1 Router 1 (config-if)# ipv6 enable Router 1 (config-if)# no shutdown
Router 2 (config)# interface FastEthernet0/0 Router 2 (config-if)# ipv6 enable Router 2 (config-if)# no shutdown Router 2 (config)# interface FastEthernet0/1 Router 2 (config-if)# ipv6 enable Router 2 (config-if)# no shutdown

EUI-64 format is the IPv6 format used to create IPv6 Global Unicast Addresses . It is a specific format that we have also talked about before. With this format, basically, interface id of the whole IPv6 adderess is ceated with the help of the MAC address. After that, this created interface id is appended to the network id.

To configure an interface with EUI-64 format (Extended Unique Identifier), firstly we will go under the interface, then we will use “ ip address ipv6-address/prefix-length eui-64 ” command. Here, our IPv6 address and prefix-length are 2001:AAAA:BBBB:CCCC::/64. The real EUI-64 Global Unicast Address will be created with this address and MAC address after IPv6 configuration.

Router 1 (config)# interface FastEthernet0/0 Router 1(config-if)# ipv6 address 2001:AAAA:BBBB:CCCC::/64 eui-64 Router 1(config-if)# end

Let’s check the IPv6 address that is created with EUI-64 format with “ show ipv6 interface brief ” command.

Router 1# show ipv6 interface brief FastEthernet0/0            [up/up] FE80::2E0:B0FF:FE0E:7701 2001:AAAA:BBBB:CCCC:2E0:B0FF:FE0E:7701 FastEthernet0/1            [up/up] FE80::2E0:B0FF:FE0E:7702 Vlan1                      [administratively down/down] unassigned

If we do not use EUI-64 format address, we have to write the whole IPv6 Address to the configuration line. Let’s configure Gigabit Ethernet 0/0 interface of Router 2 manually .

Router 2 (config)# interface FastEthernet0/0 Router 2 (config-if)# ipv6 address 2001:AAAA:BBBB:CCCC:1234:1234:1234:1234/64 Router 2(config-if)# end

Here, both of these directly connected interfaces are in the same subnet, the Network ID is same (2001:AAAA:BBBB:CCCC::/64).

Let’s check the IPv6 address that we have manually assigned with “ show ipv6 interface brief ” command.

Router 2# show ipv6 interface brief FastEthernet0/0            [up/up] FE80::206:2AFF:FE15:BD01     2001:AAAA:BBBB:CCCC:1234:1234:1234:1234 FastEthernet0/1            [administratively up/up] FE80::206:2AFF:FE15:BD02 Vlan1                      [administratively down/down] unassigned

To check the connectivity between two node, we use ping. As IPv4, with IPv6, we also use ping, but this time it is called IPv6 Ping . The format of IPv6 Ping is a little difference than IPv4 Ping. These  differences are the format of the used IP address and the used keywords. With IPv6 Ping , “ ping ipv6 ” keywords are used before the destination IPv6 address.

Here, we will ping from Router 1 GigabitEthernet0/0 interface to Router 2 GigabitEthernet0/0 interface.

Router 1# ping ipv6 2001:AAAA:BBBB:CCCC:1234:1234:1234:1234   Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 2001:AAAA:BBBB:CCCC:1234:1234:1234:1234, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/1 ms

To check the configured IPv6 Address, we can use “ show ipv6 interface interface-name ” command.

Router 1# show ipv6 interface FastEthernet0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE80::2E0:B0FF:FE0E:7701 No Virtual link-local address(es): Global unicast address(es): 2001:AAAA:BBBB:CCCC:2E0:B0FF:FE0E:7701 , subnet is 2001:AAAA:BBBB:CCCC::/64 [EUI] Joined group address(es): FF02::1 FF02::2 FF02::1:FF0E:7701 MTU is 1500 bytes ICMP error messages limited to one every 100 milliseconds ICMP redirects are enabled ICMP unreachables are sent ND DAD is enabled, number of DAD attempts: 1 ND reachable time is 30000 milliseconds ND advertised reachable time is 0 (unspecified) ND advertised retransmit interval is 0 (unspecified) ND router advertisements are sent every 200 seconds ND router advertisements live for 1800 seconds ND advertised default router preference is Medium Hosts use stateless autoconfig for addresses.
Router 2# show ipv6 interface FastEthernet0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE80::206:2AFF:FE15:BD01 No Virtual link-local address(es): Global unicast address(es):     2001:AAAA:BBBB:CCCC:1234:1234:1234:1234 , subnet is 2001:AAAA:BBBB:CCCC::/64 Joined group address(es): FF02::1 FF02::2 FF02::1:FF15:BD01 FF02::1:FF34:1234 MTU is 1500 bytes ICMP error messages limited to one every 100 milliseconds ICMP redirects are enabled ICMP unreachables are sent ND DAD is enabled, number of DAD attempts: 1 ND reachable time is 30000 milliseconds ND advertised reachable time is 0 (unspecified) ND advertised retransmit interval is 0 (unspecified) ND router advertisements are sent every 200 seconds ND router advertisements live for 1800 seconds ND advertised default router preference is Medium Hosts use stateless autoconfig for addresses.

Here, with ipv6 ping, there are some options that we can use. These are given below:

ping ipv6 [hostname | ip_address] [repeat repeat-count | size datagram-size | source [ interface-name | source-address ]

  • repeat : Ping packet count. The default ping repeat value is 5.
  • size : Datagram size. The default value ping size is 56 bytes.
  • source : Source Address of the ping. Default value is None.

So if we would like to send 10 IPv6 ping packet with 200 byte datagrams from 2001:AAAA:BBBB:CCCC:1234:1234:1234:1234 to 2001:AAAA:BBBB:CCCC:1111:2222:3333:4444, we will use the below command:

Router 2 # ping ipv6 2001:AAAA:BBBB:CCCC:1111:2222:3333:4444 repeat 10 size 200 source 2001:AAAA:BBBB:CCCC:1234:1234:1234:1234

To configure a Link Locak address manually, we use “ ipv6 address link-local ipv6-address ” command. Here, we should write an IPv6 address in the range of Link Local addresses. If you would like to learn more about a Link Local Address, you can check Link Local Address lesson.

Let’s configure GigabitEthernet0/1 interface of Router 1 with Link Local Address FE80::AAAA:BBBB:CCCC:DDDD. Here, there is no need to write a prefix length but we will add link-local keyword at the end of the command.

Router 1 (config)# interface FastEthernet0/1 Router 1 (config-if)# ipv6 address FE80::AAAA:BBBB:CCCC:DDDD link-local Router 1 (config-if)# end

Let’s check the manually configure ipv6 Link-Local address with “ show ipv6 interface brief ” command.

Router 1# show ipv6 interface brief FastEthernet0/0            [up/up] FE80::2E0:B0FF:FE0E:7701 2001:AAAA:BBBB:CCCC:2E0:B0FF:FE0E:7701 FastEthernet0/1            [administratively down/down]     FE80::AAAA:BBBB:CCCC:DDDD Vlan1                      [administratively down/down] unassigned

IPv6 Addresses can be configured automatically. This is one of the most important characteristics coming with IPv6. For IPv6 Auto configuration , we will use “ ipv6 address autoconfig ” command. Let’s use it on Router 2 on GigabitEthernet0/1.

Router 2 (config)# interface FastEthernet0/1 Router 2 (config-if)# ipv6 address autoconfig Router 2 (config-if)# end

This type of IPv6 address configuration is Sateless Auto Configuration .

Let’s check the Autoconfigured Link-Local ipv6 address with “ show ipv6 interface brief ” command.

Router 2# show ipv6 interface brief FastEthernet0/0            [up/up] FE80::206:2AFF:FE15:BD01 2001:AAAA:BBBB:CCCC:1234:1234:1234:1234 FastEthernet0/1            [up/down]     FE80::206:2AFF:FE15:BD02 Vlan1                      [administratively down/down] unassigned

Let’s ping from Router 2 to Router 1 to test this second interfaces’ ipv6 connection.

Router 2# ping ipv6 FE80::AAAA:BBBB:CCCC:DDDD Output Interface: FastEthernet0/1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to FE80::AAAA:BBBB:CCCC:DDDD, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 0/0/1 ms

To enable DHCPv6 Client function on an interface, we use “ ipv6 address dhcp ” command under this interface. With this command, interface gets its IPv6 address form the DHCPv6 server . Let’s enable DHCPv6 on GigabitEthernet0/2 of Router 2.

Router 1 (config)# interface FastEthernet0/1 Router 1 (config-if)# ipv6 address dhcp Router 1 (config)# end

To verify DHCPv6 enabled interfaces, we can use “ show ipv6 dhcp interface ” command.

Router 1 # show ipv6 dhcp interface

To verify IPv6 Configuration, we can use different show commands. These IPv6 show commands are given below

  • To check IPv6 interface configuration and status we use “ show ipv6 interface interface-id ”.
Router 1# show ipv6 interface FastEthernet0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE80::2E0:B0FF:FE0E:7701 No Virtual link-local address(es): Global unicast address(es): 2001:AAAA:BBBB:CCCC:2E0:B0FF:FE0E:7701, subnet is 2001:AAAA:BBBB:CCCC::/64 [EUI] Joined group address(es): FF02::1 FF02::2 FF02::1:FF0E:7701 MTU is 1500 bytes ICMP error messages limited to one every 100 milliseconds ICMP redirects are enabled ICMP unreachables are sent ND DAD is enabled, number of DAD attempts: 1 ND reachable time is 30000 milliseconds ND advertised reachable time is 0 (unspecified) ND advertised retransmit interval is 0 (unspecified) ND router advertisements are sent every 200 seconds ND router advertisements live for 1800 seconds ND advertised default router preference is Medium Hosts use stateless autoconfig for addresses.
  • To check IPv6 neighbor cache entries we use “ show ipv6 neighbors ”.
Router 1# show ipv6 neighbors IPv6 Address                              Age Link-layer Addr State Interface 2001:AAAA:BBBB:CCCC:1234:1234:1234:1234    23 0006.2A15.BD01  REACH Fa0/0 FE80::206:2AFF:FE15:BD02                    7 0006.2A15.BD02  REACH Fa0/1
  • To check IPv6 Routing Table we use “ show ipv6 route ”.
Router 1# show ipv6 route   IPv6 Routing Table – 3 entries Codes: C – Connected, L – Local, S – Static, R – RIP, B – BGP U – Per-user Static route, M – MIPv6 I1 – ISIS L1, I2 – ISIS L2, IA – ISIS interarea, IS – ISIS summary O – OSPF intra, OI – OSPF inter, OE1 – OSPF ext 1, OE2 – OSPF ext 2 ON1 – OSPF NSSA ext 1, ON2 – OSPF NSSA ext 2 D – EIGRP, EX – EIGRP external C   2001:AAAA:BBBB:CCCC::/64 [0/0] via ::, FastEthernet0/0 L   2001:AAAA:BBBB:CCCC:2E0:B0FF:FE0E:7701/128 [0/0] via ::, FastEthernet0/0 L   FF00::/8 [0/0] via ::, Null0
  • To check IPv6 DHCP we use “ show ipv6 dhcp ”.
Router 1# show ipv6 dhcp This device’s DHCPv6 unique identifier (DUID): 0003000100E0B00E7701
  • To check IPv6 Protocols we use “ show ipv6 protocols ”.
Router 1# show ipv6 protocols IPv6 Routing Protocol is “connected” IPv6 Routing Protocol is “static

Questions For IPv6 Configuration

Question 1: with which command do we enable ipv6 globally for ipv6 configuration.

a) ipv6 enable

b) ipv6 unicast-routing

c) ipv6 no shutdown

d) ipv6 run

Question 2: Which command enables IPv6 under an interface?

Question 3: which command enables auto ipv6 addressing under an interface .

a) ipv6 auto

d) ipv6 address autoconfig

e) ipv6 run

Question 4: Which command enables DHCPv6 under an interface?

a) ipv6 auto dhcp

b) ipv6 address dhcp

c) ipv6 address autoconfig

d) ipv6 dhcp run

e) ipv6 dhcp on

Question 5: How to send 20 ping packet to 001:AAAA:BBBB:CCCC:1111:2222:3333:4444 address?

a) ping ipv6 2001:AAAA:BBBB:CCCC:1111:2222:3333:4444 source 20

b) ping ipv6 2001:AAAA:BBBB:CCCC:1111:2222:3333:4444 size 20

c) ping ipv6 2001:AAAA:BBBB:CCCC:1111:2222:3333:4444 repeat 20

Answers: 1) b     2) a    3) d    4) b    5) c   

ipv6 assignment command

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Network Fundamentals

  • Collision Domain vs Broadcast Domain
  • Coaxial Cable Details
  • Types of Networks
  • Top Internet Access Technologies
  • WAN Topology Types
  • Network Topology Architectures
  • Power Over Ethernet (PoE)
  • Ethernet Collisions and Troubleshooting
  • Cisco NGFW and Cisco NGIPS
  • Networking Connectors
  • Ping Command
  • Basic Cisco Router Configuration on Packet Tracer
  • ICMP (Internet Control Message Protocol)
  • Address Resolution Protocol (ARP)
  • Network Cabling
  • Network Devices
  • TCP/IP Model
  • OSI Referance Model

IPv4 Addressing

  • Verify IP Parameters for Client OS
  • IPv4 vs IPv6 Comparison
  • Cisco IP Address Configuration
  • APIPA Address
  • Private IP Address Ranges
  • Subnetting Examples
  • IP Addressing (IPv4)
  • IP Subnetting and Subnetting Examples

TCP and UDP

  • TCP Header : Sequence & Acknowledgement Number
  • TCP Handshake
  • TCP versus UDP
  • UDP (User Datagram Protocol)
  • TCP (Transmission Control Protocol)
  • TCP Header : TCP Options
  • TCP Header : TCP Window Size, Checksum & Urgent Pointer
  • TCP Header : TCP Flags
  • Voice VLAN Configuration
  • Packet Tracer VLAN Example 2
  • How to Configure Cisco VLANs
  • VTP Configuration with Packet Tracer
  • VTP (VLAN Trunking Protocol)
  • DTP and VLAN Frame Tagging protocols ISL, dot1.q
  • Cisco Packet Tracer VLAN Configuration Example
  • VLAN Port Assignment and VLAN Port Types
  • VLANs (Virtual Local Area Networks)

Switching and LANs

  • Ethernet Basics
  • Cisco Switch Configuration on Cisco Packet Tracer
  • MAC Address Lookup
  • What is a mac address
  • Local Area Networks
  • Network Topologies
  • Hubs, Switches and Routers

Spanning Tree Protocol

  • Loop Guard, Uplink Fast, Backbone Fast and UDLD
  • Portfast, Root Guard, BPDU Filter and BPDU Guard
  • PVST+ and Rapid PVST+
  • STP (Spanning Tree Protocol) Example on Packet Tracer
  • RSTP Configuration on Packet Tracer
  • STP Portfast Configuration with Packet Tracer
  • Spanning Tree Protocol Operation
  • Rapid Spanning Tree Protocol (RSTP)
  • Spanning Tree Protocol (STP)

Neighbor Discovery

  • LLDP Configuration on Cisco IOS
  • Neighbour Discovery Protocols
  • CDP Configuration with Packet Tracer

EtherChannels

  • PAgP Configuration on Cisco Devices
  • LACP Configuration on Cisco Devices
  • Link Aggregation Control Protocol (LACP)

Routing Fundamentals

  • Route Summarization
  • Routing Path Determination
  • Routing Table
  • Static Routes
  • IPv4 Floating Static Routes
  • Inter VLAN Routing Configuration on Packet Tracer
  • Switch Virtual Interface Configuration on Packet Tracer
  • Switch Virtual Interfaces
  • Inter VLAN Routing with Router on Stick
  • IP and Layer 3 Overview
  • Static Route Configuration on Cisco Routers
  • Dynamic Routing Protocols
  • OSPF Cost and SPF Algorithm
  • OSPFv3 Configuration Example on Cisco IOS
  • OSPFv3 (Open Shortest Path First Version 3)
  • Cisco Single Area OSPF Configuration
  • Other OSPF Key Points
  • OSPF Network Types
  • OSPF Area Types
  • OSPF LSA Types
  • OSPF Packet Types
  • OSPF Adjacency
  • OSPF(Open Shortest Path First) Overview

WAN (Wide Area Networks)

  • MLPPP Configuration on Cisco Packet Tracer
  • What is MLPPP?
  • Metro Ethernet Technology
  • WAN and WAN Technologies

DHCP and DNS

  • DNS Configuration on Cisco Routers
  • Domain Name System Overview
  • Router DHCP Configuration with Packet Tracer
  • DHCP IP Allocation Operation
  • DHCP (Dynamic Host Configuration Protocol)
  • NAT (Network Address Translation)
  • PAT Configuration with Packet Tracer
  • Dynamic NAT Configuration with Packet Tracer
  • Static NAT Configuration with Packet Tracer

First Hop Redundancy

  • HSRP Configuration on Cisco IOS
  • HSRP (Hot Standby Router Protocol)
  • First Hop Redundancy Protocols (FHRPs)

Network Management

  • Syslog Overview
  • Configuration Register
  • TFTP, FTP, SFTP and SCP
  • SSH Configuration on Packet Tracer
  • Syslog Configuration Cisco
  • Cisco NTP Configuration
  • NTP (Network Time Protocol)
  • SNMP Overview
  • SNMP Configuration On Cisco IOS
  • Cisco Router Password Recovery
  • IPv6 Floating Static Routes
  • IPv6 Static and Default Route Configuration
  • Stateless Address Auto Configuration
  • IPv6 NDP (Neighbour Discovery Protocol)
  • What does IPv6 bring?
  • Subnetting in IPv6
  • IPv6 Address Types
  • IPv4 and IPv6 Headers
  • IPv6 and IPv6 Addresses

Quality of Service

  • Network Traffic Types
  • Policing and Shaping in QoS
  • Classification and Marking in QoS
  • Quality of Service Overview
  • Radius Configuration for Wireless Users
  • Cisco RADIUS Server Configuration on Packet Tracer
  • TACACS+ Overview
  • RADIUS Overview
  • AAA Protocols : RADIUS and TACACS+
  • Authentication, Authorization, Accounting (AAA)
  • WLAN Frequency Bands
  • Other Wireless Network Extention Types
  • Wireless Principles
  • WLAN Components
  • Wireless Network Design Models
  • WLC Management Access Connections
  • Wireless Access Point Modes
  • Wireless Security Protocols
  • WLAN Configuration on Packet Tracer

Security Fundamentals

  • DHCP Snooping Configuration on Packet Tracer
  • Cisco Banner Configuration on Packet Tracer
  • What is DHCP Snooping?
  • Access Control Lists
  • Multifactor Authentication (MFA)
  • Dynamic ARP Inspection
  • Cyber Attacks, Network Attacks, Threats and Mitigation
  • 802.1x (Port Based Network Access Control)
  • Switch Port Security Configuration on Cisco Packet Tracer
  • Switch Port Security
  • Extended Access List Configuration With Packet Tracer
  • Standard Access List Configuration With Packet Tracer
  • Basic Cisco Router Security Configuration

Automation and Programmability

  • Ansible vs Puppet vs Chef
  • Chef Overview
  • Puppet Overview
  • Ansible Overview
  • Network Automation Tools
  • Interpret JSON Encoded Data
  • Cisco DNA Center
  • Cisco SD-Access
  • Data Serialization Languages: JSON, YAML, XML
  • Traditional Network Management versus Cisco DNA Center
  • Cisco DNA and Intent-Based Networking (IBN)
  • How Network Automation Impacts Network Management

SDN (Software Defined Networking)

  • What is SDN ?
  • Traditional Network Drawbacks Versus SDN
  • What Will SDN Bring?
  • SDN Architecture Components
  • SDN Terminology
  • Virtualization
  • Virtual Network Structure

Latest Lessons

  • Coaxial Cable Details Part of: CCNA 200-301
  • IPv4 vs IPv6 Comparison Part of: CCNA 200-301
  • IGMPv3 Overview Part of: IP Multicast Course
  • IGMPv3 Overview Part of: CCIE Enterprise Infrastructure
  • Subnetting IPv6 Part of: CCIE Enterprise Infrastructure
  • IPv6 and Subnetting Part of: CCNP Enterprise 350-401 ENCOR
  • IPv6 Link Local Address Type Part of: CCIE Enterprise Infrastructure
  • Cisco Switch Configuration on Cisco Packet Tracer Part of: CCNA 200-301
  • Switch Configuration on Cisco Packet Tracer Part of: Cisco Packet Tracer Lab Course
  • REST API Security Part of: CCNP Enterprise 350-401 ENCOR
  • More Lessons

Latest Blog Posts

how-ransomware-attack-works-ipcisco.com

WHAT YOU WILL FIND?

  • 250.000+ Students All Over The World
  • 8.000+ Questions & Answers
  • 100+ Lab Files & Cheat Sheets
  • 30+ IT/Network Courses
  • A Real Desire To Help You
  • Daily Social Media Shares
  • %100 Satisfaction
  • CISCO Courses
  • NOKIA Courses
  • HUAWEI Courses
  • JUNIPER Courses
  • PYTHON Course
  • KEY Courses
  • VIDEO Courses
  • UDEMY Courses
  • Cheat Sheets
  • Configuration Files
  • Interview Questions
  • IPCisco On Social Media
  • Pärnu mnt. 139c – 14, 11317, Tallinn, Estonia
  • [email protected]

How to configure ipv6 address in Linux (RHEL / CentOS 7/8)

This step by step by guide to configure IPv6 address is validated on RHEL and CentOS 7 .

How-to-configure-ipv6-address-linux

IPv6 can act as a replacement for the IPv4 network protocol. The major problem it solves is the exhaustion of IPv4 addresses by using a much larger network address space. It also provides a number of enhancements and new features for network configuration management and support for future protocol changes.

The key reason IPv6 is not yet in wide deployment is that the core protocol does not have a simple way for systems that only have IPv6 addresses to communicate with systems that only have IPv4 addresses.

An IPv6 address is a 128-bit number , normally expressed as eight colon-separated groups of four hexadecimal nibbles (half-bytes). Each nibble represents four bits of the IPv6 address, so each group represents 16 bits of the IPv6 address.

To make it easier to write IPv6 addresses, leading zeros in a colon-separated group do not need to be written. However at least one nibble must be written in each field. Zeros which follow a non zero nibble in the group do not need to be written.

Since addresses with long strings of zeros are common, combine one or more groups of consecutive zeros with exactly one :: block.

Notice that under these rules 2001:1:1:1443::400 would be another less convenient way to write the example address. But it is a valid representation of the same address, and this can confuse administrators new to IPv6.

Some tips for writing consistently readable addresses

  • Always suppress all the leading zeros in a group
  • Use :: to shorten as much as possible. If two runs of zeros are equal in length, shorten the leftmost run of zeros by preference.
  • Although it is allowed, do not use :: to shorten one group of zeros, Use :0: instead, and save :: for runs of zeros longer than a single group.
  • Always use lowercase letters for hexadecimal numbers a through f .

Pre-requisite before starting to configure IPv6 address

Make sure that IPv6 is enable on your node. Look out for below entry in your sysctl configuration

This will list the IPv6 status for the default value and per interface value.

Here " 0 " means IPv6 is in active on our node, if the above returns " 1 " then it means IPv6 is disable on your node. So if the IPv6 is disable then your IPv6 configuration will not work.

I have already written an article with steps to enable or disable IPv6

Comparison of nm-setting and ifcfg-* directives

The following table maps some of the key NetworkManager settings name relevant to IPv6 connections to ifcfg-* directives.

Configure IPv6 address using Network Manager.

Open Network Manager Console from your Linux node

Select Edit a Connection and click on Ok

How to configure ipv6 address in Linux (RHEL / CentOS 7/8)

Next look out for your Ethernet card on which you wish to configure IPv6 address. If your NIC card does not appear on the list then you can add a new device . Since for me my device ( eno50 ) exists, so I will select the device and select Edit

How to configure ipv6 address in Linux (RHEL / CentOS 7/8)

This will bring you the main configuration page where you must give all the details to configure IPv6 address. Since I do not want to add IPv4 address to the same Ethernet device, I have disabled the IPv4 option.

Provide the IPv6 address/subnet and the gateway . Make sure you select Automatically Connect

How to configure ipv6 address in Linux (RHEL / CentOS 7/8)

Lastly click OK to exit the utility.

Next restart the network services to activate the changes

Now let us check the network configuration of eno50

So looks like I was able to successfully configure my interface with IPv6 address.

Validate the connectivity by pinging the IPv6 gateway

So I am able to connect to my gateway which means my IPv6 configuration was successful.

Configure IPv6 address using CLI

The following command will add a new connection for the interface eno49 , which will auto connect at startup, getting IPv4 networking information using DHCPv4. It will also get IPv6 networking settings by listening for router advertisements on the locallink.

The below command configures the eno49 interface statically using the IPv6 address and network prefix 2001:1:1:1443::433/122 and default IPv6 gateway 2001:1:1:1443::43F , but it still auto connects at startup and saves its configuration into /etc/sysconfig/network-scripts/ifcfg-eno49 .

Let us validate our configuration by pinging the gateway using eno49 interface

Again with the CLI looks like the steps are successful for me.

Modify existing IPv6 configuration

In the below command we are changing the IPv6 address of our interface eno49 from 2001:1:1:1443::433 to 2001:1:1:1443::434 , while the gateway remains the same.

Restart the eno49 interface

Next bring the the interface

Validate the new IP address for eno49 device

Check the connectivity from eno49 to it's gateway

Check the configuration file for eno49

I hope the steps from the article to configure IPv6 address on Linux (CentOS/RHEL 7/8) was helpful. Let me know your suggestions and feedback using the comment section.

Deepak Prasad

He is the founder of GoLinuxCloud and brings over a decade of expertise in Linux, Python, Go, Laravel, DevOps, Kubernetes, Git, Shell scripting, OpenShift, AWS, Networking, and Security. With extensive experience, he excels in various domains, from development to DevOps, Networking, and Security, ensuring robust and efficient solutions for diverse projects. You can reach out to him on his LinkedIn profile or join on Facebook page.

Can't find what you're searching for? Let us assist you.

Enter your query below, and we'll provide instant results tailored to your needs.

If my articles on GoLinuxCloud has helped you, kindly consider buying me a coffee as a token of appreciation.

Buy GoLinuxCloud a Coffee

For any other feedbacks or questions you can send mail to [email protected]

Thank You for your support!!

6 thoughts on “How to configure ipv6 address in Linux (RHEL / CentOS 7/8)”

One update for Centos 8. Change systemctl restart network to systemctl restart NetworkManager.service

I really love your website.. Very nice colors & theme. Did you make this amazing site yourself? Please reply back as I’m planning to create my very own site and want to know where you got this from or exactly what the theme is called. Kudos!

For us noobs: the network should be restarted after the address setup:

service network restart

Thanks for your feedback, I have updated the article 🙂

How did you get /122 when creating the new ip address and same gateway example?

This is the gateway and subnet provided by our network team.

Leave a Comment Cancel reply

Save my name and email in this browser for the next time I comment.

Notify me via e-mail if anyone answers my comment.

Configuring IPv6 address assignment

About ipv6 address assignment.

Use one of the following methods to configure IPv6 address assignment:

Configure a static IPv6 address binding in an address pool.

If you bind a DUID and an IAID to an IPv6 address, the DUID and IAID in a request must match those in the binding before the DHCPv6 server can assign the IPv6 address to the requesting client. If you only bind a DUID to an IPv6 address, the DUID in a request must match the DUID in the binding before the DHCPv6 server can assign the IPv6 address to the requesting client.

Specify a subnet and address ranges in an address pool.

Non-temporary address assignment —The server selects addresses from the non-temporary address range specified by the address range command. If no non-temporary address range is specified, the server selects addresses on the subnet specified by the network command.

T emporary address assignment —The server selects addresses from the temporary address range specified by the temporary address range command. If no temporary address range is specified in the address pool, the DHCPv6 server cannot assign temporary addresses to clients.

Restrictions and guidelines

You can specify only one non-temporary address range and one temporary address range in an address pool.

The address ranges specified by the address range and temporary address range commands must be on the subnet specified by the network command. Otherwise, the addresses are unassignable.

Only one prefix pool can be applied to an address pool. You can apply a prefix pool that has not been created to an address pool. The setting takes effect after the prefix pool is created.

An IPv6 address can be bound to only one DHCPv6 client. You cannot modify bindings that have been created. To change the binding for a DHCPv6 client, you must delete the existing binding first.

Only one subnet can be specified in an address pool. If you use the network command multiple times in a DHCPv6 address pool, the most recent configuration takes effect. If you use this command to specify only new lifetimes, the settings do not affect existing leases. The IPv6 addresses assigned after the modification will use the new lifetimes.

Enter system view.

system-view

(Optional.) Specify the IPv6 addresses excluded from dynamic assignment.

ipv6 dhcp server forbidden-address start-ipv6-address [ end-ipv6-address ]

By default, all IPv6 addresses except for the DHCPv6 server's IP address in a DHCPv6 address pool are assignable.

If the excluded IPv6 address is in a static binding, the address still can be assigned to the client.

Enter DHCPv6 address pool view.

ipv6 dhcp pool pool-name

Specify an IPv6 subnet for dynamic assignment.

network { prefix/prefix-length | prefix prefix-number [ sub-prefix/sub-prefix-length ] } [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ]

By default, no IPv6 address subnet is specified.

The IPv6 subnets cannot be the same in different address pools.

If you specify an IPv6 prefix by its ID, make sure the IPv6 prefix is in effect. Otherwise, the configuration does not take effect.

(Optional.) Specify a non-temporary IPv6 address range.

address range start-ipv6-address end-ipv6-address [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ]

By default, no non-temporary IPv6 address range is specified, and all unicast addresses on the subnet are assignable.

(Optional.) Specify a temporary IPv6 address range.

temporary address range start-ipv6-address end-ipv6-address [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ]

By default, no temporary IPv6 address range is specified, and the DHCPv6 server cannot assign temporary IPv6 addresses.

(Optional.) Create a static binding.

static-bind address ipv6-address/addr-prefix-length duid duid [ iaid iaid ] [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ]

By default, no static binding is configured.

To add more static bindings, repeat this step.

© Copyright 2015, 2017 Hewlett Packard Enterprise Development LP

IPv6 Global Unicast Address Assignments

ipv6 assignment command

  • Skip to content
  • Skip to search
  • Skip to footer

Understand the IPv6 Link-Local Address

ipv6 assignment command

Available Languages

Download options.

  • PDF (130.5 KB) View with Adobe Reader on a variety of devices
  • ePub (108.3 KB) View in various apps on iPhone, iPad, Android, Sony Reader, or Windows Phone
  • Mobi (Kindle) (105.2 KB) View on Kindle device or Kindle app on multiple devices

Bias-Free Language

The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.

Introduction

This document describes how the IPv6 Link-Local address works within a network.

Prerequisites

Requirements.

Cisco recommends that you have knowledge of these topics:

  • IPv6 Address Formats found  in the Cisco IOS® IPv6 Command Reference

Components Used

The information in this document is based on  the Cisco 3700 series router with Cisco IOS® Software Release 12.4 (15)T1.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.

Conventions

Refer to Cisco Technical Tips Conventions for more information on document conventions.

Background Information

A link-local address is an IPv6 unicast address that can be automatically configured on any interface that uses the link-local prefix FE80::/10 (1111 1110 10) and the interface identifier in the modified EUI-64 format. Link-local addresses are not necessarily bound to the MAC address (configured in a EUI-64 format). Link-local addresses can also be manually configured in the FE80::/10 format with the ipv6 address link-local command.

These addresses refer only to a particular physical link and are used for addresses on a single link for purposes such as automatic address configuration and neighbor discovery protocol. Link-local addresses can be used to reach the neighboring nodes attached to the same link. The nodes do not need a globally unique address to communicate. Routers do not forward datagram with link-local addresses. IPv6 routers must not forward packets that have link-local source or destination addresses to other links. All IPv6 enabled interfaces have a link-local unicast address.

Configuration

For this example, the routers R1, R2 and R3 are connected via serial interface and have the IPv6 addresses configured as mentioned in the network diagram. Loopback addresses are configured on the routers R1 and R3, and the routers use OSPFv3 to communicate with each other. This example uses the ping command to demonstrate the connectivity between the routers with link-local addresses. The routers R1 and R3 can ping each other with the IPv6 local unicast address, but not with their link-local address. However, router R2 is directly connected to R1 and R3 hence it can communicate with both the routers with their link-local address, because link-local addresses are used only within that local network specific to the physical interface.

Network Diagram

This document uses this network setup:

Configuration Network

Configurations Used

This document uses these configurations:

Router R1 

Router R3 

This video demonstrates the key difference between the IPv6 Link-Local Address and global unicast address in Cisco IOS routers:

  • Understand IPv6 Link-Local Address

Verification

Verify ospf configuration.

To verify the OSPF has been configured properly, use the show ipv6 route ospf command in routers R1 and R3.

Verify Link-Local Address Reachability

The routers can ping each other with the global unicast address. If the routers use the link-local address only, the directly connected networks can communicate. For example, R1 can ping R3 with global unicast address but the two routers cannot communicate with link-local addresses. This is shown with the ping and debug ipv6 icmp commands in router R1 and R3.

Ping Link-Local Address From Remote Network

When the router R1 tries to communicate with router R3 with the link local address, the router R1 returns with an ICMP time-out message that indicates the link-local address is locally specific and cannot communicate to link-local addresses that are outside the directly connected network.

Ping Link-Local Address From Directly Connected Network

For router R2, the routers R1 and R3 are directly connected and can ping the link-local address of both router R1 and R2 when they communicate the related interface that is connected to the router. The output is shown here:

The link-local address is specific only to that local network. The routers can have the same link-local address and still the directly connected network can communicate with each other without any conflict. This is not the same in case of global unicast address. The global unicast address that are routable must be unique in a network. The show ipv6 interface brief command shows the information about link-local address on the interface.

In this example, R1 and R3 are assigned with the same link-local address and R2 can still reach both the routers when they specify the related output interface.

Note : The R2 can ping the link-local address of R1 and R3 only because they are directly connected. R2 cannot ping the link-local address of the loopback interfaces in routers R1 and R3 as they are not directly connected. Ping works on link-local addresses only in case of directly connected networks.

Note : Traceroutes do not work in case of link-local addresses and return with the % No valid source address for destination error message. This is because IPv6 routers must not forward packets that have link-local source or destination addresses to other links.

Related Information

  • IP Version 6 Addressing Architecture -RFC 4291
  • IPv6 Technology Support
  • Technical Support & Documentation - Cisco Systems

Revision History

TAC Authored

Contributed by Cisco Engineers

  • Julio Jimenez Cisco TAC Engineer

Was this Document Helpful?

Feedback

Contact Cisco

login required

  • (Requires a Cisco Service Contract )

This Document Applies to These Products

  • IP Version 6 (IPv6)

ipv6 assignment command

Official websites use .gov

Secure .gov websites use HTTPS

Logo for U.S. Department of Defense

Flag Officer Assignments

The secretary of the Navy and chief of naval operations announced today the following assignments:

Rear Adm. Marc J. Miguez will be assigned as chief of legislative affairs, Washington, D.C. Miguez is currently serving as commander, Carrier Strike Group Two, Norfolk, Virginia.

Rear Adm. Ralph R. Smith III will be assigned as director, J2, U.S. Strategic Command, Offutt Air Force Base, Nebraska.  Smith is currently serving as deputy director, Operations, National Security Agency, Fort Meade, Maryland.

Rear Adm. Dennis Velez will be assigned as chief of staff, U.S. Cyber Command, Fort Meade, Maryland.  Velez is currently serving as director, Plans and Policy, J-5, U.S. Cyber Command, Fort Meade, Maryland.

Rear Adm. (lower half) Matthew Case will be assigned as deputy to the assistant director for Health Care Administration, Defense Health Agency, with additional duties as chief of Medical Service Corps, Falls Church, Virginia. Case is currently serving as commander, Naval Medical Forces Atlantic, with additional duties as director, Tidewater Market; and chief of Medical Service Corps, Portsmouth, Virginia.

Rear Adm. (lower half) Michael B. Devore will be assigned as senior military official, Guam, Commonwealth of the Northern Mariana Islands, Federated States of Micronesia, Republic of Palau, U.S. Indo-Pacific Command, Apra, Guam.  Devore is currently serving as chief of staff, Naval Surface Forces/Naval Surface Force, U.S. Pacific Fleet, San Diego, California. 

Rear Adm. (lower half) Joshua Lasky will be assigned as deputy commander, Joint Interagency Task Force South, U.S. Southern Command, Key West, Florida.  Lasky is currently serving as deputy commander, U.S. Naval Forces, U.S. Central Command; and deputy commander, Fifth Fleet, Manama, Bahrain.

Capt. Douglas J. Adams, selected for promotion to rear admiral (lower half), will be assigned as program executive officer for Undersea Warfare Systems, Washington, D.C.  Adams is currently serving as deputy, program executive officer, Undersea Warfare Systems, Washington, D.C.      Capt. Timothy A. Brown, selected for promotion to rear admiral (lower half), will be assigned as director, Supply, Ordnance and Logistics Operations Division, N4L, Office of the Chief of Naval Operations, Washington, D.C.  Brown is currently serving as assistant chief of staff for Force Logistics, Naval Air Forces/Naval Air Force, U.S. Pacific Fleet, San Diego, California. 

Capt. Todd M. Evans, selected for promotion to rear admiral (lower half), will be assigned as commander, Naval Surface Warfare Center; and commander, Naval Undersea Warfare Center, Washington, D.C.  Evans is currently serving as vice commander, Naval Air Systems Command, Patuxent River, Maryland.

Capt. Todd A. Figanbaum, selected for promotion to rear admiral (lower half), will be assigned as deputy director, Strategic Targeting and Nuclear Mission Planning, J-5N, U.S. Strategic Command, Offutt Air Force Base, Nebraska.  Figanbaum is currently serving as director, Submarine Officer Career Management and Distribution Division (PERS-42), Navy Personnel Command, Millington, Tennessee.

Capt. Bret M. Grabbe, selected for promotion to rear admiral (lower half), will be assigned as deputy chief of staff, Submarines, Maritime Command Headquarters (MARCOM); and commander, Submarines, NATO, Northwood, United Kingdom.  Grabbe is currently serving as chief of staff, Submarine Force, U.S. Pacific Fleet, Pearl Harbor, Hawai.

Capt. Liam M. Hulin, selected for promotion to rear admiral (lower half), will be assigned as deputy director, Operations - Fire and Effects, U.S. Central Command, MacDill Air Force Base, Florida.  Hulin is currently serving as executive officer to the commanding general, U.S. Special Operations Command, MacDill Air Force Base, Florida.

Capt. Brian T. Mutty, selected for promotion to rear admiral (lower half), is assigned as assistant chief of staff, J-3, Joint Forces Command, Naples, Naples, Italy.  Mutty recently served as commanding officer, Surface Warfare Schools Command, Newport, Rhode Island. 

Capt. Craig C. Sicola, selected for promotion to rear admiral (lower half), will be assigned as deputy director, Strategy, Plans and Policy (DJ5), U.S. Central Command, MacDill Air Force Base, Florida.  Sicola is currently serving as assistant chief of staff for Education, Training, and Planning, Naval Air Forces/Naval Air Force, U.S. Pacific Fleet, San Diego, California.

Capt. Peter D. Small, selected for promotion to rear admiral (lower half), will be assigned as deputy commander for Ship Design, Integration and Engineering, SEA-05, Naval Sea Systems Command, Washington, D.C.  Small is currently serving as project manager, Program Executive Office, Attack Submarines, Washington, D.C.

Subscribe to Defense.gov Products

Choose which Defense.gov products you want delivered to your inbox.

Defense.gov

Helpful links.

  • Live Events
  • Today in DOD
  • For the Media
  • DOD Resources
  • DOD Social Media Policy
  • Help Center
  • DOD / Military Websites
  • Agency Financial Report
  • Value of Service
  • Taking Care of Our People
  • FY 2025 Defense Budget
  • National Defense Strategy

U.S. Department of Defense logo

The Department of Defense provides the military forces needed to deter war and ensure our nation's security.

IMAGES

  1. More IPv6 Windows netsh Commands

    ipv6 assignment command

  2. How to Ping IPv6 Address from Windows and Linux CLI

    ipv6 assignment command

  3. IPv6

    ipv6 assignment command

  4. Troubleshoot IPv6 Dynamic Address Assignment with Cisco Router and

    ipv6 assignment command

  5. Troubleshoot IPv6 Dynamic Address Assignment with Cisco Router and

    ipv6 assignment command

  6. IPv6 Windows Command Line Examples

    ipv6 assignment command

VIDEO

  1. Design patterns assignment : command and mediator

  2. Quickly assignment of IP address in Redhat Linux

  3. MondayMoodSwing Assignment: Command your day.YOU are worthy to receive.YOU are qualified to step!

  4. 07-MCSA 70-740 (Command Line IPv6) By Eng-Mohamed Elshair

  5. INE Foundation Lab 2

  6. IPv6 Address Assignment in OpenStack IPv6 Address Mode DHCPv6

COMMENTS

  1. IPv6 Commands: ipv6 a to ipv6 g

    To acquire an IPv6 address on an interface from the Dynamic Host Configuration Protocol for IPv6 (DHCPv6) server, use the ipv6 address dhcp command in the interface configuration mode. To remove the address from the interface, use the no form of this command. ipv6 address dhcp [ rapid-commit] no ipv6 address dhcp.

  2. IPv6 Address Assignment Example

    IPv6 Global Unicast Prefix Assignments. IANA "owns" the entire IPv6 address space and they assign certain prefixes to the RIRs (Regional Internet Registry). There are 5 RIRs at the moment: AFRINIC: Africa. APNIC: Asia/Pacific. ARIN: North America. LACNIC: Latin America and some Caribbean Islands.

  3. How to Configure IPv6 Address on Cisco Routers with Example

    Extended Unique Identifier or EUI-64 format allows a host to automatically assign itself a unique 64-bit IPv6 interface identifier without manual configuration. ... Cisco IOS supports IPv6 many years ago, but it is not enabled by default and needs to be explicitly enabled with the command "ipv6 unicast routing".

  4. 8.8: IPv6 Host Address Assignment

    8.7.1 Duplicate Address Detection. Whenever an IPv6 host obtains a unicast address - a link-local address, an address created via SLAAC, an address received via DHCPv6 or a manually configured address - it goes through a duplicate-address detection (DAD) process. The host sends one or more Neighbor Solicitation messages (that is, like an ARP query), as in 8.6 Neighbor Discovery, asking if ...

  5. CCNA Portable Command Guide: IPv6

    From the Book. CCNA Portable Command Guide, 2nd Edition. $34.99. This chapter provides information and commands concerning the following topics: Assigning IPv6 addresses to interfaces. IPv6 and RIPng. Configuration example: IPv6 RIP. IPv6 tunnels: manual overlay tunnel.

  6. IPv6 Dynamic Address Allocation Mechanism Illustrated

    IPv6 supports multiple addresses, making address assignments more flexible and convenient. Unlike IPv4, which relied solely on the DHCP protocol for address assignment, IPv6 incorporates a native Stateless Address AutoConfiguration SLAAC) protocol. SLAAC can either work alone to provide IPv6 addresses to hosts, or it can work with DHCPv6 to generate new assignment schemes.

  7. How do I assign IPv6 addresses manually?

    If you wish, you would in Windows set a computer's static IPv6 inside Start > Network > Network and Sharing Center > Change Adapter Setting , right-click on the Ethernet connection IPv6 and choose Properties, right-click "Internet Protocol Version 6 (TCP/IPv6)" and click on Properties, the set "Use the following IPv6 address".

  8. 2. Add an IPv6 address

    Adding an IPv6 address is similar to the mechanism of "IP ALIAS" addresses in Linux IPv4 addressed interfaces.

  9. IPv6: How to configure static and DHCP IP addressing and deal with DNS

    Key IPv6 addressing concepts. IPv6 addressing within a network has a few major differences from IPv4. With IPv4 certain address ranges are reserved for private networks (such as 10.0.0.0/8 or 192 ...

  10. How to configure IPv6 Static Route

    R2#show ipv6 interface Serial 0/0/0 | include link-local IPv6 is enabled, link-local address is FE80::21C:F6FF:FE11:41F0 Let's use this as the next-hop address. When you use a global unicast address as the next hop, your router can look at the routing table and figure out what outgoing interface to use to reach this global unicast address.

  11. 9 Steps

    Enable IPv6 Globally. After going to the configuration mode with "configure terminal" command, to enable IPv6 on a Cisco router, "ipv6 unicast-routing" command is used.With this Cisco command, IPv6 is enabled globally on the router. This can be used before both interface configurations and IPv6 Routing Protocol configurations.

  12. 12.6.6 Packet Tracer

    Step 1: Enable the router to forward IPv6 packets. a. Click R1 and then the CLI tab. Press Enter. b. Enter privileged EXEC mode. c. Enter the ipv6 unicast-routing global configuration command. This command must be entered to enable the router to forward IPv6 packets. R1(config)# ipv6 unicast-routing.

  13. How to configure ipv6 address in Linux (RHEL / CentOS 7/8)

    Select Edit a Connection and click on Ok. Next look out for your Ethernet card on which you wish to configure IPv6 address. If your NIC card does not appear on the list then you can add a new device. Since for me my device ( eno50) exists, so I will select the device and select Edit.

  14. Configuring IPv6 address assignment

    About IPv6 address assignment. Use one of the following methods to configure IPv6 address assignment: Configure a static IPv6 address binding in an address pool. If you bind a DUID and an IAID to an IPv6 address, the DUID and IAID in a request must match those in the binding before the DHCPv6 server can assign the IPv6 address to the requesting ...

  15. PDF IPv6 Addressing Guide

    The IPv6 Addressing Guide is a supplemental document to the SBA for Large Agencies Design Guide series. The Cisco SBA for Large Agencies is a system created using a structured process to help ensure the stability of valuable operational processes and assets. The Cisco SBA is based on feedback from many customers and partners.

  16. IPv6 Global Unicast Address Assignments

    Description. The allocation of Internet Protocol version 6 (IPv6) unicast address space is listed. here. References to the various other registries detailing the use of the IPv6 address. space can be found in the [ IPv6 Address Space registry ].

  17. Cyber Assignment Incentive Pay > . > U.S. Army Cyber Command

    Cyber Assignment Incentive Pay (CAIP) is the Army's commitment to ensuring mission readiness by incentivizingSoldiers serving in critical cyberspace roles. , Page for U.S. Army Cyber Command Army, Cybersecurity, Security, and Department of Defense related information.

  18. Understand the IPv6 Link-Local Address

    This is shown with the ping and debug ipv6 icmp commands in router R1 and R3. Ping Link-Local Address From Remote Network. When the router R1 tries to communicate with router R3 with the link local address, the router R1 returns with an ICMP time-out message that indicates the link-local address is locally specific and cannot communicate to ...

  19. Flag Officer Assignments > U.S. Department of Defense > Release

    The secretary of the Navy and chief of naval operations announced multiple flag officer assignments. ... J2, U.S. Strategic Command, Offutt Air Force Base, Nebraska. Smith is currently serving as ...