From 939c378dea8a340079bf00387af470d86c209224 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Fri, 30 Dec 2022 07:52:16 +0100 Subject: [PATCH 1/3] Create IPv6 guide for Fritz!Box routers Co-authored-by: Bucking-Horn Co-authored-by: yubiuser Signed-off-by: Alexander Lieret Signed-off-by: DL6ER --- docs/images/routers/fritzbox-ipv6-1-de.png | Bin 0 -> 27421 bytes docs/images/routers/fritzbox-ipv6-1.png | Bin 0 -> 30840 bytes docs/images/routers/fritzbox-ipv6-2-de.png | Bin 0 -> 9429 bytes docs/images/routers/fritzbox-ipv6-2.png | Bin 0 -> 9288 bytes docs/routers/fritzbox-de.md | 83 ++++++++++++++++++++- docs/routers/fritzbox.md | 81 +++++++++++++++++++- 6 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 docs/images/routers/fritzbox-ipv6-1-de.png create mode 100644 docs/images/routers/fritzbox-ipv6-1.png create mode 100644 docs/images/routers/fritzbox-ipv6-2-de.png create mode 100644 docs/images/routers/fritzbox-ipv6-2.png diff --git a/docs/images/routers/fritzbox-ipv6-1-de.png b/docs/images/routers/fritzbox-ipv6-1-de.png new file mode 100644 index 0000000000000000000000000000000000000000..3345a1058430589800c173e3b2b3eab29650ee50 GIT binary patch literal 27421 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

{H+v9AyaO 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νbph^&)<`ryUK3aem9uXVSJmuum{i4D=jjhu8F6 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 O@epYRsVWJh;Qs~ui%Zi0 literal 0 HcmV?d00001 diff --git a/docs/images/routers/fritzbox-ipv6-2-de.png b/docs/images/routers/fritzbox-ipv6-2-de.png new file mode 100644 index 0000000000000000000000000000000000000000..49a3f8bf649907c980bea5ff657162b5827bf0d9 GIT binary patch literal 9429 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 RMan;Gau8+dQc2^0{{TDx;K2X@ literal 0 HcmV?d00001 diff --git a/docs/routers/fritzbox-de.md b/docs/routers/fritzbox-de.md index cb3fac90..19b515d9 100644 --- a/docs/routers/fritzbox-de.md +++ b/docs/routers/fritzbox-de.md @@ -2,7 +2,6 @@ Diese Anleitung soll die grundlegenden Prinzipien für ein reibungsloses Zusamme !!! note "Hinweis" Es gibt nicht nur **die eine Art**, ein funktionierendes DNS-System aufzusetzen. Konfiguriert euer Netzwerk nach euren Bedürfnissen. - Diese Anleitung wurde für IPv4 geschrieben und muss für IPv6 Netzwerke entsprechend angepasst werden. ### Erweiterte Ansicht aktivieren @@ -90,3 +89,85 @@ Folgende Einstellungen müssen dafür vorgenommen werden: * **Local domain name (optional):** Name der lokalen Domän, für die Fritz!Box **fritz.box** ![Screenshot der Conditional Forwarding Einstellungen](../images/routers/conditional-forwarding.png) + +## Pi-hole als DNS Server via IPv6 + +Mit dieser Konfiguration bekommen alle Clients die IPv6 von Pi-hole als DNS-Server über DHCPv6 und Router Advertisement (RA/RDNSS, SLAAC) angeboten, wenn sie mit Ihrer Fritz!Box verbunden sind. + +### Stabile IPv6 Adresse für den Pi-hole + +Der folgende Abschnitt hilft dabei, eine geeignete IPv6-Adresse des Pi-hole auszuwählen. +Um alle IPv6 Adressen anzuzeigen, die derzeit von Ihrer Hauptnetzwerkschnittstelle verwendet werden, öffnen Sie ein Terminal, ersetzen Sie `eth0` durch den Namen Ihrer Hauptschnittstelle (kann auch weggelassen werden) und führen Sie den Befehl aus + +```bash +ip -6 address show eth0 +``` + +The output should look like this but with different addresses + +```bash +$ ip -6 address show eth0 +2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 + inet6 fd6f:95dc:3a80:e9b1:503e:b05a:21dc:cf0c/64 scope global temporary dynamic + valid_lft 7159sec preferred_lft 3559sec + inet6 fd6f:95dc:3a80:e9b1:4bc3:7bff:fe67:c175/64 scope global dynamic mngtmpaddr noprefixroute + valid_lft 7159sec preferred_lft 3559sec + inet6 2001:db8::1c5e:22fe:490c:1c31/64 scope global temporary dynamic + valid_lft 7159sec preferred_lft 3559sec + inet6 2001:db8::4bc3:7bff:fe67:c175/64 scope global dynamic mngtmpaddr noprefixroute + valid_lft 7159sec preferred_lft 3559sec + inet6 fe80::4bc3:7bff:fe67:c175/64 scope link noprefixroute + valid_lft forever preferred_lft forever +``` + +Bei der Auswahl von der IPv6 Adresse ist folgendes zu beachten: + +* Vermeidung von global unicast addresses (GUA) (Bereich `2000::/3`) + Ihr Internetprovider kontrolliert das GUA IPv6 Präfix, so dass es sich entweder regelmäßig oder bei einem Neustart des Routers ändern kann. + In diesem Beispiel sollte die dritte und vierte Adresse, die mit `2001:` beginnen, nicht verwendet werden: +* Vermeidung von Privacy Extension Adressen (markiert mit `temporary`) + Die Schnittstellenkennung einer IPv6-Adresse ist so konzipiert, dass sie sich regelmäßig ändert, auf manchen Systemen sogar jede Stunde. + In diesem Beispiel sollte die erste und die dritte Adresse vermieden werden. +* Bevorzugung von unique local addresses (ULA) (Bereich `fd00::/8`) gegenüber der link-lokalen Adresse (Bereich `fe80::/10`) + Das ULA-Präfix ist kontrollierbar und statisch. Letzteres ist nur in einem Netzwerk gültig und kann nicht geroutet werden. + Dies kann für einfache Heimnetzwerke funkionieren, solange keine Pakete geroutet werden (wie bei Docker, einigen WiFi-Zugangspunkten, L3-Switches, ...). + +In diesem Beispiel sind diese beiden Adressen verwendbar: `fd6f:95dc:3a80:e9b1:4bc3:7bff:fe67:c175` und `fe80::4bc3:7bff:fe67:c175` (mit Vorsicht). + +Sollte Ihre FritzBox noch kein IPv6 ULA-Präfix vergeben, hilft der folgende Schritt bei der Konfiguration eines ULA-Präfixes. + +### (Optional) ULA Adressen aktivieren + +Unique local addresses (ULA) sind lokale IPv6-Adressen, die nicht über das Internet geroutet werden. Sie sind vergleichbar mit den privaten IPv4-Netzbereichen. + +Zum aktivieren, wähle "Unique Local Addresses (ULA) immer zuweisen" aus in + +```bash +Heimnetz/Netzwerk/Netzwerkeinstellungen/IP-Adressen/IPv6-Konfiguration/Unique Local Addresses +``` + +> Hinweis: +Es wird empfohlen, das ULA-Präfix zu ändern, um Kollisionen mit anderen Netzen zu vermeiden. +Die ersten 40 Bits sollten gemäß RFC4193 oder durch einen einfachen Online-Generator, wie [unique-local-ipv6.com](https://www.unique-local-ipv6.com/), erzeugt werden. +Die restlichen 16 Bits sind die Subnetz-ID und können frei gewählt werden. +Nach dem Auswählen von "ULA-Präfix manuell festlegen" kann man sein eigenes Präfix einstellen. + +![Screenshot der Fritz!Box IPv6 Adressen Einstellungen](../images/fritzbox-ipv6-1-de.png) + +Um die neue Adressen zu erhalten, muss der Pi-hole Server kurz vom Netzwerk getrennt werden oder neu gestartet werden. +Der [vorherige Schritt](#stabile-ipv6-adresse-für-den-pi-hole) sollte wiederholt werden, um die neue ULA Adresse anzuzeigen. + +### Pi-hole als DNS Server verteilen + +Nun kann die IPv6 Adresse des Pi-hole als "Lokaler DNSv6-Server" in + +```bash +Heimnetz/Netzwerk/Netzwerkeinstellungen/IP-Adressen/IPv6-Konfiguration/DNSv6-Server im Heimnetz +``` + +eingetragen werden. + +> Hinweis: +Es wird empfohlen "DNSv6-Server auch über Router Advertisement bekanntgeben (RFC 5006)" auszuwählen. + +![Screenshot der Fritz!Box IPv6 Adressen Einstellungen](../images/fritzbox-ipv6-2-de.png) diff --git a/docs/routers/fritzbox.md b/docs/routers/fritzbox.md index 823f8faf..36866f50 100644 --- a/docs/routers/fritzbox.md +++ b/docs/routers/fritzbox.md @@ -2,7 +2,6 @@ This guide was developed using FRITZ!OS 07.21 but should work for others too. It !!! note There is no single way to do it right. Choose the one best fitting your needs. - This guide is IPv4 only. You need to adjust for IPv6 accordingly. ### Enable advanced settings @@ -85,3 +84,83 @@ The following settings must be made: * **Local domain name (optional):** Fritz!Box uses **fritz.box** ![Screenshot der Conditional Forwarding Einstellungen](../images/routers/conditional-forwarding.png) + +## Distribute Pi-hole as DNS server via IPv6 + +Using this configuration, your Fritz!Box will offer Pi-hole's IPv6 as local DNS server to its clients via DHCPv6 as well as Router Advertisement (RA/RDNSS, SLAAC). + +### Stable IPv6 address for your Pi-hole + +The following section will help you picking a suitable IPv6 address of your Pi-hole. +To show all IPv6 addresses currently in use by your main network interface, open a terminal, substitute `eth0` with your main interface name (or omit) and execute the command + +```bash +ip -6 address show eth0 +``` + +The output should look like this but with different addresses + +```bash +$ ip -6 address show eth0 +2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 + inet6 fd6f:95dc:3a80:e9b1:503e:b05a:21dc:cf0c/64 scope global temporary dynamic + valid_lft 7159sec preferred_lft 3559sec + inet6 fd6f:95dc:3a80:e9b1:4bc3:7bff:fe67:c175/64 scope global dynamic mngtmpaddr noprefixroute + valid_lft 7159sec preferred_lft 3559sec + inet6 2001:db8::1c5e:22fe:490c:1c31/64 scope global temporary dynamic + valid_lft 7159sec preferred_lft 3559sec + inet6 2001:db8::4bc3:7bff:fe67:c175/64 scope global dynamic mngtmpaddr noprefixroute + valid_lft 7159sec preferred_lft 3559sec + inet6 fe80::4bc3:7bff:fe67:c175/64 scope link noprefixroute + valid_lft forever preferred_lft forever +``` + +When picking an IPv6 address from that list: + +* avoid global unicast addresses (GUA) (range `2000::/3`) + Your ISP controls your GUA IPv6 prefix it, so it may change, either regularly or on router restarts. + In this example, don't use the third and fourth address, starting with `2001:` +* avoid Privacy Extension (RFC 4941) addresses which are marked with `temporary` + The interface identifier portion of an IPv6 address is designed to change regularly, on some systems as often as every hour. + In this example, avoid the first and the third address. +* prefer unique local addresses (ULA) (range `fd00::/8`) over the link-local address (range `fe80::/10`) + You can control the ULA prefix and it is static. The later is only valid on a link and cannot be routed. + This can be fine for simple home networks, but will break once packets are routed (like Docker, some WiFi access points, L3 switches, ...). + +In this example, these two addresses are usable; `fd6f:95dc:3a80:e9b1:4bc3:7bff:fe67:c175` and `fe80::4bc3:7bff:fe67:c175` (with care). + +If your FritzBox doesn't issue an IPv6 ULA prefix yet, refer to the following step which helps you configure an ULA prefix. + +### (Optional) Enable ULA addresses + +Unique local addresses (ULA) are local IPv6 addresses which are not routed on the internet. They are comparable to the IPv4 private network ranges. + +To enable ULA addresses, select "Always assign unique local addresses (ULA)" in + +```bash +Home Network/Network/Network Settings/IP Addresses/IPv6 Addresses/Unique Local Addresses +``` + +> Note: +It is recommended to change the ULA prefix in order to prevent collisions with other networks. +You should generate the first 40 bits according to RFC4193 or use a simple online generator, like [unique-local-ipv6.com](https://www.unique-local-ipv6.com/). +The remaining 16 bits are the subnet id and are free to choose. +Select "Set ULA prefix manually" and enter a custom prefix. + +![Screenshot of Fritz!Box IPv6 Addresses Settings](../images/routers/fritzbox-ipv6-1.png) + +To obtain the new address, reconnect or reboot your Pi-hole server. +Go back to the [previous step](#stable-ipv6-address-for-your-pi-hole) to display your newly created ULA address. + +### Distribute Pi-hole as DNS server + +It is now possible to enter Pi-hole's stable IPv6 address as "Local DNSv6 server" in + +```bash +Home Network/Network/Network Settings/IP Addresses/IPv6 Addresses/DNSv6 Server in the Home Network +``` + +> Note: +It is recommended to select "Also announce DNSv6 server via router advertisement (RFC 5006)". + +![Screenshot of Fritz!Box IPv6 Addresses Settings](../images/routers/fritzbox-ipv6-2.png) From ba48c70b9c5ed3208ac526365c8439da190ee0d5 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Thu, 29 Dec 2022 18:16:13 +0100 Subject: [PATCH 2/3] Simplify and shorten IPv6 instructions Signed-off-by: DL6ER --- docs/routers/fritzbox-de.md | 78 ++++++++++--------------------------- docs/routers/fritzbox.md | 72 ++++++++-------------------------- 2 files changed, 37 insertions(+), 113 deletions(-) diff --git a/docs/routers/fritzbox-de.md b/docs/routers/fritzbox-de.md index 19b515d9..1bb7874b 100644 --- a/docs/routers/fritzbox-de.md +++ b/docs/routers/fritzbox-de.md @@ -14,7 +14,7 @@ Einige dieser Einstellungen sind nur sichtbar, wenn vorher die Ansicht auf "Erwe Mit dieser Konfiguration wird allen Clients die IP des Pi-hole als DNS Server angeboten, wenn sie einen DHCP Lease von der Fritz!Box anfordern. DNS Anfragen nehmen folgenden Weg -```bash +``` plain Client -> Pi-hole -> Upstream DNS Server ``` @@ -24,7 +24,7 @@ Client -> Pi-hole -> Upstream DNS Server Um diese Konfiguration zu nutzen, muss die IP des Pi-hole als "Lokaler DNS-Server" in -```bash +``` plain Heimnetz/Netzwerk/Netzwerkeinstellungen/IP-Adressen/IPv4-Konfiguration/Heimnetz ``` @@ -41,13 +41,13 @@ Nun sollten einzelne Clients im Pi-hole Dashboard auftauchen. Mit dieser Konfiguration wird Pi-hole auch von der Fritz!Box selbst als Upstream DNS Server genutzt. DNS Anfragen nehmen folgenden Weg -```bash +``` plain (Clients) -> Fritz!Box -> Pi-hole -> Upstream DNS Server ``` Zum Einstellen muss die IP des Pi-hole als "Bevorzugter DNSv4-Server" **und** "Alternativer DNSv4-Server" in -```bash +``` plain Internet/Zugangsdaten/DNS-Server ``` @@ -64,7 +64,7 @@ Wird ausschließlich diese Konfiguration genutzt, sind im Pi-hole Dashboard kein Es gibt in der Fritz!Box keine Möglichkeit unter -```bash +``` plain Heimnetz/Netzwerk/Netzwerkeinstellungen/IP-Adressen/IPv4-Konfiguration/Gastnetz ``` @@ -94,80 +94,42 @@ Folgende Einstellungen müssen dafür vorgenommen werden: Mit dieser Konfiguration bekommen alle Clients die IPv6 von Pi-hole als DNS-Server über DHCPv6 und Router Advertisement (RA/RDNSS, SLAAC) angeboten, wenn sie mit Ihrer Fritz!Box verbunden sind. -### Stabile IPv6 Adresse für den Pi-hole +### ULA Adressraum aktivieren -Der folgende Abschnitt hilft dabei, eine geeignete IPv6-Adresse des Pi-hole auszuwählen. -Um alle IPv6 Adressen anzuzeigen, die derzeit von Ihrer Hauptnetzwerkschnittstelle verwendet werden, öffnen Sie ein Terminal, ersetzen Sie `eth0` durch den Namen Ihrer Hauptschnittstelle (kann auch weggelassen werden) und führen Sie den Befehl aus - -```bash -ip -6 address show eth0 -``` - -The output should look like this but with different addresses - -```bash -$ ip -6 address show eth0 -2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 - inet6 fd6f:95dc:3a80:e9b1:503e:b05a:21dc:cf0c/64 scope global temporary dynamic - valid_lft 7159sec preferred_lft 3559sec - inet6 fd6f:95dc:3a80:e9b1:4bc3:7bff:fe67:c175/64 scope global dynamic mngtmpaddr noprefixroute - valid_lft 7159sec preferred_lft 3559sec - inet6 2001:db8::1c5e:22fe:490c:1c31/64 scope global temporary dynamic - valid_lft 7159sec preferred_lft 3559sec - inet6 2001:db8::4bc3:7bff:fe67:c175/64 scope global dynamic mngtmpaddr noprefixroute - valid_lft 7159sec preferred_lft 3559sec - inet6 fe80::4bc3:7bff:fe67:c175/64 scope link noprefixroute - valid_lft forever preferred_lft forever -``` - -Bei der Auswahl von der IPv6 Adresse ist folgendes zu beachten: - -* Vermeidung von global unicast addresses (GUA) (Bereich `2000::/3`) - Ihr Internetprovider kontrolliert das GUA IPv6 Präfix, so dass es sich entweder regelmäßig oder bei einem Neustart des Routers ändern kann. - In diesem Beispiel sollte die dritte und vierte Adresse, die mit `2001:` beginnen, nicht verwendet werden: -* Vermeidung von Privacy Extension Adressen (markiert mit `temporary`) - Die Schnittstellenkennung einer IPv6-Adresse ist so konzipiert, dass sie sich regelmäßig ändert, auf manchen Systemen sogar jede Stunde. - In diesem Beispiel sollte die erste und die dritte Adresse vermieden werden. -* Bevorzugung von unique local addresses (ULA) (Bereich `fd00::/8`) gegenüber der link-lokalen Adresse (Bereich `fe80::/10`) - Das ULA-Präfix ist kontrollierbar und statisch. Letzteres ist nur in einem Netzwerk gültig und kann nicht geroutet werden. - Dies kann für einfache Heimnetzwerke funkionieren, solange keine Pakete geroutet werden (wie bei Docker, einigen WiFi-Zugangspunkten, L3-Switches, ...). - -In diesem Beispiel sind diese beiden Adressen verwendbar: `fd6f:95dc:3a80:e9b1:4bc3:7bff:fe67:c175` und `fe80::4bc3:7bff:fe67:c175` (mit Vorsicht). - -Sollte Ihre FritzBox noch kein IPv6 ULA-Präfix vergeben, hilft der folgende Schritt bei der Konfiguration eines ULA-Präfixes. - -### (Optional) ULA Adressen aktivieren - -Unique local addresses (ULA) sind lokale IPv6-Adressen, die nicht über das Internet geroutet werden. Sie sind vergleichbar mit den privaten IPv4-Netzbereichen. +Unique Local Addresses (ULAs) sind lokale IPv6-Adressen, die nicht über das Internet geroutet werden. Sie sind vergleichbar mit den privaten IPv4-Netzbereichen (`192.168.x.y`). Zum aktivieren, wähle "Unique Local Addresses (ULA) immer zuweisen" aus in -```bash +``` plain Heimnetz/Netzwerk/Netzwerkeinstellungen/IP-Adressen/IPv6-Konfiguration/Unique Local Addresses ``` > Hinweis: Es wird empfohlen, das ULA-Präfix zu ändern, um Kollisionen mit anderen Netzen zu vermeiden. -Die ersten 40 Bits sollten gemäß RFC4193 oder durch einen einfachen Online-Generator, wie [unique-local-ipv6.com](https://www.unique-local-ipv6.com/), erzeugt werden. -Die restlichen 16 Bits sind die Subnetz-ID und können frei gewählt werden. +Die ersten 40 Bits sollten gemäß RFC4193 oder durch einen einfachen Online-Generator, wie [unique-local-ipv6.com](https://www.unique-local-ipv6.com/), erzeugt werden. Die restlichen 16 Bits sind die Subnetz-ID und können frei gewählt werden. Nach dem Auswählen von "ULA-Präfix manuell festlegen" kann man sein eigenes Präfix einstellen. -![Screenshot der Fritz!Box IPv6 Adressen Einstellungen](../images/fritzbox-ipv6-1-de.png) +![Screenshot der Fritz!Box IPv6 Adressen Einstellungen](../images/routers/fritzbox-ipv6-1-de.png) -Um die neue Adressen zu erhalten, muss der Pi-hole Server kurz vom Netzwerk getrennt werden oder neu gestartet werden. -Der [vorherige Schritt](#stabile-ipv6-adresse-für-den-pi-hole) sollte wiederholt werden, um die neue ULA Adresse anzuzeigen. +Damit das Pi-hole eine ULA-Adresse erhält, muss der Pi-hole Server kurz vom Netzwerk getrennt werden oder neu gestartet werden. Die erhaltene Adresse kann man dann auf dem Pi-hole mit dem Befehl + +``` bash +ip address | grep "inet6 fd" +``` + +erhalten. Diese Adresse wird im folgenden Abschnitt verwendet. ### Pi-hole als DNS Server verteilen Nun kann die IPv6 Adresse des Pi-hole als "Lokaler DNSv6-Server" in -```bash +``` plain Heimnetz/Netzwerk/Netzwerkeinstellungen/IP-Adressen/IPv6-Konfiguration/DNSv6-Server im Heimnetz ``` eingetragen werden. > Hinweis: -Es wird empfohlen "DNSv6-Server auch über Router Advertisement bekanntgeben (RFC 5006)" auszuwählen. +Es ist empfehlenswert "DNSv6-Server auch über Router Advertisement bekanntgeben (RFC 5006)" auszuwählen. -![Screenshot der Fritz!Box IPv6 Adressen Einstellungen](../images/fritzbox-ipv6-2-de.png) +![Screenshot der Fritz!Box IPv6 Adressen Einstellungen](../images/routers/fritzbox-ipv6-2-de.png) diff --git a/docs/routers/fritzbox.md b/docs/routers/fritzbox.md index 36866f50..ab0a641a 100644 --- a/docs/routers/fritzbox.md +++ b/docs/routers/fritzbox.md @@ -14,7 +14,7 @@ Some of the following settings might be visible only if advanced settings are en Using this configuration, all clients will get Pi-hole's IP offered as DNS server when they request a DHCP lease from your Fritz!Box. DNS queries take the following path -```bash +``` plain Client -> Pi-hole -> Upstream DNS Server ``` @@ -24,7 +24,7 @@ Client -> Pi-hole -> Upstream DNS Server To set it up, enter Pi-hole's IP as "Local DNS server" in -```bash +``` plain Home Network/Network/Network Settings/IP Addresses/IPv4 Configuration/Home Network ``` @@ -40,13 +40,13 @@ Now you should see individual clients in Pi-hole's web dashboard. With this configuration, Pi-hole is also used by the Fritz!Box itself as an upstream DNS server. DNS queries take the following path -```bash +``` plain (Clients) -> Fritz!Box -> Pi-hole -> Upstream DNS Server ``` To set it up, enter Pi-hole's IP as "Preferred DNSv4 server" **and** "Alternative DNSv4 server" in -```bash +``` plain Internet/Account Information/DNS server ``` @@ -61,7 +61,7 @@ If only this configuration is used, you won't see individual clients in Pi-hole' There is no option to set the DNS server for the guest network in -```bash +``` plain Home Network/Network/Network Settings/IP Addresses/IPv4 Configuration/Guest Network ``` @@ -89,74 +89,36 @@ The following settings must be made: Using this configuration, your Fritz!Box will offer Pi-hole's IPv6 as local DNS server to its clients via DHCPv6 as well as Router Advertisement (RA/RDNSS, SLAAC). -### Stable IPv6 address for your Pi-hole +### Enable ULA addresses -The following section will help you picking a suitable IPv6 address of your Pi-hole. -To show all IPv6 addresses currently in use by your main network interface, open a terminal, substitute `eth0` with your main interface name (or omit) and execute the command - -```bash -ip -6 address show eth0 -``` - -The output should look like this but with different addresses - -```bash -$ ip -6 address show eth0 -2: eth0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 - inet6 fd6f:95dc:3a80:e9b1:503e:b05a:21dc:cf0c/64 scope global temporary dynamic - valid_lft 7159sec preferred_lft 3559sec - inet6 fd6f:95dc:3a80:e9b1:4bc3:7bff:fe67:c175/64 scope global dynamic mngtmpaddr noprefixroute - valid_lft 7159sec preferred_lft 3559sec - inet6 2001:db8::1c5e:22fe:490c:1c31/64 scope global temporary dynamic - valid_lft 7159sec preferred_lft 3559sec - inet6 2001:db8::4bc3:7bff:fe67:c175/64 scope global dynamic mngtmpaddr noprefixroute - valid_lft 7159sec preferred_lft 3559sec - inet6 fe80::4bc3:7bff:fe67:c175/64 scope link noprefixroute - valid_lft forever preferred_lft forever -``` - -When picking an IPv6 address from that list: - -* avoid global unicast addresses (GUA) (range `2000::/3`) - Your ISP controls your GUA IPv6 prefix it, so it may change, either regularly or on router restarts. - In this example, don't use the third and fourth address, starting with `2001:` -* avoid Privacy Extension (RFC 4941) addresses which are marked with `temporary` - The interface identifier portion of an IPv6 address is designed to change regularly, on some systems as often as every hour. - In this example, avoid the first and the third address. -* prefer unique local addresses (ULA) (range `fd00::/8`) over the link-local address (range `fe80::/10`) - You can control the ULA prefix and it is static. The later is only valid on a link and cannot be routed. - This can be fine for simple home networks, but will break once packets are routed (like Docker, some WiFi access points, L3 switches, ...). - -In this example, these two addresses are usable; `fd6f:95dc:3a80:e9b1:4bc3:7bff:fe67:c175` and `fe80::4bc3:7bff:fe67:c175` (with care). - -If your FritzBox doesn't issue an IPv6 ULA prefix yet, refer to the following step which helps you configure an ULA prefix. - -### (Optional) Enable ULA addresses - -Unique local addresses (ULA) are local IPv6 addresses which are not routed on the internet. They are comparable to the IPv4 private network ranges. +Unique local addresses (ULA) are local IPv6 addresses which are not routed on the internet. They are comparable to the IPv4 private network ranges (such as `192.168.x.y`). To enable ULA addresses, select "Always assign unique local addresses (ULA)" in -```bash +``` plain Home Network/Network/Network Settings/IP Addresses/IPv6 Addresses/Unique Local Addresses ``` > Note: It is recommended to change the ULA prefix in order to prevent collisions with other networks. -You should generate the first 40 bits according to RFC4193 or use a simple online generator, like [unique-local-ipv6.com](https://www.unique-local-ipv6.com/). -The remaining 16 bits are the subnet id and are free to choose. +You should generate the first 40 bits according to RFC4193 or use a simple online generator, like [unique-local-ipv6.com](https://www.unique-local-ipv6.com/). The remaining 16 bits are the subnet id and are free to choose. Select "Set ULA prefix manually" and enter a custom prefix. ![Screenshot of Fritz!Box IPv6 Addresses Settings](../images/routers/fritzbox-ipv6-1.png) -To obtain the new address, reconnect or reboot your Pi-hole server. -Go back to the [previous step](#stable-ipv6-address-for-your-pi-hole) to display your newly created ULA address. +To obtain the new address, reconnect or reboot your Pi-hole server. The obtained ULA address of your Pi-hole can be seen when running the command + +``` bash +ip address | grep "inet6 fd" +``` + +on your Pi-hole. This address will be used in the following section. ### Distribute Pi-hole as DNS server It is now possible to enter Pi-hole's stable IPv6 address as "Local DNSv6 server" in -```bash +``` plain Home Network/Network/Network Settings/IP Addresses/IPv6 Addresses/DNSv6 Server in the Home Network ``` From 7c1cb55e1cd544a7466ee78c528315d52d8e986e Mon Sep 17 00:00:00 2001 From: DL6ER Date: Fri, 30 Dec 2022 07:50:27 +0100 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: yubiuser Signed-off-by: DL6ER --- docs/routers/fritzbox-de.md | 12 ++++++------ docs/routers/fritzbox.md | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/routers/fritzbox-de.md b/docs/routers/fritzbox-de.md index 1bb7874b..fac90c92 100644 --- a/docs/routers/fritzbox-de.md +++ b/docs/routers/fritzbox-de.md @@ -104,10 +104,10 @@ Zum aktivieren, wähle "Unique Local Addresses (ULA) immer zuweisen" aus in Heimnetz/Netzwerk/Netzwerkeinstellungen/IP-Adressen/IPv6-Konfiguration/Unique Local Addresses ``` -> Hinweis: -Es wird empfohlen, das ULA-Präfix zu ändern, um Kollisionen mit anderen Netzen zu vermeiden. -Die ersten 40 Bits sollten gemäß RFC4193 oder durch einen einfachen Online-Generator, wie [unique-local-ipv6.com](https://www.unique-local-ipv6.com/), erzeugt werden. Die restlichen 16 Bits sind die Subnetz-ID und können frei gewählt werden. -Nach dem Auswählen von "ULA-Präfix manuell festlegen" kann man sein eigenes Präfix einstellen. +!!! note "Hinweis" + Es wird empfohlen, das ULA-Präfix zu ändern, um Kollisionen mit anderen Netzen zu vermeiden. + Die ersten 40 Bits sollten gemäß RFC4193 oder durch einen einfachen Online-Generator, wie [unique-local-ipv6.com](https://www.unique-local-ipv6.com/), erzeugt werden. Die restlichen 16 Bits sind die Subnetz-ID und können frei gewählt werden. + Nach dem Auswählen von "ULA-Präfix manuell festlegen" kann man sein eigenes Präfix einstellen. ![Screenshot der Fritz!Box IPv6 Adressen Einstellungen](../images/routers/fritzbox-ipv6-1-de.png) @@ -129,7 +129,7 @@ Heimnetz/Netzwerk/Netzwerkeinstellungen/IP-Adressen/IPv6-Konfiguration/DNSv6-Ser eingetragen werden. -> Hinweis: -Es ist empfehlenswert "DNSv6-Server auch über Router Advertisement bekanntgeben (RFC 5006)" auszuwählen. +!!! note "Hinweis" + Es ist empfehlenswert "DNSv6-Server auch über Router Advertisement bekanntgeben (RFC 5006)" auszuwählen. ![Screenshot der Fritz!Box IPv6 Adressen Einstellungen](../images/routers/fritzbox-ipv6-2-de.png) diff --git a/docs/routers/fritzbox.md b/docs/routers/fritzbox.md index ab0a641a..9ab6f78c 100644 --- a/docs/routers/fritzbox.md +++ b/docs/routers/fritzbox.md @@ -99,10 +99,10 @@ To enable ULA addresses, select "Always assign unique local addresses (ULA)" in Home Network/Network/Network Settings/IP Addresses/IPv6 Addresses/Unique Local Addresses ``` -> Note: -It is recommended to change the ULA prefix in order to prevent collisions with other networks. -You should generate the first 40 bits according to RFC4193 or use a simple online generator, like [unique-local-ipv6.com](https://www.unique-local-ipv6.com/). The remaining 16 bits are the subnet id and are free to choose. -Select "Set ULA prefix manually" and enter a custom prefix. +!!! note + It is recommended to change the ULA prefix in order to prevent collisions with other networks. + You should generate the first 40 bits according to RFC4193 or use a simple online generator, like [unique-local-ipv6.com](https://www.unique-local-ipv6.com/). The remaining 16 bits are the subnet id and are free to choose. + Select "Set ULA prefix manually" and enter a custom prefix. ![Screenshot of Fritz!Box IPv6 Addresses Settings](../images/routers/fritzbox-ipv6-1.png) @@ -122,7 +122,7 @@ It is now possible to enter Pi-hole's stable IPv6 address as "Local DNSv6 server Home Network/Network/Network Settings/IP Addresses/IPv6 Addresses/DNSv6 Server in the Home Network ``` -> Note: -It is recommended to select "Also announce DNSv6 server via router advertisement (RFC 5006)". +!!! note + It is recommended to select "Also announce DNSv6 server via router advertisement (RFC 5006)". ![Screenshot of Fritz!Box IPv6 Addresses Settings](../images/routers/fritzbox-ipv6-2.png)