[Frage] ARP-Befehl beim Starten der Box wird nicht eingetragen

Andi6905

Neuer User
Mitglied seit
14 Feb 2005
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich versuche 2 statische ARP-Einträge bei der Box beim hochfahren zu implementieren.

2 Wege habe ich getestet:
1. Folgende Zeilen in der debug.cfg (am Ende):
arp -i lan -s 192.168.1.2 01:02:03:04:91:2E
arp -i lan -s 192.168.1.3 01:02:03:04:93:7D

Nach dem Neustarten waren die Einträge nicht vorhanden.

2. Erstellen eines Scripts mit folgendem Inhalt:
cat > /var/tmp/arp1 << 'ENDARP'
cd /var/tmp
arp -i lan -s 192.168.1.2 01:02:03:04:91:2E
arp -i lan -s 192.168.1.3 01:02:03:04:93:7D
ENDARP
chmod +x arp1

Und starten des Scripts mit:
cd /var/tmp
./arp1

Auch hier sind nach dem Neustart die Einträge nicht vorhanden.
Wenn ich mich mit Telnet aufschalte und das Script arp1 aufrufe ist alles ok.

Meine Fritzbox ist eine 7390 mit Firmware 85.05.05.

PS:
Einen Tip mit modifizierter rc.wlan habe ich schon versucht aber nach dem Neustart ist sie wieder im Originalzustand.
 

Bejobe

Neuer User
Mitglied seit
19 Mai 2005
Beiträge
163
Punkte für Reaktionen
0
Punkte
0
Da fallen mir zwei Sachen ein zum Weitertesten:

- "sleep irgenwas" (90 Sekunden testweise vielleicht) ins Script vor die arp Aufrufe einfügen

- Am Anfang des Scripts die ersten beiden Zeilen einfügen:
#!/bin/sh
trap '' SIGHUP

Bejobe
 

Andi6905

Neuer User
Mitglied seit
14 Feb 2005
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo Bejobe,

danke für die Antwort. Leider ist das Resultat dasselbe.

Meine debug.cfg endet nun wie folgt:
cat > /var/tmp/arp1 << 'ENDARP'
#!/bin/sh
trap '' SIGHUP
cd /var/tmp
arp -i lan -s 192.168.1.29 01:02:03:04:91:2E
arp -i lan -s 192.168.1.20 01:02:03:04:93:7D
ENDARP

chmod +x arp1

sleep 90
cd /var/tmp
./arp1

Wird die arp1 über Telnet aufgerufen sind die statischen ARP-Einträge wieder vorhanden.
 

Bejobe

Neuer User
Mitglied seit
19 Mai 2005
Beiträge
163
Punkte für Reaktionen
0
Punkte
0
Weiter im Nebel stochernd:

- Mal sowas am Anfang von arp1 einfügen wie: arp > /var/tmp/arp1.info.01
- und am Ende von arp1 auch: arp > /var/tmp/arp1.info.02

Damit prüfst du ob überhaupt und mit welchem Ergebnis arp1 ausgeführt wird. Ggf gelten die in arp1 neue gesetzten Werte nur für die Umgebung von arp1 und solange arp1 läuft.

Vielleicht hilft ja: ./arp1 &

Bejobe
 
Zuletzt bearbeitet:

Andi6905

Neuer User
Mitglied seit
14 Feb 2005
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Jetzt bin ich etwas schlauer (obwohl ich die Lösung noch nicht habe)

ich habe an arp1 foldende Zeile hinzugefügt:
arp >> /var/tmp/arptest

in arptest sind die 2 Zeilen sauber vorhanden.
Beim Aufruf von arp in der Befehlszeile fehlen sie wieder.
Dabei ist es unerheblich ob arp1 mit ./arp1 oder ./arp1 & aufgerufen wird.

Andi6905
 

Bejobe

Neuer User
Mitglied seit
19 Mai 2005
Beiträge
163
Punkte für Reaktionen
0
Punkte
0
ich habe an arp1 foldende Zeile hinzugefügt:
arp >> /var/tmp/arptest
Ich weiss nicht, ob du inzwischen weitergekommen bist. Hier noch ein paar Anregungen:

- ">>" ist etwas anderes als ">". Sinnvoll ist ">". Wobei das hier egal ist, aber nur deshalb, weil es ja nach einem Reset stattfindet. Aber wie gesagt, da gehört meiner Ansicht nach ein ">" hin. (deshalb auch für jede Checkzeile eine eigene Datei schreiben lassen): arptest01 arptest02 ...

- Mit ls -l /var/tmp/arp* kann anschliessend der User geprüft werden unter dem die "Debug"-Dateien geschrieben wurden.

- Ich würde in der debug.cfg anders vorgehen: Es gehört das "sleep 90" in das arp1-Script hinein. Durch ein "arp1 &" kann dann die debug.cfg unabhängig zuende durchlaufen, bevor arp1 sich nach dem sleep weiter ausführt. Damit ist gewährleistet, dass das System wirklich fertig hochgefahren ist (ua die debug.cfg zuende ausgeführt ist) bevor dein Script zum Zuge kommt.

- Mit einem zweiten Script (starten in debug.cfg mit "arp2 &") unabhängig überprüfen, wie der Zustand nach dem Ausführen von arp1 ist:
#!/bin/sh
trap '' SIGHUP
sleep 120
arp > /var/tmp/arpchk
ls -l /var/tmp/arp* > /var/tmp/arpls

- eventuell reicht "sleep 90" im unabhängig laufenden Script immer noch nicht. Eventuell braucht die FB länger, um selbst die Tabelle aufzubauen. Deshalb wurde ich es einmal mit "sleep 600" versuchen. Aber wie gesagt, sowas ist nur sinnvoll, wenn arp1 unabhängig laufend in debug.cfg mit "arp1 &" gestartet wurde. (sleep 120 im zweiten script dann natürlich anpassen...)

Bejobe
 
Zuletzt bearbeitet:

Andi6905

Neuer User
Mitglied seit
14 Feb 2005
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo Bejobe,

das Problem ist mit dem Einbau des Sleep gelöst. Ich habe einen Sleeep300 verwendet da wahrscheinlich Initialisierungsvorgänge die ARP-Tabelle löschen. 300 Sekunden funktionieren zuverlässig.
Vielen Dank für Deine Hilfe.

Andi6905
 

Bejobe

Neuer User
Mitglied seit
19 Mai 2005
Beiträge
163
Punkte für Reaktionen
0
Punkte
0
das Problem ist mit dem Einbau des Sleep gelöst.
Na sehr schön, das freut mich.


wahrscheinlich Initialisierungsvorgänge die ARP-Tabelle löschen.
Umgekehrt wird ein Stiefel draus: Die Liste wird nicht gelöscht, sondern nach dem Booten der Box muss die Liste erst aufgebaut werden. (dh alle Geräte, die direkt im lokalen Netz per MAC erreichbar sind eingetragen werden)

Bejobe