In the 1980s, the IETF (Internet Engineering Task Force) released RFC791, i.e., IPv4 protocol, marking the formal standardization of IPv4. In the decades that followed, the IPv4 protocol became one of the most dominant protocols. Countless people have developed applications based on IPv4 and made various additions and enhancements to this protocol, assisting the IPv4 in supporting the thriving Internet of today.

However, as the Internet grows larger and larger, and technologies such as 5G and the Internet of Things develop merge, IPv4 is facing daunting challenges. Therefore, it is imperative to replace IPv4 with IPv6.

IPv6 is a set of specifications designed by the IETF and is an upgraded version of IPv4. It is the second generation of standard network layer protocols, also known as IPng (IP next generation). The most significant difference between IPv6 and IPv4 is that the length of IP address is upgraded from 32 bits to 128 bits.

13.1 Overview of IPv6

13.1.1 The Dilemma Faced by IPv4

On February 3, 2011, IANA (Internet Assigned Numbers Authority) announced that its last 4.68 million IPv4 addresses would be distributed equally among the five RIRs (Regional Internet Registry) worldwide. After that, IANA had no more IPv4 addresses to assign. As shown in Fig. 13.1, the IPv4 addresses of these five organizations have now been assigned as well.

Fig. 13.1
figure 1

Assignment of the final IPv4 addresses

IANA is the organization responsible for the assignment of Internet IP address numbers around the world. IANA assigns some IPv4 addresses to RIRs at the continental level, and each RIR then allocates addresses within its jurisdiction. The five major RIRs include:

  • RIPE (Reseaux IP Europeans), which serves Europe, the Middle East, and Central Asia;

  • LACNIC (Latin American and Caribbean Internet Address Registry), which serves Central and South America and the Caribbean.

  • ARIN (American Registry for Internet Numbers), which serves North America and parts of the Caribbean.

  • AFRINIC (African Network Information Centre), which serves the African region.

  • APNIC (Asia Pacific Network Information Centre), which serves the Asia and Pacific region.

IPv4 has proven to be a very successful protocol, and it has withstood the test of the Internet’s development from a network formed by a small number of computers to the current interconnection of hundreds of millions of computers. Nevertheless, the protocol was designed decades ago based on the size of the network at that time. Now it seems that the designers of IPv4 have underestimated and under-anticipated the Internet. With the continuous expansion of the Internet and the introduction of new applications, the limitations of IPv4 have become increasingly prominent.

The rapid expansion of the Internet was not anticipated by the designers of IPv4. Especially in the last decade, the Internet has exploded in size, reaching millions of households and making it indispensable to people’s daily lives. Since the assignment of IPv4 addresses is based on the principle of “first-come, first-served and need-oriented assignment”, the development of the Internet is extremely uneven in countries around the world or regions in each country. This will inevitably result in a large number of IP address resources being concentrated in certain developed countries or certain developed regions in a certain country. Because of the rapid development and uneven distribution, the IP address spaces are depleted as a result.

In the 1990s, the IETF introduced technologies such as NAT (Network Address Translation) and ClDR (Classless Inter Domain Routing) to delay the point at which IPv4 addresses will be exhausted. However, these transition solutions can only slow down the rate of IPv4 address depletion, but not solve the problem from its root. In addition, the requirements for security, quality of service (QoS), and easy configuration also suggest that at this time a new protocol is in need to fundamentally solve the problems currently faced by IPv4.

13.1.2 Advantages of IPv6

Compared with IPv4, IPv6 has the following advantages.

  • Virtually unlimited address space: this is the most obvious advantage compared to IPv4. IPv6 addresses consist of 128 bits, which is about 2 × 1096 times the address capacity of IPv4. This makes it possible for a vast ocean of terminals to be online at the same time as well as for unified addressing management. It also provides strong support for interconnection of everything.

  • Hierarchical address structure: because of the virtually unlimited address space, IPv6 is divided into various address segments according to the application scenarios during address planning. It also strictly requires the continuity of unicast IPv6 address segments to facilitate IPv6 route aggregation and reduce the size of IPv6 address tables.

  • Plug-and-play: any computer or terminal must have a clear IP address to access network resources and transmit data. The traditional way to assign IP addresses is manual obtaining IP addresses or automatically obtaining IP addresses by DHCP. In addition to the above two ways, IPv6 also supports SLAAC (StateLess Address AutoConfiguration).

  • End-to-end network integrity: IPv4 networks that use NAT technology on a large scale fundamentally undermine the integrity of end-to-end connection. With IPv6, NAT network devices will no longer be needed, and Internet behavior management and network supervision will become simple.

  • Enhanced security: IPSec (Internet Protocol security) was originally designed for IPv6, so protocol messages based on IPv6 (routing protocols, neighbor discovery, etc.) can be encrypted end-to-end, but currently this feature is not widely used. IPv6 data message security is basically the same as IPv4 + IPSec.

  • Strong scalability: the IPv6 extension headers are not part of the network layer headers, but they are inserted between the IPv6 base headers and the payload when it is necessary to assist IPv6 in encryption, mobility, optimal path selection, QoS, etc., and to improve the efficiency of forwarding messages.

  • Improved mobility: when a user moves from one network segment to another, a traditional network generates “triangular routing”, but in a IPv6 network, the communication of such mobile devices will no longer go through the original “triangular routing”, but be directly routed and forwarded, which reduces the cost of traffic forwarding and improves network performance and reliability.

  • QoS is further enhanced: IPv6 retains all the QoS attributes of IPv4, and additionally defines a 20 Byte flow label field that can be used by applications or terminals, and allocates specific resources for particular services and data flows. Currently, this mechanism is not fully developed and applied.

Figure 13.2 shows a comparison of the TCP/IPv4 protocol stack and the TCP/IPv6 protocol stack.

Fig. 13.2
figure 2

IPv4 protocol stack and IPv6 protocol stack

As can be seen from the figure, the TCP/IPv4 protocol stack implements the same functions as the TCP/IPv6 protocol stack, except that the network layer has changed. The network layer of the TCP/IPv6 protocol stack does not have the ARP protocol and IGMP protocol, and the functions of the ICMP protocol have been greatly extended. The functions of the ARP protocol in the IPv4 stack and the multicast group membership management functions of the IGMP protocol are also embedded in the ICMPv6, that is, the Neighbor Discovery Protocol (NDP) and Multicast Listener Discovery (MLD) protocols, respectively.

The functions of the core protocols of IPv6 network layer are as follows.

  • Internet Control Message Protocol version IPv6 (ICMPv6): ICMPv6 replaces ICMP and is used to test whether the network is running smoothly and to report errors and other information to help users determine network failures.

  • Neighbor Discovery Protocol (NDP): NDP replaces ARP and is used to manage interactions between neighboring IPv6 nodes, including automatic address configuration and the resolution of the next IPv6 address to a MAC address.

  • Multicast Listener Discovery (MLD) protocol: MLD replaces IGMP and is used to manage the identity of IPv6 multicast group members.

13.1.3 IPv6 Base Headers

IPv6 packets are allowed to have zero or more extension headers after the base header, followed by data, as shown in Fig. 13.3. Note, however, that none of the extension headers are part of the IPv6 packet header. The combination of all the extension headers and data is called the payload or net load of the packet.

Fig. 13.3
figure 3

Base and extension headers

Figure 13.4 shows the base header of IPv6. Following the base header is the payload, which includes the transport layer data and possible optional extensions.

Fig. 13.4
figure 4

IPv6 base header

Compared to IPv4, IPv6 has made the following alterations to some of the fields in headers.

  • The “header length” field has been removed because the header length is fixed (40 bytes).

  • The “service type” field has been removed because the priority and flow label fields are used in combination to implement the function of the “service type” field.

  • The “total length” field has been replaced by the “payload length” field.

  • The “identification”, “flag”, and “fragment offset” fields are removed as these functions are already included in the fragmentation extension header.

  • The TTL field is renamed to “Hop Limit” field, but their functions are the same (the name is now more consistent with the function).

  • The “protocol” field is replaced by the “next header” field.

  • The “checksum” field has been removed, which speeds up the processing of packets by the router. Error checking is implemented by the data link layer and the transport layer. At the data link layer, erroneous frames are discarded if they are detected. At the transport layer, when using UDP, user packets are discarded if errors are detected; when using TCP, message segments are retransmitted if errors are detected until they are correctly delivered to the destination process.

  • The “option” field is eliminated and the “option” function is implemented by an extension header.

By eliminating unnecessary functions from the header, the number of fields in the IPv6 base header is reduced to eight (although the length of the base header is doubled).

The following explains the role of each field in the IPv6 basic prefix.

  • Version number: four bits long; the value is 6 for IPv6.

  • Traffic class: eight bits long, equivalent to the QoS field in IPv4, which indicates the class or priority of IPv6 packets and is mainly used for QoS.

  • Flow label: 20 bits long. It is a new field in IPv6 that is used to distinguish real-time traffic. Different flow labels + source address can uniquely identify a data flow, and intermediate network devices can distinguish data flows more efficiently based on this information.

  • Payload length: 16 bits long. Payload is the rest of the packet (i.e., extension headers and upper layer protocol data unit) that immediately follows the IPv6 base header.

  • Next header: eight bits long. This field defines the type of the first extension header (if present) immediately following the IPv6 base header, or the protocol type in the upper-layer protocol data unit (similar to the Protocol field in IPv4).

  • Hop limit: eight bits long, similar to the Time to Live field in IPv4. This field defines the maximum number of hops that an IP packet can take. Every time a router forwards a packet, it decrements the value of this field by 1, and if the value reaches zero, the packet is discarded.

  • Source address: 128 bits long, indicating the address of the sender.

  • Destination address: 128 bits long, indicating the address of the receiver.

13.1.4 IPv6 Extension Headers

If IPv4 packets use options in their header, these options must be checked by every router along the packet’s path, which slows down the router’s packet processing speed. However, in practice, many of these options do not need to be checked by the routers along the path (because there is no need to use the information of these options).

IPv6 puts the function of “options” of the original IPv4 header in the extension headers, and leaves the extension headers to be processed by the computers at the source and destination of the path, while the routers along the packets’ path do not process these extension headers (with the exception of one header, that is the hop-by-hop options header). In this way, the processing efficiency of the routers is significantly improved. The following six extension headers are defined in RFC 2460, and when more than one extension header is used in the same IPv6 message, the extension headers must appear in the following order.

Hop-by-hop options header: it is mainly used to specify sending parameters for each hop on the transmission path, and each intermediate node on the transmission path has to read and process this field.

Destination options header: it carries some information that only the destination node will process.

Routing header: it is used by the IPv6 source nodes to force packets to go through specific devices.

Fragment header: the message needs to be sent in fragments when its length exceeds the Maximum Transmission Unit (MTU), and in IPv6, the fragment header is used for fragmentation sending.

Authentication header: this header is used by IPsec to provide authentication, data integrity, and replay protection.

Encapsulating Security Payload header: this header is used by IPsec mainly to provide authentication, data integrity and replay protection and confidentiality of IPv6 packets.

The “next header” field of the IPv6 base header can be used to indicate which protocol at which layer the data following the base header should be delivered to. For example, 6 indicates that it should be delivered to TCP at the transport layer, 17 means that it should be delivered to UDP at the transport layer, and 58 indicates that it should be delivered to ICMPv6 at the network layer.

Table 13.1 shows the values of the “next header” for all extension headers defined in the specification.

Table 13.1 Header values corresponding to extension headers

Each extension header consists of several fields that vary in length. However, the first field of all extension headers is an 8-bit “next header” field. The value of this field indicates the field following the extension header. As shown in Fig. 13.5, IPv6 extension headers include routing headers, fragment headers, and TCP headers.

Fig. 13.5
figure 5

IPv6 extension header

13.2 IPv6 Addressing

13.2.1 Overview of IPv6 Address

A 128-bit IPv6 address allows for more address hierarchies, a wider address assignment space, and automatic address configuration. The virtually unlimited address space is the biggest advantage of IPv6, as shown in Table 13.2.

Table 13.2 Comparison of the numbers of IPv4 and IPv6 addresses

As shown in Fig. 13.6, an IPv6 address consists of a 128-bit binary number that identifies an interface or a group of interfaces. An IPv6 address is typically written as xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx, where xxxx is four hexadecimal digits, equivalent to a 16-bit binary number; the eight groups of xxxx together make up a 128-bit IPv6 address. An IPv6 address is composed of an IPv6 network prefix and an interface identify. The former is used to identify the IPv6 network and the latter the interface.

Fig. 13.6
figure 6

IPv6 address composition

An IPv6 address is 128 bits long, so it can be inconvenient to write. In addition, due to the huge address space of IPv6 addresses, the address will often contain multiple zeros. To this end, IPv6 provides compression methods to simplify the address writing, as shown in the following compression rules.

  • The starting zeros in every 16 bits can be omitted.

  • Two or more consecutive groups of zeros contained in an address can be replaced with a double colon “::”. Note that the double colon can only be used once in an IPv6 address; otherwise, the device cannot determine the number of zeros in each segment when it restores the compressed address to 128 bits, as shown in Fig. 13.7.

This example shows how to use compression rules for a simplified representation of IPv6 addresses.

Fig. 13.7
figure 7

Simplified IPv6 address representation

IPv6 addresses are divided into IPv6 network prefixes and interface identifiers, and subnet masks are identified using the prefix length. The representation is like this: IPv6 address/prefix length, where “prefix length” is a decimal number indicating how many starting bits of the address are the address prefix. For example, F00D:4598:7304:6540:FEDC:BA98:7654:3210 has a 64-bit address prefix, which can be expressed as F00D:4598:7304: 6540:FEDC:BA98:7654:3210/64, and its network segment is F00D:4598:7304:6540::/ 64.

13.2.2 Classification of IPv6 Addresses

According to the network prefix of IPv6 addresses, IPv6 addresses can be classified into unicast addresses, multicast addresses and anycast addresses, as shown in Fig. 13.8. Unicast addresses are further divided into global unicast addresses, unique local addresses, link-local addresses, unique addresses, and other unicast addresses. IPv6 does not define a broadcast address. In IPv6 networks, all broadcast scenarios will be replaced by IPv6 multicast.

Fig. 13.8
figure 8

IPv6 address classification

13.2.3 Unicast Addresses

  1. 1.

    Composition of unicast address

    A unicast address is an address used for point-to-point communication that identifies only one interface, and the network is responsible for transmitting packets sent to the unicast address to this interface.

    An IPv6 unicast address can be divided into the following two parts, as shown in Fig. 13.9.

    Network prefix: n bits, equivalent to the network ID in an IPv4 address.

    Interface identifier: (128-n) bits, equivalent to the computer ID in an IPv4 address.

    Common IPv6 unicast addresses include global unicast address (GUA), unique local address (ULA), link-local address (LLA), etc. The network prefix and interface identifier must be 64 bits.

  2. 2.

    Global unicast address

    Global unicast address is also known as aggregatable global unicast address. This type of address is globally unique and is used for computers that need to access Internet, which is tantamount to the public address of IPv4.

    Usually, both the network address and the interface identifier of GUA are 64 bits long, as shown in Fig. 13.10.

    IPv6 global unicast addresses are assigned as follows: top-level aggregators (TLAs) (large ISP or address management institutions) get the bulk address. TLAs are responsible for assigning addresses to the next-level aggregators (NLAs) (small and medium-sized ISPs), and NLAs then assign addresses to site-level address aggregators (SLAs) (subnets) and network users.

    If needed, a global unicast address can be requested from the carrier or directly from the IPv6 address authority in your region.

    • Global routing prefix: it is assigned by the provider to an organization, and is usually at least 45 bits long.

    • Subnet ID: an organization subdivides the network according to its network requirements.

    • Interface ID: it is used to identify (the interface of) a device.

  3. 3.

    Unique local address

    A unique local address is an IPv6 private address that can only be used on the intranet. This address space is not routable in the IPv6 public network so the public network cannot be directly accessed. As shown in Fig. 13.11, the unique local address uses the FC00::/7 address block, and only the FD00::/8 address segment is currently in use, with FC00::/8 reserved for future expansion. The unique local address is only valid in a limited range, but it also has a globally unique prefix (although it is randomly generated, conflicts are unlikely to occur).

  4. 4.

    Link-local address

    There is a type of address in IPv6 called a link-local address, which is used for communications between IPv6 computers on the same subnet. This type of address can be used for auto-configuration, neighbor discovery, and nodes on links without routers. The valid range of a link-local address is the local link, as shown in Fig. 13.12, with a prefix of FE80::/10. If packets are supposed to be sent to devices on a single link, and for protocols that do not want packets to go outside the range of the link, a link-local address can be used. When a unicast IPv6 address is configured, a link-local address is automatically configured on the interface. A link-local address can coexist with a routable IPv6 address.

    The interface identifier of an IPv6 address is 64 bits long and is used to identify the interface on the link. Among the many usages of the interface identifier, the most common one is to append it to the prefix of the link-local address to form the link-local address of the interface or; in stateless autoconfiguration, to append it to the prefix of the acquired IPv6 global unicast address to form the global unicast address of the interface.

  5. 5.

    Interface identifier generation method for unicast address

    The IPv6 unicast address interface identifier can be generated in three ways.

    • Manual configuration.

    • Automatic generation by the system.

    • Generated through the IEEEE EUI-64 (64-bit Extended Unique Identifier) specification.

The generation through EUI-64 specification is most commonly used. The specification converts the MAC address of an interface into an IPv6 interface identifier. The IEEEE EUI-64 specification inserts FF-FE into the MAC address and flips the seventh bit of the MAC address to form a 64-bit network interface identifier for IPv64 addresses, as shown in Fig. 13.13.

Fig. 13.9
figure 9

IPv6 address composition

Fig. 13.10
figure 10

Global unicast address structure

Fig. 13.11
figure 11

Unique local address

Fig. 13.12
figure 12

Valid range of link-local addresses

Fig. 13.13
figure 13

EUI-64 specification

This method of generating IPv6 address interface identifier from MAC address reduces the configuration workload. Especially when stateless address autoconfiguration is used, only an IPv6 prefix needs to be obtained to form an IPv6 address with the interface identifier.

The biggest disadvantage of using this approach is that those with malicious intention can deduce the Layer 2 MAC address from the Layer 3 IPv6 address.

13.2.4 Multicast Addresses

  1. 1.

    Composition of multicast addresses

    Similar as IPv4 multicast, an IPv6 multicast address can identify multiple interfaces and is generally used in a “one-to-many” communication scenario.

    A multicast address is equivalent to the channel of a radio station. A radio station sends a signal on a specific channel, and radios that are tuned to that channel will receive the program of that radio station, while radios that are not tuned to that channel will ignore the signal.

    As shown in Fig. 13.14, a multicast source sends a multicast stream using a multicast address, and computers that intend to receive the multicast information need to join the multicast group, that is, bind their network interface cards to the multicast IP address and generate corresponding multicast MAC addresses. All interfaces that join the multicast can receive and process multicast packets, while computers that are not bound to the multicast address ignore the multicast information.

    The multicast address starts with 11111111 (i.e., ff), as shown in Fig. 13.15.

    Flags: it indicates permanent or temporary multicast group. 0000 indicates permanently assigned or well known; and 0001 indicates temporary.

    Scope: it indicates the scope of multicast, as shown in Table 13.3.

    Group ID: the multicast group ID.

    Reserved: 80 bits long, and it must be 0.

  2. 2.

    Solicited-node multicast address

    When a node has a unicast or anycast address, it will generate a solicited-node multicast address and join the multicast group. This address is mainly used for neighbor discovery mechanism and duplicate address detection. The valid range of the solicited-node multicast address is the local link range.

    As shown in Fig. 13.16, the first 104 bits of the solicited-node multicast address are fixed with the prefix FF02:0000:0000: 0000:0000:0001:FFxx:xxxx/104, or abbreviated to FF02::1:FFxx:xxxx/104. A solicited-node multicast address is formed by taking the low-order 24 bits of an IPv6 address and appending those bits to the back.

    For example, the solicited-node multicast address for IPv6 address 2001::1234:5678/64 is FF02::1:FF34:5678/104, where FF02::1:FF is a 104-bit fixed part.

    On the local link, the solicited-node multicast address contains only one interface. Once the IPv6 address of an access point is known, the solicited-node multicast address can be calculated.

    The role of the solicited-node multicast address is as follows.

    • There is no ARP in IPv6. ICMP replaces the function of ARP and the solicited-node multicast address is used by the node to obtain the link layer addresses of neighboring nodes on the same local link.

    • For Duplicate Address Detection (DAD). Before a node configure an address as its own IPv6 address using stateless autoconfiguration, it uses DAD to verify whether the address has been in use on other local links.

Since only the destination node listens to this solicited-node multicast address, the multicast message can be received by the destination node without influencing the network performance of other non-destination nodes.

Fig. 13.14
figure 14

Multicast illustration

Fig. 13.15
figure 15

Composition of Multicast Addresses

Table 13.3 Multicast scope
Fig. 13.16
figure 16

Composition of solicited-node multicast address

13.2.5 Anycast Addresses

An anycast address identifies a set of interfaces and differs from a multicast address in the method of sending packets. Packets sent to an anycast address are not distributed to all members of the group, but are sent to the “nearest” interface identified by the address.

As shown in Fig. 13.17, Web Server 1 and Web Server 2 are assigned the same IPv6 address, 2001:0DB8::84C2. Then this unicast address becomes an anycast address. PC1 and PC2 need to access the Web service by sending a request to address 2001:0DB8::84C2. PC1 and PC2 will then access the Web server closest to them (with the lowest routing cost, i.e., the shortest path).

Fig. 13.17
figure 17

Role of anycast addresses

The anycast process involves an initiator of an anycast message and one or more responders.

  • The initiator of an anycast message is usually the host requesting a service (e.g., a Web service).

  • An anycast address is the same as a unicast address in terms of format. The only difference is that a single device can send messages to multiple devices with the same address.

The application of anycast addresses in a network has the following advantages.

  • Service redundancy. For example, users can access the same service (e.g., Web services) through multiple servers that use the same address. These servers are all responders to the anycast messages. If the anycast addresses is not used for communication, then when one of the servers fails, the user needs to obtain the address of another server to re-establish the communication. If an anycast address is used, then when one server fails, the initiator of the anycast message can automatically communicate with another server using the same address, thus achieving service redundancy.

  • Provision of better-quality services. For example, a company deploys one server providing the same Web service in Province A and in Province B. Based on routing optimization rules, when accessing the Web services provided by the company, users in Province A will give priority to the server deployed in Province A, thus increasing the access speed and reducing access latency so as to tremendously improve the user experience.

Anycast addresses are assigned from the unicast address space, using any format of unicast addresses. Thus, syntactically, there is no difference between an anycast address and a unicast address. When a unicast address is assigned to more than one interface, it is converted to an anycast address. The node assigned with an anycast address must be explicitly configured to know it is an anycast address.

13.2.6 Common IPv6 Address Types and Ranges

The common IPv6 address types and ranges are listed in Table 13.4.

Table 13.4 Common IPv6 address types and ranges

Now a small number of global unicast addresses have been assigned by IANA (a division of ICANN, the Internet Corporation for Assigned Names and Numbers). Unicast addresses are in the format 2000::/3 and represent any reachable address on the public IP network. IANA is responsible for assigning addresses in this address range to multiple Regional Internet Registries (RIRs), who are responsible for assigning addresses in five regions worldwide. The following address scopes have been assigned: 2400::/12 (APNIC), 2600::/12 (ARIN), 2800::/12 (LACNIC), 2A00::/12 (RIPE), and 2C00::/12 (AFRINIC). They will use a single address prefix to identify all addresses in a given region.

Address space is also reserved in the 2000::/3 address range for document examples, such as 2001:0DB8::/32.

Link-local addresses can only be used for communication between nodes in the same network segment. IPv6 messages with a link-local address as the source or destination address are not forwarded by the router to other links. The prefix of link-local addresses is FE80::/10. Computers that use IPv6 for communication will have both a link-local address and a global unicast address.

The prefix of multicast addresses is FF00::/8. Most of the addresses in the multicast address range are reserved for specific multicast groups. Like IPv4, IPv6 multicast addresses also support routing protocols. There are no broadcast addresses in IPv6, and replacing broadcast addresses with multicast addresses ensures that messages are sent only to specific multicast groups and not to arbitrary terminals in the IPv6 network.

0:0:0:0:0:0:0:0:0/128 is equal to ::/128, which is the equivalent address of 0.0.0.0 in IPv4 and represents an unspecified address in IPv6.

0:0:0:0:0:0:0:1 is equal to ::1, which is the equivalent address of 127.0.0.1 in IPv4 and represents the local loopback address.

13.3 IPv6 Address Configuration

13.3.1 IPv6 Addresses for Computers and Routers

Computers and router interfaces that are configured or enabled with IPv6 addresses will automatically join multicast-specific multicast addresses, as shown in Fig. 13.18.

Fig. 13.18
figure 18

IPv6 interface addresses and the specific multicast groups joined

Multicast address of all nodes: FF02:0:0:0:0:0:0:1.

Multicast address of all routers: FF02:0:0:0:0:0:0:0:2.

Multicast address of solicited nodes: FF02:0:0:0:0:0:1:FFXX:XXXX.

Multicast address of all OSPF routers: FF02:0:0:0:0:0:0:5.

Multicast address of all OSPF DR routers: FF02:0:0:0:0:0:0:6.

Multicast address of all RIP routers: FF02:0:0:0:0:0:0:0:9.

As you can see in Fig. 13.18, both the computer and the router interface generate two “solicited-node multicast addresses”, which are generated by the link-local address of the interface and the global unicast address assigned by the administrator, respectively.

13.3.2 Service Process of IPv6 Unicast Address

A computer or router has to go through three stages: address configuration, duplicate address detection and address resolution before sending IPv6 messages. As shown in Fig. 13.19, Neighbor Discovery Protocol (NDP) plays an important role in this. You can see from the figure that NDP is used in stateless autoconfiguration, stateful address configuration, duplicate address detection and address resolution.

Fig. 13.19
figure 19

The process of configuring IPv6 addresses on an interface

The following process is needed from the IP address configuration to forwarding.

  1. 1.

    Global unicast address and link-local address are the most common IPv6 unicast addresses on an interface, and multiple IPv6 addresses can be configured for an interface. The global unicast address configuration can be either manually configured static IPv6 address, stateless autoconfiguration, or stateful autoconfiguration. Link-local addresses are usually generated dynamically by the system according to the EUI-64 specification and are rarely configured manually.

  2. 2.

    DAD is similar to the free ARP detection in IPv4, which is used to detect whether the current address conflicts with IPv6 addresses of other interfaces.

  3. 3.

    Address resolution is similar to ARP request in IPv4, which forms a map** relationship between IPv6 address and data link layer address (usually MAC address) through ICMPv6 messages.

  4. 4.

    After IPv6 is configured, IPv6 data can be forwarded using this address.

13.3.3 Neighbor Discovery Protocol

The Neighbor Discovery Protocol (NDP), as a fundamental protocol for IPv6, provides address autoconfiguration, duplicate address detection (DAD), address resolution and other functions, as shown in Fig. 13.20.

  1. 1.

    Stateless autoconfiguration is a highlight of IPv6, which enables IPv6 computers to access the IPv6 network conveniently. Plug-and-play is made possible without the need to manually configure redundant IPv6 addresses or deploy application servers (such as DHCP servers) to distribute addresses for computers. The stateless autoconfiguration mechanism uses the Router Solicitation (RS) and Router Advertisement (RA) messages of ICMPv6. Through the stateless autoconfiguration mechanism, the nodes on the link can automatically obtain IPv6 global unicast addresses.

  2. 2.

    Duplicate address detection uses ICMPv6 NS and ICMPv6 NA messages to ensure that there are no identical unicast addresses in the network. All interfaces are required to do DAD before using a unicast address.

  3. 3.

    Address resolution is a method to determine the link layer address of the destination node. The address resolution function in NDP not only replaces the original ARP in IPv4, but also uses neighbor unreachability detection to maintain reachability status information between neighbor nodes. The address resolution process uses two types of ICMPv6 messages: Neighbor Solicitation (NS) and Neighbor Advertisement (NA). Neighbors in this case refer to all nodes attached to the same link.

    NDP uses ICMPv6 messages, and the NDP protocol is encapsulated in ICMPv6 and uses type fields to identify the different messages of NDP. Table 13.5 lists the type fields used by various messages of NDP.

    Table 13.6 lists the message types used for address resolution, prefix advertisement, and DAD. Address resolution uses NS135 and NA136 packets, prefix advertisement uses RS133 and RA134 packets, and DAD uses NS135 and NA136 packets.

Fig. 13.20
figure 20

NDP functions

Table 13.5 ICMPv6 messages used by NDP
Table 13.6 Types of messages used for address resolution, prefix advertisement and DAD

13.3.4 Configuration Methods of IPv6 Address

Computers using IPv6 for communication can either manually specify a static address or be set to automatically obtain an IPv6 address, as shown in Fig. 13.21. There are two ways of autoconfiguration, namely stateless autoconfiguration and stateful autoconfiguration.

Fig. 13.21
figure 21

Static IPv6 address and obtain IPv6 address automatically

13.3.5 Two Autoconfiguration Methods of IPv6 Address

IPv6 supports two types of address autoconfiguration, that is stateful and stateless autoconfiguration, and the method of automatically obtaining addresses by the terminal is controlled by the M-flag (Managed Address Configuration Flag) and O-flag (Other Stateful Configuration Flag) in the RA message advertised by the router interface.

The M field is the Managed Address Configuration flag. When M = 0, it identifies stateless address assignment, and clients can obtain IPv6 addresses through stateless protocols (such as ND). When M = 1, it identifies a stateful address assignment and the client can obtain an IPv6 address through a stateful protocol (e.g., DHCPv6).

The O field is Other Configurations. When O = 0, it means that the client can obtain configuration information other than addresses through stateless protocols (such as ND). When O = 1, it means that the client can obtain configuration information other than addresses, such as DNS, SIP server and other information, through stateful protocols (e.g., DHCPv6).

The protocol specifies that it is only meaningful if M = 1 and O = 1; and if M = 0 and O = 1, it has no meaning.

The following describes the stateless address autoconfiguration process. In RA, M = 0 and O = 0.

Stateless autoconfiguration of NDP consists of two phases: the configuration of link-local addresses and configuration of global unicast addresses. When an interface is enabled, the computer first generates a link-local address for the interface based on the local prefix FE80::/64 and the EUI-64 interface identifier. If an address conflict occurs in the subsequent DAD, the local-link address must be manually configured for the interface, or the interface will be unavailable.

The following is an example of IPv6 stateless autoconfiguration for computer PC1 in Fig. 13.22 to explain the steps of IPv6 stateless autoconfiguration.

  1. 1.

    After configuring the link-local address, computer node PC1 sends an RS message to solicit routing prefix information.

  2. 2.

    After receiving the RS message, the router sends a unicast RA message carrying prefix information for stateless address autoconfiguration with an M flag of 0 and an O flag of 0. Meanwhile, the router also periodically sends a multicast RA message.

  3. 3.

    After receiving the RA message, PC1 generates a temporary global unicast address based on the routing prefix information and configuration information. At the same time, DAD is started and NS messages are sent to verify the uniqueness of the temporary address, which is in a temporary state at this time.

  4. 4.

    After other nodes on the link receive the NS message from DAD, if no node uses the address, the message will be discarded, otherwise an NA message will be generated to respond to NS.

  5. 5.

    If PC1 does not receive the NA message from DAD, it means that the address is globally unique, then the temporary address is used to initialize the interface, and the address enters the valid state.

The key to stateless address configuration is that the router does not care at all about the state of the computer, such as whether it is online, so it is called stateless configuration. Stateless address configuration is mostly used for scenarios where terminals such as the Internet of Things are used, and the terminal does not require parameters other than addresses.

Fig. 13.22
figure 22

IPv6 stateless autoconfiguration illustration

Figure 13.23 shows an example of f IPv6 stateful autoconfiguration (DHCPv6) for computer PC1 to explain the steps of IPv6 stateful autoconfiguration.

  1. 1.

    PC1 sends a router request (RS).

  2. 2.

    Router AR sends a router advertisement (RA). There are two flag bits in the RA message. The M flag bit is 1, which tells PC1 it can get the complete 128-bit IPv6 address from DHCPv6 server. The O flag bit is 1, which tells PC1 it can get other configurations such as DNS from DHCPv6 server. If both flag bits are 0, it is stateless autoconfiguration and no DHCPv6 server is needed.

  3. 3.

    PC1 sends a DHCPv6 solicitation message. The solicitation message is actually a multicast message, and the destination address is ff02::1:2, which is the multicast address of all DHCPv6 servers and relay agents.

  4. 4.

    DHCPv6 server provides IPv6 address and other configurations for PC1. In addition, the DHCPv6 server will record the assignment of this address (which is why it is called stateful autoconfiguration).

    Stateful address configuration requires a DHCPv6 server to be configured in the network, and is mostly used for address configuration of wired terminals within a company to facilitate address management.

Fig. 13.23
figure 23

Stateful autoconfiguration illustration

13.4 Implement IPv6 Address Autoconfiguration

13.4.1 Implement IPv6 Address Stateless Autoconfiguration

The experimental environment is shown in Fig. 13.24. There are three IPv6 networks, and you need to configure the IPv6 addresses of the interfaces of routers AR1 and AR2 with reference to the addresses marked in the topology. Set the IPv6 address of Windows 10 to automatically obtain the IPv6 address for stateless autoconfiguration.

Fig. 13.24
figure 24

Experimental topology diagram of stateless autoconfiguration of IPv6 addresses

The configuration of router AR1 is as follows.

[AR1]ipv6                                              --Globally enable the IPv6 support [AR1]interface GigabitEthernet 0/0/0 [AR1-GigabitEthernet0/0/0]ipv6 enable                  --Enable IPv6 support on the interface [AR1-GigabitEthernet0/0/0]ipv6 address 2018:6:6::1 64  --Add an IPv6 address [AR1-GigabitEthernet0/0/0]ipv6 address auto link-local –Configure auto generation of link-local address [AR1-GigabitEthernet0/0/0]undo ipv6 nd ra halt        --Allow the interface to send the RA message, and by default, the RA message is not sent [AR1-GigabitEthernet0/0/0]quit [AR1]display ipv6 interface GigabitEthernet 0/0/0      --View the IPv6 address of the interface GigabitEthernet0/0/0 current state : UP  IPv6 protocol current state : UP IPv6 is enabled, link-local address is FE80::2E0:FCFF:FE29:31F0  --Link-local address  Global unicast address(es): 2018:6:6::1, subnet is 2018:6:6::/64           --Global unicast address  Joined group address(es):                    --Multicast address bound FF02::1:FF00:1     FF02::2                                       --Multicast address bound to the router  FF02::1                                       --Multicast address bound to the router enabled with IPv6 FF02::1:FF29:31F0 --Solicitated-node multicast address  MTU is 1500 bytes  ND DAD is enabled, number of DAD attempts: 1  --ND network discovery, number of duplicate address detections  ……  ND router advertisement max interval 600 seconds, min interval 200 seconds  ND router advertisements live for 1800 seconds  ND router advertisements hop-limit 64  ND default router preference medium  Hosts use stateless autoconfig for addresses  --Hosts use stateless autoconfiguration

In Windows 10, you can set the mode to obtain IPv6 address automatically. By opening the command prompt and ty** in “ipconfig /all”, you can see the IPv6 address generated by stateless autoconfiguration, and also the link-local address (called local connection IPv6 address on Windows), and the IPv6 gateway is the link-local address of the router interface, as shown in Fig. 13.25 shows.

Fig. 13.25
figure 25

IPv6 address generated by stateless auto-configuration

13.4.2 Packet Capture Analysis of RA and RS Packets

IPv6 addresses support stateless address autoconfiguration, which allows computers to obtain IPv6 prefixes and automatically generate interface IDs without using auxiliary protocols such as DHCP. Route discovery is the basis of IPv6 address autoconfiguration, and is mainly implemented through RA and RS packets.

Each router periodically sends RA messages carrying network configuration parameters in multicast mode so that computers and other routers on the Layer 2 network can learn about its existence. The value of the Type field of RA messages is 134.

A computer can actively send RS messages after it is connected to the network. RA messages are sent periodically by the router, but if a computer wants to receive an RA message as soon as possible, it can actively send an RS message to the router. After the router on the network receives the RS message, it immediately responds a unicast RA message to the corresponding computer, informing the computer of the default router and related configuration parameters of the network segment. The value of the Type field of the RS message is 133.

In order for the packet capture tool to capture the RS messages sent by the IPv6 autoconfiguration and the RA messages responded by the router, first run the packet capture tool on Windows, then assign a static IPv6 address to IPv6 on Windows 10, and then select “Obtain IPv6 address automatically” so that the computer will send RS messages and the router will respond to RA messages.

As shown in Fig. 13.26, in the packets captured by the packet capture tool, enter “icmpv6.type == 133” in the “Display filters” box, and the 22nd packet shown is a router solicitation (RS) packet sent by Windows 10, using ICMPv6 protocol, and the type field is 133. You can see the destination address is multicast address ff02::2, representing all router interfaces enabled with IPv6 in the network, and the source address is the link-local address of Windows 10.

Fig. 13.26
figure 26

RS packet

Enter :icmpv6.type == 134″ in the “Display filters” box. The 60th packet displayed is a router advertisement (RA) packet sent by a router with the multicast address ff02::1 as its destination address (representing all IPv6-enabled interfaces in the network). It uses the ICMPv6 protocol, and the type field is 134. You can see that the M flag bit is 0 and the O flag bit is 0, telling Windows 10 to use stateless autoconfiguration with a network prefix of 2018:6:6::, as shown in Fig. 13.27.

Fig. 13.27
figure 27

Router advertisement (RA) packet

View the IPv6 configuration on Windows 10, as shown in Fig. 13.28. Open the command prompt, type in “netsh”, type in “interface ipv6”, and then type in “show interface” to view the index of “Ethernet0”, and you can see it is 4. Then enter show interface “4” and you can see the configuration parameters related to IPv6. The “Managed Address Configuration” is “disabled”, which means no IPv6 address is obtained from DHCPv6 server; and the “Other Stateful Configuration” is “disabled”, which means other parameters such as DNS are not obtained from the DHCPv6 server, i.e., stateless autoconfiguration.

Fig. 13.28
figure 28

View IPv6 configuration

13.4.3 Implement IPv6 Address Stateful Autoconfiguration

You can use DHCPv6 to assign IPv6 addresses and configure other settings such as DNS for computers.

The following describes the IPv6 stateful address autoconfiguration with the network environment shown in Fig. 13.29. Configure router AR1 as the DHCPv6 server, and configure interface GE 0/0/0. Both the M flag bit and the O flag bit in router advertisement message are 1. Windows 10 will obtain IPv6 addresses from DHCPv6.

[AR1]ipv6  --Enable IPv6 [AR1]dhcp enable                            --Enable DHCP [AR1]dhcpv6 duid ?                          --Method to generate the unique DHCP ID  ll   DUID-LL  llt  DUID-LLT [AR1]dhcpv6 duid llt                        --Use llt method to generate the unique DHCP ID [AR1]display dhcpv6 duid                    --Display the unique DHCP ID The device's DHCPv6 unique identifier: 0001000122AB384A00E0FC2931F0 [AR1]dhcpv6 pool localnet                   --Create an IPv6 address pool named localnet [AR1-dhcpv6-pool-localnet]address prefix 2018:6:6::/64     --Address prefix [AR1-dhcpv6-pool-localnet]excluded-address 2018:6:6::1     --Excluded address [AR1-dhcpv6-pool-localnet]dns-domain-name huawei.com       --Domain name suffix [AR1-dhcpv6-pool-localnet]dns-server 2018:6:6::2000        --DNS server [AR1-dhcpv6-pool-localnet]quit

Fig. 13.29
figure 29

Network topology with stateful autoconfiguration

View the configured DHCPv6 address pool .

<AR1>display dhcpv6 pool  DHCPv6 pool: localnet  Address prefix: 2018:6:6::/64   Lifetime valid 172800 seconds, preferred 86400 seconds   2 in use, 0 conflicts  Excluded-address 2018:6:6::1  1 excluded addresses  Information refresh time: 86400  DNS server address: 2018:6:6::2000  Domain name: 91xueit.com  Conflict-address expire-time: 172800  Active normal clients: 2

Configure interface GE 0/0/0 of router AR1.

[AR1]interface GigabitEthernet 0/0/0 [AR1-GigabitEthernet0/0/0]ipv6 enable [AR1-GigabitEthernet0/0/0]dhcpv6 server localnet    --Specify to choose addresses from the address pool localnet [AR1-GigabitEthernet0/0/0]undo ipv6 nd ra halt      --Allow to send RA messages [AR1-GigabitEthernet0/0/0]ipv6 nd autoconfig managed-address-flag   --M flag bit is 1 [AR1-GigabitEthernet0/0/0]ipv6 nd autoconfig other-flag             --O flag bit is 1 [AR1-GigabitEthernet0/0/0]quit

In order to allow the packet capture tool to capture the RS messages automatically configured and sent by IPv6 and the RA messages responded by the router, first assign a static IPv6 address to IPv6 on Windows 10 and then select “Obtain IPv6 address automatically”, so that the computer will send RS messages and the router will respond with RA messages. Find the router advertisement (RA) message from the packet capture tool, as shown in Fig. 13.30, and you can see that the value of the M flag bit and the O flag bit are both 1; the router prefix is also advertised, but the computer will still obtain the IPv6 address and other settings from the DHCPv6 server.

Fig. 13.30
figure 30

RA packet captured

Open a command prompt in Windows 10, as shown in Fig. 13.31. By ty** in “ipconfig /all”, you can see the IPv6 configuration obtained from DHCPv6 as well as the DNS suffix search list “huawei.com” obtained from DHCPv6, DNS, and lease duration.

Fig. 13.31
figure 31

View the IPv6 configuration obtained from DHCPv6

As shown in Fig. 13.32, enter “show interface “4””, and you can see that both the “managed address configuration” and the “other stateful configuration” are also “enabled”.

Fig. 13.32
figure 32

IPv6 state

13.5 IPv6 Routing

The condition for a smooth IPv6 network is the same as IPv4, that is, the network is only unobstructed if packets can be sent and returned. For networks that are not directly connected, static routes need to be manually added or dynamic routing protocols need to be used to learn routes to each network.

The dynamic routing protocols that support IPv6 also require new versions. OSPFv3 (OSPF version 3) supports IPv6 while OSPFv2 (OSPF version 2) supports IPv4.

The following will demonstrate the configuration of static routes for IPv6 and the configuration of OSPFv3, the dynamic routing protocol that supports IPv6.

13.5.1 IPv6 Static Routing

As shown in Fig. 13.33, there are three IPv6 network segments and two routers in the network. Please refer to the addresses marked in the figure to configure the IPv6 addresses of the router interfaces. Add static routes to AR1 and AR2 to enable these three networks to communicate with each other.

Fig. 13.33
figure 33

Network topology for static routing

Enable IPv6 on AR1, configure the interface to enable IPv6, and configure the IPv6 address of the interface, and add a route to network segment 2018:6:8::/64.

[AR1]ipv6  [AR1]interface GigabitEthernet 0/0/0 [AR1-GigabitEthernet0/0/0]ipv6 enable      [AR1-GigabitEthernet0/0/0]ipv6 address 2018:6:6::1 64     [AR1-GigabitEthernet0/0/0]undo ipv6 nd ra halt     [AR1-GigabitEthernet0/0/0]quit [AR1]interface GigabitEthernet 0/0/1 [AR1-GigabitEthernet0/0/1]ipv6 enable  [AR1-GigabitEthernet0/0/1]ipv6 address 2018:6:7::1 64 [AR1-GigabitEthernet0/0/1]quit

Add a static route to the network segment 2018:6:8::/64.

[AR1]ipv6 route-static 2018:6:8:: 64 2018:6:7::2

Display the IPv6 static route.

[AR1]display ipv6 routing-table protocol static  Public Routing Table : Static Summary Count : 1 Static Routing Table's Status : < Active > Summary Count : 1   Destination  : 2018:6:8::   PrefixLength : 64  NextHop  : 2018:6:7::2  Preference   : 60  Cost  : 0 Protocol  : Static  RelayNextHop : ::   TunnelID  : 0x0  Interface  : GigabitEthernet0/0/1 Flags  : RD Static Routing Table's Status : < Inactive > Summary Count : 0

Display the IPv6 routing table .

[AR1]display ipv6 routing-table

Enable IPv6 on AR2, configure the interface to enable IPv6, configure the IPv6 address of the interface, and add a route to network segment 2018:6:6::/64.

[AR2]ipv6  [AR2]interface GigabitEthernet 0/0/1 [AR2-GigabitEthernet0/0/1]ipv6 enable  [AR2-GigabitEthernet0/0/1]ipv6 address 2018:6:7::2 64 [AR2-GigabitEthernet0/0/1]quit [AR2]interface GigabitEthernet 0/0/0 [AR2-GigabitEthernet0/0/0]ipv6 enable  [AR2-GigabitEthernet0/0/0]ipv6 address 2018:6:8::1 64 [AR2-GigabitEthernet0/0/0]quit [AR2]ipv6 route-static 2018:6:6:: 64 2018:6:7::1

Test if the network 2018:6:8::1 is working on AR1.

<AR1>** ipv6 2018:6:8::1 PING 2018:6:8::1 : 56  data bytes, press CTRL_C to break  Reply from 2018:6:8::1 bytes=56 Sequence=4 hop limit=64  time = 20 ms  Reply from 2018:6:8::1 bytes=56 Sequence=5 hop limit=64  time = 20 ms  Reply from 2018:6:8::1 bytes=56 Sequence=5 hop limit=64  time = 20 ms  Reply from 2018:6:8::1 bytes=56 Sequence=4 hop limit=64  time = 20 ms  Reply from 2018:6:8::1 bytes=56 Sequence=5 hop limit=64  time = 20 ms --- 2018:6:8::1 ** statistics ---  5 packet(s) transmitted  5 packet(s) received  0.00% packet loss  round-trip min/avg/max = 10/32/80 ms

Delete the IPv6 static route.

[AR1]undo ipv6 route-static 2018:6:8:: 64 [AR2]undo ipv6 route-static 2018:6:6:: 64

13.5.2 OSPFv3

The new version of OSPF has many similarities to OSPF in IPv4.

The basic concept of OSPFv3 is the same as that of OSPFv2. It is still a link-state routing protocol, and OSPFv3 can divide an entire network or autonomous system into areas, thus making the network hierarchical.

In OSPFv2, the router ID (RID) is determined by the largest IP address assigned to the router (which can also be manually assigned). In OSPFv3, the RID, area ID and link state ID need to be assigned. The link state ID is still a 32-bit value, but can no longer be found using IP addresses because IPv6 addresses are 128-bit. The router ID of OSPFv3 must be manually assigned.

OSPFv3 routers use the link-local address as the source address for sending messages and use multicast traffic to send update and response messages. For OSPF routers, the address is FF02::5, and for designated OSPF routers, the address is FF02::6. These new addresses are tantamount to multicast addresses 224.0.0.5 and 224.0.0.6 used by OSPFv2. A router can learn the link-local addresses of all other routers connected to this link and use these link-local addresses as the next hop addresses for forwarding messages.

The following illustrates the process of configuring OSPFv3. As shown in Fig. 13.34, the router interface addresses in the network have been configured, and now you need to configure OSPFv3 on routers AR1 and AR2.

Fig. 13.34
figure 34

Configure OSPFv3

The configuration on AR1 is as follows.

[AR1]ospfv3 1                             --Enable OSPFv3, and specify process ID [AR1-ospfv3-1]router-id 1.1.1.1                --Specify a router-id, which must be a unique one [AR1-ospfv3-1]quit [AR1]interface GigabitEthernet 0/0/0 [AR1-GigabitEthernet0/0/0]ospfv3 1 area 0      --Enable OSPFv3 on the router and specify an area ID [AR1-GigabitEthernet0/0/0]quit [AR1]interface GigabitEthernet 0/0/1 [AR1-GigabitEthernet0/0/1]ospfv3 1 area 0 [AR1-GigabitEthernet0/0/1]quit

The configuration on AR2 is as follows.

[AR2]ospfv3 1                                    --Enable OSPFv3, and specify a process ID [AR2-ospfv3-1]router-id 1.1.1.2 [AR2-ospfv3-1]quit [AR2]interface GigabitEthernet 0/0/0 [AR2-GigabitEthernet0/0/0]ospfv3 1 area 0 [AR2-GigabitEthernet0/0/0]quit [AR2]interface GigabitEthernet 0/0/1 [AR2-GigabitEthernet0/0/1]ospfv3 1 area 0 [AR2-GigabitEthernet0/0/1]quit

View routes learned via OSPFv3.

[AR1]display ipv6 routing-table protocol ospfv3 Public Routing Table : OSPFv3 Summary Count : 3 OSPFv3 Routing Table's Status : < Active > Summary Count : 1   Destination  : 2018:6:8::   PrefixLength : 64  NextHop  : FE80::2E0:FCFF:FE1E:7774 Preference  : 10  Cost  : 2 Protocol  : OSPFv3  RelayNextHop : ::                              TunnelID     : 0x0  Interface    : GigabitEthernet0/0/1            Flags        : D ……

13.6 Exercises

  1. 1.

    (Multi-selection) Which of the following abbreviations is correct for IPv6 address 2031:0000:72C:0000:0000:09E0:839A:130B? ( )

    1. A.

      2031:0:720C:0:0:0:9E0:839A:130B

    2. B.

      2031:0:720C:0:0:0:9E:839A:130B

    3. C.

      2031::720C::9E:839A:130B

    4. D.

      2031:0:720C::9E0:839A:130B

  2. 2.

    (Multi-selection) Which of the following IPv6 addresses can be manually configured on a router interface? ( )

    1. A.

      fe80:13dc::1/64

    2. B.

      ff00:8a3c::9b/64

    3. C.

      ::1/128

    4. D.

      2001:12e3:1b02::21/64

  3. 3.

    (Multi-selection) Which of the following descriptions of IPv6 is correct ( )?

    1. A.

      An IPv6 address is 64 bits long

    2. B.

      An IPv6 address is 128 bits long

    3. C.

      IPv6 address stateful configuration uses DHCP server to assign addresses and configure other settings

    4. D.

      IPv6 address stateless configuration uses DHCPv6 server to assign addresses and configure other settings

  4. 4.

    Which of the following types of addresses does not belong to IPv6 addresses? ( )

    1. A.

      Unicast address

    2. B.

      Multicast address

    3. C.

      Broadcast address

    4. D.

      Anycast address

  5. 5.

    Which of the following options is the address prefix for link-local addresses? ( )

    1. A.

      2001::/10

    2. B.

      fe80::/10

    3. C.

      feC0::/10

    4. D.

      2002::/10

  6. 6.

    Which of the following commands is used to add an IPv6 default route? ( )

    1. A.

      [AR1]ipv6 route-static :: 0 2018:6:7::2

    2. B.

      [AR1]ipv6 route-static ::1 0 2018:6:7::2

    3. C.

      [AR1]ipv6 route-static :: 64 2018:6:7::2

    4. D.

      [AR1]ipv6 route-static :: 128 2018:6:7::2

  7. 7.

    What are the protocols of the IPv6 network layer? ( )

    1. A.

      ICMPv6, IPv6, ARP, ND

    2. B.

      ICMPv6, IPv6, MLD, ND

    3. C.

      ICMPv6, IPv6, ARP, IGMPv6

    4. D.

      ICMPv6, IPv6, MLD, ARP

  8. 8.

    Which of the following forms of DUIDs can be configured when DHCPv6 is configured in a VRP system? ( )

    1. A.

      DUID-LL

    2. B.

      DUID-LLT

    3. C.

      DUID-EN

    4. D.

      DUID-LLC

  9. 9.

    DHCPv6 messages need to be carried by which of the following protocol messages? ( )

    1. A.

      FTP

    2. B.

      TCP

    3. C.

      UDP

    4. D.

      HTTP

  10. 10.

    (Multi-selection) Which of the following statements about IPv6 address configuration is correct ( )?

    1. A.

      IPv6 addresses can only be configured manually.

    2. B.

      IPv6 supports address configuration in the form of DHCPv6

    3. C.

      IPv6 addresses support stateless autoconfiguration

    4. D.

      IPv6 addresses support autoconfiguration in various ways

  11. 11.

    2001::12:1 corresponds to solicitated-node multicast address FF02::1:FF12:1.( )

    1. A.

      Correct

    2. B.

      Incorrect