5.4 KiB
How to use this book
This book is, and we hope always will be, a work in progress. It is intended for people who plan, deploy, maintain and operate computer networks using Internet Protocol version 6 (IPv6). It is being written and updated by exactly such people. IPv6 is a mature protocol but every day we gain more experience, products are updated, and quite often the underlying technical standards are updated too. Therefore, this book will likewise be constantly updated. It's issued under an open source license. You are welcome to obtain a printed copy at cost price, but be aware that the book will evolve constantly.
The list of contents should act as an on-line guide to the topics covered. Most readers will probably not read from cover to cover. Design your own path through the book.
How a user sees IPv6
The answer should be: they don't. In an ideal world, users would never need to be aware of the lower layers of the protocol stack, and they certainly should never have to see a hexadecimal number, or even be aware that they are using IPv6. The goal of a network designer or operator should be to make this true.
However, it's unlikely that this will always succeed. It's likely that if a user ever does see something specific to IPv6, it's probably at the worst possible time: when there is a fault or a system configuration issue. That is exactly when the user is either reading on-line help information, or in contact with a help desk. It is therefore recommended to review any documentation you provide to users or to help desk staff to make sure that when IPv6 is mentioned, the information is complete, correct and up to date. It's also important that configuration tools are designed to avoid or minimize any need for users to enter IPv6 addresses by hand.
How an application programmer sees IPv6
In a very theoretical world, an application programmer could rely on a DNS lookup to return the best (and only) address of a remote host, and could then pass that address directly to the network socket interface without further ado. Unfortunately the real world is not that simple. Even without considering the version number, there are several types of IP address, and a DNS lookup may return a variety of addresses. In most cases, applications will use the function get_address_info() and get back a list of valid addresses. Which is the best one to use, and should the program try more than one?
We do not go into this subject in detail, because this book is not aimed primarily at application programmers. However, operators need to be aware that the default behavior of most applications is simply to use the first address returned by get_address_info(). Some applications (such as web browsers) may use a smarter approach known as "happy eyeballs" by means of a heuristic to detect which address gives the fastest response. However, operators need to understand the various address types in order to configure systems optimally, including the get_address_info() precedence table in every host.
This topic is discussed further in tbd.
How a network operations center sees IPv6
This is really the topic of this entire book. In the long term, we expect that "running an IPv6 network" will be synonymous with "running a network". IPv6 should not be viewed as an add-on, but as the primary network protocol. How it coexists and interacts with IPv4 is the subject of Chapter 3. This section gives an overview of how IPv6 looks when viewed from the NOC, and the rest of the book covers the details.
Much more, to be drafted by someone who actually runs a NOC...
How to keep up to date
The intention is for this book to be kept up to date by its user community. However, for the very latest information on IPv6 operational best practices and protocol details, readers may wish to track the discussions in the relevant IETF working groups, in particular IPv6 Operations (v6ops) and IPv6 Maintenance (6man). These groups are open to all, although following the discussion can be quite time-consuming.
The final results of these working groups are published as Internet Request for Comments documents (RFCs), freely available from the RFC Editor. Warning: obsolete RFCs are never modified or deleted. It is essential to look at the current status of an RFC before trusting it. For example, the current status of the 2017 version of the main IPv6 standard is shown at this info page.
This book intends to cite the latest version of all the RFCs it mentions, but it never hurts to check the info page.
How to contribute
If you find an error or a gap in this book, or a recommendation that you disagree with on the basis of practical experience, you are most welcome either to raise an issue, or even better to draft updated or new text. We are maintaining this book using GitHub - see the book6 repository for details.
You can raise issues through the book's issue tracker. To become an active contributor check the conditions. Your contributions will be reviewed by an editorial team.