Zum Inhalt springen

IPv6/Priorisierung

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  LPIC101/101.3 Runlevel wechseln » netstat » Reverse Proxy » ssh » IPv6/Priorisierung

IPv6/Priorisierung - Beschreibung

Beschreibung

IPv6/Priorisierung

Linux

Windows

IPv6 ist ein integraler Bestandteil von Windows

  • Es ist verlockend, IPv6 abzuschalten

Linux

Windows

IPv6 ist ein integraler Bestandteil von Windows
  • Es ist verlockend, IPv6 unter Windows zu deaktivieren, insbesondere in Heimnetzwerken
  • Dies kann eine Reihe von Nebenwirkungen haben, die zu Fehlverhalten von Anwendungen und Prozessen führen können
  • Microsoft empfiehlt ausdrücklich nicht, IPv6 zu deaktivieren
  • Der beste Weg, um sicherzustellen, dass Ihr Windows-Computer IPv4 verwendet, besteht darin, den Vorrang der IPv6-Präfix-Richtlinie zu ändern
Es gibt zwei Möglichkeiten, dies zu tun
  1. Erstellen Sie einen Registrierungseintrag, um IPv4 gegenüber IPv6 zu bevorzugen
  2. Direkte Änderung der IPv6-Präfix-Richtlinien, um IPv4 gegenüber IPv6 zu bevorzugen

Registry-Eintrag

Sie müssen Ihren Computer neu starten, damit die Änderung wirksam wird
  • Melden Sie sich als Administrator an Ihrem Computer an
  • Starten Sie den Registrierungseditor (regedt32.exe)
  • Fügen Sie einen Registrierungsschlüssel gemäß dem unten stehenden Screenshot hinzu und starten Sie den Computer neu, damit die Änderung wirksam wird
Um diese Änderung rückgängig zu machen, löschen Sie einfach den Registrierungseintrag und starten Sie den Computer neu
Ort: HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameter
Schlüssel: DisabledComponents
Typ: REG_DWORD
Wert: 0x20Prefer IPv5 over IPv6 DisabledComponents

IPv6-Präfix-Richtlinien

Ändern der IPv6-Präfix-Richtlinien

Dies ist etwas komplizierter, aber Sie müssen Ihren Computer nicht neu starten, damit die Änderungen wirksam werden

Öffnen Sie eine erweiterte Eingabeaufforderung und geben Sie ein

netsh interface ipv6 show prefixpolicies
Precedence Label Prefix
---------- ----- --------------------------------
50 0 ::1/128
40 1 ::/0
35 4 ::ffff:0:0/96
30 2 2002::/16
5 5 2001::/32
3 13 fc00::/7
1 11 fec0::/10
1 12 3ffe::/16
1 3 ::/96
Die erste Zeile mit einer Priorität von 50 ist die IPv6-Localhost-Adresse
  • Die zweite Zeile mit einer Priorität von 40 enthält alle (globalen) IPv6-Unicast-Adressen
  • Die dritte Zeile mit einer Priorität von 35 sind alle IPv4-zu-IPv6-zugeordneten Adressen
  • Eine vollständige Liste der IPv6-Präfixe finden Sie hier
Rangfolge ändern

Um die Rangfolge zu ändern, müssen Sie die Rangfolge aller Präfix-Richtlinien neu ordnen, um sicherzustellen, dass die IPv4-zu-IPv6-gemappten Adressen die höchste Priorität haben

  • Es müssen alle Präfix-Richtlinien eingegeben werden
  • Je höher der Wert des Präfixes ist, desto mehr wird es bevorzugt

Geben Sie daher in der erweiterten Eingabeaufforderung Folgendes ein oder schneiden Sie es aus und fügen Sie es ein:

netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 50 0
netsh interface ipv6 set prefixpolicy ::1/128 40 1
netsh interface ipv6 set prefixpolicy ::/0 30 2
netsh interface ipv6 set prefixpolicy 2002::/16 20 3
netsh interface ipv6 set prefixpolicy 2001::/32 5 5
netsh interface ipv6 set prefixpolicy fc00::/7 3 13
netsh interface ipv6 set prefixpolicy fec0::/10 1 11
netsh interface ipv6 set prefixpolicy 3ffe::/16 1 12
netsh interface ipv6 set prefixpolicy ::/96 1 4
Um zu bestätigen, dass die Änderungen wirksam geworden sind, geben Sie Folgendes ein
netsh interface ipv6 show prefixpolicies
Precedence Label Prefix
---------- ----- --------------------------------
50 0 ::ffff:0:0/96
40 1 ::1/128
30 2 ::/0
20 3 2002::/16
5 5 2001::/32
3 13 fc00::/7
1 11 fec0::/10
1 12 3ffe::/16
1 4 ::/96

Wenn Sie nun einen Host anpingen (z. B.), wird die IPv4-Adresse (d. h. 127.0.0.1) der IPv6-Adresse (d. h. ::1) vorgezogen

Beispiel
ping localhost
Pinging WORKSTATION [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Um diese Änderung rückgängig zu machen, setzen Sie einfach die Rangfolge wie folgt zurück
netsh interface ipv6 reset


Anhang

Siehe auch

Dokumentation

Links

Projekt

Weblinks

  1. https://kb.firedaemon.com/support/solutions/articles/4000160803-prioritising-ipv4-over-ipv6-on-windows-10-and-11
  2. https://learn.microsoft.com/de-de/troubleshoot/windows-server/networking/configure-ipv6-in-windows

, insbesondere in Heimnetzwerken

  • Dies kann eine Reihe von Nebenwirkungen haben, die zu Fehlverhalten von Anwendungen und Prozessen führen können
  • Microsoft empfiehlt ausdrücklich nicht, IPv6 zu deaktivieren
  • Der beste Weg, um sicherzustellen, dass Ihr Windows-Computer IPv4 verwendet, besteht darin, den Vorrang der IPv6-Präfix-Richtlinie zu ändern
Es gibt zwei Möglichkeiten, dies zu tun
  1. Erstellen Sie einen Registrierungseintrag, um IPv4 gegenüber IPv6 zu bevorzugen
  2. Direkte Änderung der IPv6-Präfix-Richtlinien, um IPv4 gegenüber IPv6 zu bevorzugen

Registry-Eintrag

Sie müssen Ihren Computer neu starten, damit die Änderung wirksam wird
  • Melden Sie sich als Administrator an Ihrem Computer an
  • Starten Sie den Registrierungseditor (regedt32.exe)
  • Fügen Sie einen Registrierungsschlüssel gemäß dem unten stehenden Screenshot hinzu und starten Sie den Computer neu, damit die Änderung wirksam wird
Um diese Änderung rückgängig zu machen, löschen Sie einfach den Registrierungseintrag und starten Sie den Computer neu
Ort: HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameter
Schlüssel: DisabledComponents
Typ: REG_DWORD
Wert: 0x20Prefer IPv5 over IPv6 DisabledComponents

IPv6-Präfix-Richtlinien

Ändern der IPv6-Präfix-Richtlinien

Dies ist etwas komplizierter, aber Sie müssen Ihren Computer nicht neu starten, damit die Änderungen wirksam werden

Öffnen Sie eine erweiterte Eingabeaufforderung und geben Sie ein

netsh interface ipv6 show prefixpolicies
Precedence Label Prefix
---------- ----- --------------------------------
50 0 ::1/128
40 1 ::/0
35 4 ::ffff:0:0/96
30 2 2002::/16
5 5 2001::/32
3 13 fc00::/7
1 11 fec0::/10
1 12 3ffe::/16
1 3 ::/96
Die erste Zeile mit einer Priorität von 50 ist die IPv6-Localhost-Adresse
  • Die zweite Zeile mit einer Priorität von 40 enthält alle (globalen) IPv6-Unicast-Adressen
  • Die dritte Zeile mit einer Priorität von 35 sind alle IPv4-zu-IPv6-zugeordneten Adressen
  • Eine vollständige Liste der IPv6-Präfixe finden Sie hier
Rangfolge ändern

Um die Rangfolge zu ändern, müssen Sie die Rangfolge aller Präfix-Richtlinien neu ordnen, um sicherzustellen, dass die IPv4-zu-IPv6-gemappten Adressen die höchste Priorität haben

  • Es müssen alle Präfix-Richtlinien eingegeben werden
  • Je höher der Wert des Präfixes ist, desto mehr wird es bevorzugt

Geben Sie daher in der erweiterten Eingabeaufforderung Folgendes ein oder schneiden Sie es aus und fügen Sie es ein:

netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 50 0
netsh interface ipv6 set prefixpolicy ::1/128 40 1
netsh interface ipv6 set prefixpolicy ::/0 30 2
netsh interface ipv6 set prefixpolicy 2002::/16 20 3
netsh interface ipv6 set prefixpolicy 2001::/32 5 5
netsh interface ipv6 set prefixpolicy fc00::/7 3 13
netsh interface ipv6 set prefixpolicy fec0::/10 1 11
netsh interface ipv6 set prefixpolicy 3ffe::/16 1 12
netsh interface ipv6 set prefixpolicy ::/96 1 4
Um zu bestätigen, dass die Änderungen wirksam geworden sind, geben Sie Folgendes ein
netsh interface ipv6 show prefixpolicies
Precedence Label Prefix
---------- ----- --------------------------------
50 0 ::ffff:0:0/96
40 1 ::1/128
30 2 ::/0
20 3 2002::/16
5 5 2001::/32
3 13 fc00::/7
1 11 fec0::/10
1 12 3ffe::/16
1 4 ::/96

Wenn Sie nun einen Host anpingen (z. B.), wird die IPv4-Adresse (d. h. 127.0.0.1) der IPv6-Adresse (d. h. ::1) vorgezogen

Beispiel
ping localhost
Pinging WORKSTATION [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Um diese Änderung rückgängig zu machen, setzen Sie einfach die Rangfolge wie folgt zurück
netsh interface ipv6 reset


Anhang

Siehe auch

Dokumentation

Links

Projekt

Weblinks

  1. https://kb.firedaemon.com/support/solutions/articles/4000160803-prioritising-ipv4-over-ipv6-on-windows-10-and-11
  2. https://learn.microsoft.com/de-de/troubleshoot/windows-server/networking/configure-ipv6-in-windows

Installation

Anwendung

Problembehebung

Konfiguration

Dateien

Datei Beschreibung


Anhang

Siehe auch


Dokumentation

Man-Page
  1. prep(1)
Info-Pages

Links

Projekt

Weblinks



TMP


TMP

IPv4 gegenüber IPv6 in Dual-Stack-Umgebung bevorzugen
  • Probleme verhindern, wenn nur IPv4 existiert

Unter Linux gibt es eine Funktion des IPv6-Stacks, die es erlaubt, IPv4 als IPv6-Adresse mit einer IPv6-gemappten IPv4-Adresse (::ffff/96) zu verwenden

  • Dadurch können IPv6-fähige Anwendungen nur einen einzigen Socket verwenden, um sowohl IPv4 als auch IPv6 zu akzeptieren oder zu verbinden

Standardmäßig, wenn Sie sowohl IPv4 als auch natives IPv6 haben

  • Die Linux-Systemanwendung (glibc) wird standardmäßig IPv6 verwenden, wenn es vorhanden ist, da getaddrinfo() zuerst IPv6 zurückgibt
  • Dies wird durch die IPv6-Adressauswahlpräferenz der glibc für getaddrinfo() in /etc/gai.conf gesteuert. (Hinweis: einige Anwendungen können einen Mechanismus haben, um zu entscheiden, welche Adresse zu verwenden ist, der nicht von getaddrinfo() bereitgestellt wird)

/etc/gai.conf steuert die Adressauswahl nach Label und Einstellungen

  • Dies ist ein Teil davon in Gentoo Linux
# Configuration for getaddrinfo(3)
#
# So far only configuration for the destination address sorting is needed
# RFC 3484 governs the sorting
  • But the RFC also says that system
# administrators should be able to overwrite the defaults
  • This can be
# achieved here
#
# All lines have an initial identifier specifying the option followed by
# up to two values
  • Information specified in this file replaces the
# default information
  • Complete absence of data of one kind causes the
# appropriate default information to be used
  • The supported commands include:
#
# reload
# If set to yes, each getaddrinfo(3) call will check whether this file
# changed and if necessary reload
  • This option should not really be
# used
  • There are possible runtime problems
  • The default is no
#
# label
# Add another rule to the RFC 3484 label table
  • See section 2.1 in
# RFC 3484
  • The default is:
#
#label ::1/128 0
#label ::/0 1
#label 2002::/16 2
#label ::/96 3
#label ::ffff:0:0/96 4
#label fec0::/10 5
#label fc00::/7 6
#label 2001:0::/32 7
#
# This default differs from the tables given in RFC 3484 by handling
# (now obsolete) site-local IPv6 addresses and Unique Local Addresses
# The reason for this difference is that these addresses are never
# NATed while IPv4 site-local addresses most probably are
  • Given
# the precedence of IPv6 over IPv4 (see below) on machines having only
# site-local IPv4 and IPv6 addresses a lookup for a global address would
# see the IPv6 be preferred
  • The result is a long delay because the
# site-local IPv6 addresses cannot be used while the IPv4 address is
# (at least for the foreseeable future) NATed
  • We also treat Teredo
# tunnels special
#
# precedence
# Add another rule to the RFC 3484 precedence table
  • See section 2.1
# and 10.3 in RFC 3484
  • The default is:
#
#precedence ::1/128 50
#precedence ::/0 40
#precedence 2002::/16 30
#precedence ::/96 20
#precedence ::ffff:0:0/96 10
#
# For sites which prefer IPv4 connections change the last line to
#
#precedence ::ffff:0:0/96 100
#
# scopev4
# Add another rule to the RFC 3484 scope table for IPv4 addresses
# The definitions in RFC 3484 are equivalent to:
#
#scopev4 ::ffff:169.254.0.0/112 2
#scopev4 ::ffff:127.0.0.0/104 2
#scopev4 ::ffff:10.0.0.0/104 5
#scopev4 ::ffff:172.16.0.0/108 5
#scopev4 ::ffff:192.168.0.0/112 5
#scopev4 ::ffff:0.0.0.0/96 14
#
# For sites which use site-local IPv4 addresses behind NAT there is
# the problem that even if IPv4 addresses are preferred they do not
# have the same scope and are therefore not sorted first
  • To change
# this use only these rules:
#
scopev4 ::ffff:169.254.0.0/112 2
scopev4 ::ffff:127.0.0.0/104 2
scopev4 ::ffff:0.0.0.0/96 14

In einigen Netzwerken kann diese Annahme zu Problemen führen, da die meisten IPv6-Verbindungen derzeit nicht so gut sind wie IPv4 (höhere Latenzzeiten und weitere)

  • Manchmal kann es sogar zu ernsthaften Problemen kommen, da IPv6 link-local (Adressen, die mit ff80:: beginnen) als gültige IPv6-Adresse betrachtet werden
  • Da die aktuellen Linux-Distributionen mit aktiviertem IPv6 ausgeliefert werden (ipv6-Module geladen oder einkompiliert), funktionieren einige Anwendungen nicht, wenn Sie keine IPv6-Konnektivität haben oder zumindest nur langsam eine Verbindung herstellen können, weil IPv6 zuerst versucht wurde und die Zeit abgelaufen ist

Wie Sie im Kommentar sehen Wenn Sie IPv4 gegenüber IPv6 bevorzugen wollen, ändern Sie einfach die Prioritätszeile von ::ffff:0:0/96 von 10 auf 100 (Wenn Sie keine /etc/gai.conf haben, erstellen Sie sie und fügen Sie nur diese Zeile ein, es sollte funktionieren)

Aber

  • Einige andere Standardkonfigurationen der glibc auf einigen Distributionen haben immer noch Probleme mit /etc/hosts
  • Stellen Sie sicher, dass Sie diese Zeile in [b]/etc/host.conf[/b] haben, wenn Sie wollen, dass Dual Stack so funktioniert, wie es sollte
multi on

Diese Zeile ist erforderlich, damit die Glibc bei der Verwendung von /etc/hosts mehrere Adressen zurückgeben kann, da sie sonst nur die erste Übereinstimmung zurückgibt

  • Anwendungen, die nur IPv4 oder IPv6 verwenden, werden Probleme haben
  • Nehmen wir an, Sie haben '::1 localhost' an erster Stelle und '127.0.0.1 localhost' an zweiter Stelle
  • ping localhost wird fehlschlagen, wenn Sie nicht 'multi on' in /etc/host.conf haben. (Dies wird zu Leistungsproblemen führen, wenn Sie große /etc/hosts haben, aber dies ist der einzige Weg, bis glibc Adress-Hinting auf /etc/hosts implementiert wird)

Außerdem sind sich viele Anwendungen nicht bewusst, dass sie, wenn sowohl IPv4 als auch IPv6 vorhanden sind, nicht mehrere Versuche (Fallback) unter Verwendung verschiedener Adressfamilien unternehmen (wenn die Glibc also mehrere Adressen zurückgibt)

  • Manchmal tun sie es, aber Sie müssen es explizit konfigurieren, um das zu tun

Eine Anwendung, bei der ich dieses Problem gefunden habe, ist [b]postfix[/b], das anscheinend nicht auf eine andere Adressfamilie zurückgreifen kann, wenn mehrere Adressfamilien existieren (IPv4 und IPv6)

  • Sie müssen diese Zeile zur Postfix-Konfiguration (main.cf) hinzufügen, sonst kann es sein, dass Ihre Mails in der Bounce-Warteschlange stecken bleiben, weil sie sich nicht mit einem anderen Server über IPv6 verbinden können
smtp_address_preference=any
  1. https://sf-alpha.bjgang.org/wordpress/2012/08/linux-prefer-ipv4-over-ipv6-in-dual-stack-environment-and-prevent-problems-when-only-ipv4-exists/