Deaktivieren des Annehmens von RA: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Windows= *netsh interface ipv6 set interface "Schnittstellenname" routerdiscovery=disable =Linux= ;Deaktivieren *sudo sysctl -w net.ipv6.conf.interface.accept…“)
 
 
Zeile 1: Zeile 1:
 +
=Deaktivieren des Annehmens von Router Advertisements (RA)=
 +
 
=Windows=
 
=Windows=
−
*netsh interface ipv6 set interface "Schnittstellenname" routerdiscovery=disable
+
Alle Befehle in einer Konsole mit Administratorrechten ausführen. Die Einstellungen sind standardmäßig persistent.
 +
 
 +
==netsh==
 +
;Deaktivieren
 +
*netsh interface ipv6 set interface "Ethernet" routerdiscovery=disabled
 +
;Wieder aktivieren
 +
*netsh interface ipv6 set interface "Ethernet" routerdiscovery=enabled
 +
;Kontrolle (Zeile "Routererkennung" / "Router Discovery")
 +
*netsh interface ipv6 show interface "Ethernet"
 +
 
 +
==PowerShell==
 +
;Schnittstellen und aktuellen Zustand anzeigen
 +
*Get-NetIPInterface -AddressFamily IPv6 | Format-Table InterfaceAlias,InterfaceIndex,RouterDiscovery
 +
;Deaktivieren
 +
*Set-NetIPInterface -InterfaceAlias "Ethernet" -AddressFamily IPv6 -RouterDiscovery Disabled
 +
;Deaktivieren auf allen Schnittstellen
 +
*Get-NetIPInterface -AddressFamily IPv6 | Set-NetIPInterface -RouterDiscovery Disabled
 +
;Wieder aktivieren
 +
*Set-NetIPInterface -InterfaceAlias "Ethernet" -AddressFamily IPv6 -RouterDiscovery Enabled
 +
;Bereits gelernte Default-Route entfernen
 +
*Remove-NetRoute -InterfaceAlias "Ethernet" -AddressFamily IPv6 -DestinationPrefix "::/0" -Confirm:$false
 +
;Kontrolle der Default-Route
 +
*Get-NetRoute -AddressFamily IPv6 -DestinationPrefix "::/0"
 +
 
 
=Linux=
 
=Linux=
−
;Deaktivieren
+
==sysctl (Kernel)==
−
*sudo sysctl -w net.ipv6.conf.interface.accept_ra=0
+
Gilt nur, wenn die Schnittstelle nicht von NetworkManager, systemd-networkd oder netplan verwaltet wird (siehe unten).
 +
;Deaktivieren (sofort, nicht persistent)
 +
*sudo sysctl -w net.ipv6.conf.eth0.accept_ra=0
 +
;Deaktivieren für alle später hinzukommenden Schnittstellen
 +
*sudo sysctl -w net.ipv6.conf.default.accept_ra=0
 
;Deaktivieren auch nach einem Neustart
 
;Deaktivieren auch nach einem Neustart
−
*echo net.ipv6.conf.interface.accept_ra = 0 > /etc/sysctl.conf
+
*echo "net.ipv6.conf.eth0.accept_ra = 0" | sudo tee /etc/sysctl.d/90-no-ra.conf
 +
*echo "net.ipv6.conf.default.accept_ra = 0" | sudo tee -a /etc/sysctl.d/90-no-ra.conf
 +
*sudo sysctl --system
 +
;Achtung
 +
*echo ... > /etc/sysctl.conf überschreibt die komplette Datei! Besser eine eigene Datei unter /etc/sysctl.d/ anlegen.
 +
;Kontrolle
 +
*sysctl net.ipv6.conf.eth0.accept_ra
 +
;Bereits gelernte Routen entfernen
 +
*sudo ip -6 route flush proto ra
 +
;Bedeutung der Werte von accept_ra
 +
*0 = RA ignorieren
 +
*1 = RA annehmen, aber nur wenn forwarding=0 (normaler Host)
 +
*2 = RA annehmen, auch wenn forwarding=1 (Router)
 +
;Nur SLAAC-Adressen abschalten, Default-Route per RA aber behalten
 +
*sudo sysctl -w net.ipv6.conf.eth0.autoconf=0
 +
 
 +
==NetworkManager (Rocky, RHEL, Fedora)==
 +
NetworkManager verarbeitet RA selbst im Userspace und setzt accept_ra im Kernel auf 0. Ein sysctl-Eintrag hat hier also keine Wirkung, entscheidend ist ipv6.method.
 +
;Statische Konfiguration, RA wird ignoriert
 +
*nmcli connection modify ens18 ipv6.method manual ipv6.addresses 2001:db8:1::10/64 ipv6.gateway 2001:db8:1::1
 +
*nmcli connection up ens18
 +
;Automatische Adresse behalten, aber keine Routen aus RA übernehmen
 +
*nmcli connection modify ens18 ipv6.ignore-auto-routes yes
 +
*nmcli connection up ens18
 +
;IPv6 auf der Verbindung komplett abschalten
 +
*nmcli connection modify ens18 ipv6.method disabled
 +
*nmcli connection up ens18
 +
;Kontrolle
 +
*nmcli -f ipv6.method,ipv6.addresses,ipv6.gateway,ipv6.ignore-auto-routes connection show ens18
 +
 
 +
==systemd-networkd==
 +
;In der .network-Datei, z.B. /etc/systemd/network/10-eth0.network
 +
<pre>
 +
[Match]
 +
Name=eth0
 +
 
 +
[Network]
 +
Address=2001:db8:1::10/64
 +
Gateway=2001:db8:1::1
 +
IPv6AcceptRA=no
 +
</pre>
 +
;Übernehmen
 +
*sudo networkctl reload
 +
*sudo networkctl reconfigure eth0
 +
 
 +
==Debian ifupdown (/etc/network/interfaces)==
 +
<pre>
 +
iface eth0 inet6 static
 +
    address 2001:db8:1::10/64
 +
    gateway 2001:db8:1::1
 +
    accept_ra 0
 +
</pre>
 +
;Übernehmen
 +
*sudo ifdown eth0 && sudo ifup eth0
 +
 
 +
==Netplan (Ubuntu)==
 +
;z.B. /etc/netplan/01-netcfg.yaml
 +
<pre>
 +
network:
 +
  version: 2
 +
  ethernets:
 +
    eth0:
 +
      accept-ra: false
 +
      addresses:
 +
        - 2001:db8:1::10/64
 +
      routes:
 +
        - to: default
 +
          via: 2001:db8:1::1
 +
</pre>
 +
;Übernehmen
 +
*sudo netplan apply
 +
 
 +
=FreeBSD / OPNsense=
 +
;Deaktivieren (sofort)
 +
*ifconfig em0 inet6 -accept_rtadv
 +
;Deaktivieren auch nach einem Neustart (/etc/rc.conf)
 +
*ifconfig_em0_ipv6="inet6 2001:db8:1::10/64 -accept_rtadv"
 +
;OPNsense
 +
*Schnittstellen -> [Interface] -> IPv6-Konfigurationstyp auf "Statisches IPv6" stellen
 +
 
 +
=Hinweis=
 +
*Das Abschalten verhindert nur das Lernen neuer Informationen. Bereits per SLAAC vergebene Adressen bleiben bis zum Ablauf ihrer Lifetime bzw. bis zum Neustart der Schnittstelle bestehen.
 +
*Hintergrund für Sicherheitskurse: Gefälschte RA (z.B. mit fake_router6 aus dem THC-IPv6-Toolkit) sind ein klassischer MITM-Angriff. Auf Switch-Ebene schützt RA-Guard.

Aktuelle Version vom 7. Oktober 2026, 06:30 Uhr

Deaktivieren des Annehmens von Router Advertisements (RA)

Windows

Alle Befehle in einer Konsole mit Administratorrechten ausführen. Die Einstellungen sind standardmäßig persistent.

netsh

Deaktivieren
  • netsh interface ipv6 set interface "Ethernet" routerdiscovery=disabled
Wieder aktivieren
  • netsh interface ipv6 set interface "Ethernet" routerdiscovery=enabled
Kontrolle (Zeile "Routererkennung" / "Router Discovery")
  • netsh interface ipv6 show interface "Ethernet"

PowerShell

Schnittstellen und aktuellen Zustand anzeigen
  • Get-NetIPInterface -AddressFamily IPv6 | Format-Table InterfaceAlias,InterfaceIndex,RouterDiscovery
Deaktivieren
  • Set-NetIPInterface -InterfaceAlias "Ethernet" -AddressFamily IPv6 -RouterDiscovery Disabled
Deaktivieren auf allen Schnittstellen
  • Get-NetIPInterface -AddressFamily IPv6 | Set-NetIPInterface -RouterDiscovery Disabled
Wieder aktivieren
  • Set-NetIPInterface -InterfaceAlias "Ethernet" -AddressFamily IPv6 -RouterDiscovery Enabled
Bereits gelernte Default-Route entfernen
  • Remove-NetRoute -InterfaceAlias "Ethernet" -AddressFamily IPv6 -DestinationPrefix "::/0" -Confirm:$false
Kontrolle der Default-Route
  • Get-NetRoute -AddressFamily IPv6 -DestinationPrefix "::/0"

Linux

sysctl (Kernel)

Gilt nur, wenn die Schnittstelle nicht von NetworkManager, systemd-networkd oder netplan verwaltet wird (siehe unten).

Deaktivieren (sofort, nicht persistent)
  • sudo sysctl -w net.ipv6.conf.eth0.accept_ra=0
Deaktivieren für alle später hinzukommenden Schnittstellen
  • sudo sysctl -w net.ipv6.conf.default.accept_ra=0
Deaktivieren auch nach einem Neustart
  • echo "net.ipv6.conf.eth0.accept_ra = 0" | sudo tee /etc/sysctl.d/90-no-ra.conf
  • echo "net.ipv6.conf.default.accept_ra = 0" | sudo tee -a /etc/sysctl.d/90-no-ra.conf
  • sudo sysctl --system
Achtung
  • echo ... > /etc/sysctl.conf überschreibt die komplette Datei! Besser eine eigene Datei unter /etc/sysctl.d/ anlegen.
Kontrolle
  • sysctl net.ipv6.conf.eth0.accept_ra
Bereits gelernte Routen entfernen
  • sudo ip -6 route flush proto ra
Bedeutung der Werte von accept_ra
  • 0 = RA ignorieren
  • 1 = RA annehmen, aber nur wenn forwarding=0 (normaler Host)
  • 2 = RA annehmen, auch wenn forwarding=1 (Router)
Nur SLAAC-Adressen abschalten, Default-Route per RA aber behalten
  • sudo sysctl -w net.ipv6.conf.eth0.autoconf=0

NetworkManager (Rocky, RHEL, Fedora)

NetworkManager verarbeitet RA selbst im Userspace und setzt accept_ra im Kernel auf 0. Ein sysctl-Eintrag hat hier also keine Wirkung, entscheidend ist ipv6.method.

Statische Konfiguration, RA wird ignoriert
  • nmcli connection modify ens18 ipv6.method manual ipv6.addresses 2001:db8:1::10/64 ipv6.gateway 2001:db8:1::1
  • nmcli connection up ens18
Automatische Adresse behalten, aber keine Routen aus RA übernehmen
  • nmcli connection modify ens18 ipv6.ignore-auto-routes yes
  • nmcli connection up ens18
IPv6 auf der Verbindung komplett abschalten
  • nmcli connection modify ens18 ipv6.method disabled
  • nmcli connection up ens18
Kontrolle
  • nmcli -f ipv6.method,ipv6.addresses,ipv6.gateway,ipv6.ignore-auto-routes connection show ens18

systemd-networkd

In der .network-Datei, z.B. /etc/systemd/network/10-eth0.network
[Match]
Name=eth0

[Network]
Address=2001:db8:1::10/64
Gateway=2001:db8:1::1
IPv6AcceptRA=no
Übernehmen
  • sudo networkctl reload
  • sudo networkctl reconfigure eth0

Debian ifupdown (/etc/network/interfaces)

iface eth0 inet6 static
    address 2001:db8:1::10/64
    gateway 2001:db8:1::1
    accept_ra 0
Übernehmen
  • sudo ifdown eth0 && sudo ifup eth0

Netplan (Ubuntu)

z.B. /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    eth0:
      accept-ra: false
      addresses:
        - 2001:db8:1::10/64
      routes:
        - to: default
          via: 2001:db8:1::1
Übernehmen
  • sudo netplan apply

FreeBSD / OPNsense

Deaktivieren (sofort)
  • ifconfig em0 inet6 -accept_rtadv
Deaktivieren auch nach einem Neustart (/etc/rc.conf)
  • ifconfig_em0_ipv6="inet6 2001:db8:1::10/64 -accept_rtadv"
OPNsense
  • Schnittstellen -> [Interface] -> IPv6-Konfigurationstyp auf "Statisches IPv6" stellen

Hinweis

  • Das Abschalten verhindert nur das Lernen neuer Informationen. Bereits per SLAAC vergebene Adressen bleiben bis zum Ablauf ihrer Lifetime bzw. bis zum Neustart der Schnittstelle bestehen.
  • Hintergrund für Sicherheitskurse: Gefälschte RA (z.B. mit fake_router6 aus dem THC-IPv6-Toolkit) sind ein klassischer MITM-Angriff. Auf Switch-Ebene schützt RA-Guard.