Standardmäßig ist IPv6 auf CentOS/RHEL 8-Systemen aktiviert. In bestimmten Situationen kann es jedoch für einige Benutzer wünschenswert sein, die IPv6-Unterstützung zu deaktivieren. Dieser Beitrag beschreibt Schritte zum Deaktivieren von IPv6 auf einem CentOS/RHEL 8-System.
Für Systeme, die NetworkManager verwenden
Bei allen Systemen, auf denen NetworkManager ausgeführt wird, muss IPv6 auf jeder Schnittstelle mit der Option ipv6.method deaktiviert werden auf deaktiviert gesetzt . Dieser Schritt muss zusätzlich zur Deaktivierung von IPv6 mit der im nächsten Abschnitt unten gezeigten Methode durchgeführt werden.
# nmcli connection modify [Connection Name] ipv6.method "disabled"
Methode 1:Verwenden von GRUB2
1. Deaktivieren Sie das integrierte IPv6-Kernelmodul. Bearbeiten Sie /etc/default/grub und hängen Sie ipv6.disable=1 an zu GRUB_CMDLINE_LINUX wie unten gezeigt:
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root ipv6.disable=1"
2. Führen Sie grub2-mkconfig aus Befehl zum Neugenerieren der Datei grub.cfg:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Führen Sie alternativ auf UEFI-Systemen Folgendes aus:
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
3. Starten Sie das System neu, um die IPv6-Unterstützung zu deaktivieren.
# systemctl reboot
Methode 2:Verwenden von sysctl
Alternativ kann dies auch über die sysctl-Einstellungen erfolgen. Bitte beachten Sie, dass dies SSH Xforwarding unterbricht, es sei denn, sshd_config enthält AddressFamily inet.
1. Erstellen Sie eine neue Datei namens /etc/sysctl.d/ipv6.conf und fügen Sie die folgenden Optionen hinzu:
# vi /etc/sysctl.d/ipv6.conf # First, disable for all interfaces net.ipv6.conf.all.disable_ipv6 = 1 # If using the sysctl method, the protocol must be disabled all specific interfaces as well. net.ipv6.conf..disable_ipv6 = 1
2. Die neuen Einstellungen müssten dann neu geladen werden mit:
# sysctl -p /etc/sysctl.d/ipv6.conf
3. Erstellen Sie eine Sicherungskopie des initramfs, bevor Sie Änderungen daran vornehmen:
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img
4. Erstellen Sie dann das anfängliche RAM-Disk-Image neu mit:
# dracut -f -v
5. Überprüfung der Dateiaufnahme:
# lsinitrd /boot/initramfs-[version].img | grep 'etc/sysctl.d/ipv6.conf'
6. Kommentieren Sie alle in /etc/hosts gefundenen IPv6-Adressen aus, einschließlich ::1 localhost address. Erstellen Sie eine Sicherungskopie der Datei, bevor Sie Änderungen vornehmen:
# cp -p /etc/hosts /etc/hosts.disableipv6 # sed -i 's/^[[:space:]]*::/#::/' /etc/hosts
Verifizierung
1. Der aktuelle Status der Option zum Deaktivieren des IPv6-Moduls kann über sysfs:
eingesehen werden# cat /sys/module/ipv6/parameters/disable 1
2. Der aktuelle Zustand der sysctl disable_ipv6 kann mit dem sysctl-Befehl eingesehen werden:
# sysctl -a 2>/dev/null | grep disable_ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.eth0.disable_ipv6 = 0
3. So listen Sie alle dem System zugewiesenen IPv6-Adressen auf:
# ip -6 addr
4. Um IPv6-TCP- oder UDP-Sockets aufzulisten, kann etwa Folgendes verwendet werden:
# ss -6 -pan
Das Fazit
Falls Sie während der Verwendung von Methode 1 (GRUB2) irgendwelche von Selinux verweigerten Meldungen in der audit.log-Datei bemerken, wie z Methode 2. Um die Ausgabe von rpc*-Meldungen nach dem Deaktivieren von IPv6 zu verhindern, bearbeiten Sie optional /etc/netconfig für die Zeilen, die mit udp6 und tcp6 beginnen; Ändern Sie das „v“ in der dritten Spalte in „-“ (Bindestrich/Bindestrich).
So aktivieren Sie IPv6 in CentOS/RHEL 8