aboutsummaryrefslogtreecommitdiff
path: root/documentation
diff options
context:
space:
mode:
authorSeyed Pouria Mousavizadeh Tehrani <info@spmzt.net>2025-05-20 18:29:41 +0000
committerLexi Winter <ivy@FreeBSD.org>2025-05-20 18:38:08 +0000
commite1054c3d553d606d6e1703fb94a8edb7564067fd (patch)
treeb760fa7e7c278a0d29ac340d2234c829c5acbb58 /documentation
parent7e414bfbbce58be56bcf47524c7732c0b9095cb9 (diff)
Diffstat (limited to 'documentation')
-rw-r--r--documentation/content/en/books/handbook/glossary.adoc7
-rw-r--r--documentation/content/en/books/handbook/network/_index.adoc57
2 files changed, 34 insertions, 30 deletions
diff --git a/documentation/content/en/books/handbook/glossary.adoc b/documentation/content/en/books/handbook/glossary.adoc
index 2009f4ac22..de369e8d2f 100644
--- a/documentation/content/en/books/handbook/glossary.adoc
+++ b/documentation/content/en/books/handbook/glossary.adoc
@@ -903,6 +903,9 @@ See crossref:glossary[scsi-glossary,Small Computer System Interface].
SG::
See crossref:glossary[sg-glossary,Signal Ground].
+SLAAC::
+See crossref:glossary[slaac-glossary,StateLess Address AutoConfiguration].
+
SMB::
See crossref:glossary[smb-glossary,Server Message Block].
@@ -924,6 +927,10 @@ See crossref:glossary[str-glossary,Suspend To RAM].
SVN::
See crossref:glossary[svn-glossary,Subversion].
+[[slaac-glossary]]
+StateLess Address AutoConfiguration::
+{empty}
+
[[smtpauth-glossary]]
SMTP Authentication::
{empty}
diff --git a/documentation/content/en/books/handbook/network/_index.adoc b/documentation/content/en/books/handbook/network/_index.adoc
index 2db78fe808..875e9fa7cf 100644
--- a/documentation/content/en/books/handbook/network/_index.adoc
+++ b/documentation/content/en/books/handbook/network/_index.adoc
@@ -110,7 +110,7 @@ em0@pci0:0:25:0: class=0x020000 rev=0x03 hdr=0x00 vendor=0x8086 device=0x
iwn0@pci0:3:0:0: class=0x028000 rev=0x00 hdr=0x00 vendor=0x8086 device=0x4237 subvendor=0x8086 subdevice=0x1211
vendor = 'Intel Corporation' <1>
device = 'PRO/Wireless 5100 AGN [Shiloh] Network Connection' <2>
- class = networ
+ class = network
....
The text before the '@' symbol is the name of the driver controlling the device.
@@ -356,7 +356,7 @@ IPv6 provides several advantages over IPv4 as well as many new features:
* Its 128-bit address space allows for 340,282,366,920,938,463,463,374,607,431,768,211,456 addresses. This addresses the IPv4 address shortage and eventual IPv4 address exhaustion.
* Routers only store network aggregation addresses in their routing tables, thus reducing the average space of a routing table to 8192 entries. This addresses the scalability issues associated with IPv4, which required every allocated block of IPv4 addresses to be exchanged between Internet routers, causing their routing tables to become too large to allow efficient routing.
-* Address autoconfiguration (http://www.ietf.org/rfc/rfc2462.txt[RFC2462]).
+* Address autoconfiguration (http://www.ietf.org/rfc/rfc4862.txt[RFC4862]).
* Mandatory multicast addresses.
* Built-in IPsec (IP security).
* Simplified header structure.
@@ -374,8 +374,7 @@ A packet sent to a unicast address arrives at the interface belonging to the add
Anycast::
These addresses are syntactically indistinguishable from unicast addresses but they address a group of interfaces.
-The packet destined for an anycast address will arrive at the nearest router interface.
-Anycast addresses are only used by routers.
+The packet destined for an anycast address will arrive at the nearest interface.
Multicast::
These addresses identify a group of interfaces.
@@ -421,55 +420,46 @@ A list of reserved addresses can be checked in the following table:
[[reservedip6]]
.Example IPv6 Reserved Addresses
-[cols="1,1,1,1", frame="none", options="header"]
+[cols="1,1,1", frame="none", options="header"]
|===
| IPv6 address
-| Prefixlength (Bits)
| Description
| Notes
-|`::`
-|128 bits
+|`::/128`
|unspecified
|Equivalent to `0.0.0.0` in IPv4.
-|`::1`
-|128 bits
+|`::1/128`
|loopback address
|Equivalent to `127.0.0.1` in IPv4.
-|`::00:xx:xx:xx:xx`
-|96 bits
-|embedded IPv4
-|The lower 32 bits are the compatible IPv4 address.
-
-|`::ff:xx:xx:xx:xx`
-|96 bits
+|`::ffff:0.0.0.0/96`
|IPv4 mapped IPv6 address
-|The lower 32 bits are the IPv4 address for hosts which do not support IPv6.
+|The lower 32 bits are the IPv4 address for compatibility with IPv4 hosts and routers.
|`fe80::/10`
-|10 bits
-|link-local
+|link-local unicast
|Equivalent to 169.254.0.0/16 in IPv4.
|`fc00::/7`
-|7 bits
|unique-local
|Unique local addresses are intended for local communication and are only routable within a set of cooperating sites.
-|`ff00::`
-|8 bits
+|`ff00::/8`
|multicast
|
-|``2000::-3fff::``
-|3 bits
+|`2000::/3`
|global unicast
|All global unicast addresses are assigned from this pool. The first 3 bits are `001`.
+
+|``2001:db8::/32, 3fff::/20``
+|documentation
+|IPv6 address prefix for use in documentation.
|===
-For further information on the structure of IPv6 addresses, refer to http://www.ietf.org/rfc/rfc3513.txt[RFC3513].
+For further information on the structure of IPv6 addresses, refer to http://www.ietf.org/rfc/rfc4291.txt[RFC4291].
[[config-static-ip-v6]]
=== Configuring Static IPv6 Address
@@ -490,13 +480,18 @@ To assign a default router, specify its address executing the following command:
# sysrc ipv6_defaultrouter="2001:db8:4672:6565::1"
....
+To configure an additional IPv6 anycast address, specify the anycast address as an `_aliasN`, as specified in man:rc.conf[5], followed by the `anycast` option:
+[source,shell]
+....
+# sysrc ifconfig_em0_alias0="inet6 2001:db8:4672:6565::a anycast"
+....
+
+Keep in mind that the applications can't bind to anycast addresses; in that case you need to use an alias address instead.
+
[[config-dynamic-ip-v6]]
=== Configuring Dynamic IPv6 Address
-If the network has a DHCP server, it is very easy to configure the network interface to use DHCP.
-man:dhclient[8] will provide automatically the IP, the netmask and the default router.
-
-To make the interface work without DHCP, execute the following commands:
+To dynamically configure the IPv6 address of the interface using crossref:glossary[slaac-glossary,SLAAC], execute the following commands:
[source,shell]
....
@@ -504,6 +499,8 @@ To make the interface work without DHCP, execute the following commands:
# sysrc rtsold_enable="YES"
....
+Note that when IPv6 packet forwarding is enabled (i.e., `ipv6_gateway_enable=YES`), the system will not configure a SLAAC address unless the `net.inet6.ip6.rfc6204w3` man:sysctl[8] variable is set to 1.
+
=== Router Advertisement and Host Auto Configuration
This section demonstrates how to setup man:rtadvd[8] on an IPv6 router to advertise the IPv6 network prefix and default route.