.titleBar { margin-bottom: 5px!important; }

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

Dieses Thema im Forum "FRITZ!Box Fon: Modifikationen" wurde erstellt von Andi6905, 25 Dez. 2011.

  1. Andi6905

    Andi6905 Neuer User

    Registriert seit:
    14 Feb. 2005
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    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.
     
  2. Bejobe

    Bejobe Neuer User

    Registriert seit:
    19 Mai 2005
    Beiträge:
    163
    Zustimmungen:
    0
    Punkte für Erfolge:
    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
     
  3. Andi6905

    Andi6905 Neuer User

    Registriert seit:
    14 Feb. 2005
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    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.
     
  4. Bejobe

    Bejobe Neuer User

    Registriert seit:
    19 Mai 2005
    Beiträge:
    163
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #4 Bejobe, 26 Dez. 2011
    Zuletzt bearbeitet: 26 Dez. 2011
    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
     
  5. Andi6905

    Andi6905 Neuer User

    Registriert seit:
    14 Feb. 2005
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    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
     
  6. Bejobe

    Bejobe Neuer User

    Registriert seit:
    19 Mai 2005
    Beiträge:
    163
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #6 Bejobe, 29 Dez. 2011
    Zuletzt bearbeitet: 29 Dez. 2011
    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
     
  7. Andi6905

    Andi6905 Neuer User

    Registriert seit:
    14 Feb. 2005
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    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
     
  8. Bejobe

    Bejobe Neuer User

    Registriert seit:
    19 Mai 2005
    Beiträge:
    163
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Na sehr schön, das freut mich.


    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