Published at 2023-11-22T11:30:42+01:00
Date: 2023-10-03 18:20
Modified: 2023-10-03 18:20
Category: Network Tags: arp, network, linux, offline
Slug: permanent-arp-entry
Author: Reiko Kaps
Permanente Einträge in die lokale ARP- bzw. NDP-Tabelle eines Linux-Rechners
einfügen
Aus diversen Gründen habe ich meinen Homeserver-Pi wieder gegen einen PC
getauscht: Den damit einhergehenden Mehrverbrauch an Strom minimiere ich
durch recht rigide Strommaßnahmen, die ich mittels des
Das kleine Python-Programm schickt den PC nach einer definierbaren
Zeit in den Ruhestand, überprüft aber vorab, ob eine Reihe von
Ausschlussbedingungen erfüllt sind. Dazu können bestehende SSH- oder
Samba-Verbindungen ebenso gehören wie eigene, selbstgeschrieben Tests.
Außerdem setzt das Skript Wiederaufwach-Timer, die den PC entweder in
Intervallen oder zu den Laufzeiten von Systemd-Timern aufwecken.In
meinem Setup schickt Autosuspend den PC nach 15 Minuten Untätigkeit in
den S3-Sclaf und weckt ihn etwa zum Backup externe Dienste bzw. alle 5
Stunden wieder auf.
Damit ich nicht immer ein Magic-Paket an den Rechner schicken muss,
horcht die Ethernet-Schnittstelle des PCs auf eingehende
Unicast-Pakete. Das funktioniert allerdings nur dann, wenn der
anfragende Rechner die MAC-Adresse des PCs über einen dauerhaften
Eintrag in seiner
kennt.
Unter Linux lässt sich das temporär auf der Kommandozeile mittels des
Befehls ip für IPv4 eintragen:
Der Platzhalter
SchnittstellestehtdabeifürdieNetzwerkschnittstelle, überdiederanzusprechendeRechner(Hostname)
mit seiner $MAC-Adresse zu erreichen ist. Mittels des Befehls
bekommt man übrigens sowohl die Einträge für IPv4 als auch IPv6
angezeigt:
[Befehlsausgabe ip neighbor show]{: .image-process-large-photo}
Da diese Einträge beim nächsten Boot wieder verschwinden, sollte man
diese Einträge beim Start des Netzwerks setzen - etwa mittels eines
Dispatcher-Skripts des NetworkManagers
. Diese Skripte liegen meist im Verzeichis
/etc/NetworkManager/dispatcher.d. Ein Beispiel dafür sieht etwa so aus:
Das Skript verwendet hier die Option -f, über die sich eine Datei
angeben lässt, die pro Zeile eine MAC-Adresse und den dazu gehörenden
Hostnamen enthält. Das ist pflegeleichter und flexibler, wenn es gilt
neue Einträge hinzuzufügen. Die Shell-Variable $1 enthält hier die
gerade startende ($2) Netzwerkschnittstelle.