IPv6 Prefix via Nginx, LUA und einem einfachen Bash-Script ausgeben (ohne PHP)

Hi,

ein Snippet (mal wieder). Daher ganz kurz und knapp.

Unter Debian benötigt ihr die Pakete nginx-full sowie subnetcalc, da hier die entsprechenden LUA Module vorhanden sind.
Wer ganz wild drauf ist, kompiliert es sich nach… :)

In der entsprechenden Site-Konfiguration:

Das Script /opt/ip6_prefix.sh:

Anschließend als ausführbar markieren durch chmod +x /opt/ip6_prefix.sh

7 Antworten auf “IPv6 Prefix via Nginx, LUA und einem einfachen Bash-Script ausgeben (ohne PHP)

  1. Jens

    Was soll denn überhaupt erreicht werden? Die Installation eines kompletten Webservers nebst LUA der auch noch Shell-Skripte ausführt scheint mir für die bloßen Ermittlung eines IPv6-Prefixes ein bisschen sehr viel Overkill zu sein.

    1. André P. Autor

      Ich habe einen Mini-Server ohne PHP, nur mit Nginx intern aktiv, der bestimmte Aufgaben übernimmt.
      Ich brauche einen Ausgabepunkt für meinen aktuellen IPv6-Prefix ohne Schnick-Schnack.

      Wenn du mir verrätst wie ich das erreiche, ohne viele Abhängigkeiten zu installieren und bestenfalls nur einen Webserver zu betreiben: gerne. :)

    2. André P. Autor

      Ach so, was noch wichtig ist: Der Prefix muss eben per HTTP abrufbar sein. Diese URL kommt in eine OPNsense herein, die die Rückgabe als Netzwerk-Objekt behandelt und entsprechend dieses Prefix für einige Freischaltungen verwendet.

      Dass ich keinen Webserver für eine Ermittlung des Prefixes benötige ist klar.

      1. Jens

        Die aktuelle IPv6-Adresse kannst du lokal herausbekommen, ohne einen anderen Server fragen zu müssen. Für Systeme mit aktivierter IPv6 privacy extension:
        ip -6 -br a s dev eth0 scope global temporary -deprecated
        und für Systeme mit fester IPv6-Adresse:
        ip -6 -br a s dev eth0 scope global permanent
        Evtl. eth0 noch gegen den korrekten Interfacenamen tauschen.
        Das Ergebnis obiger Befehle kannst du ja noch mit “ | cut -b33-“ garnieren. Und wenn OPNsense diesen Wert über HTTP abrufbar haben will, dann brauchst du natürlich einen Mini-Webserver. OPNsense kann die eigene IPv6-Adresse aber doch sicher auch selbst herausbekommen, oder?

        1. André P. Autor

          Dass ich die aktuelle IP ohne Server herausbekomme ist mir klar! :D Darum geht es hier absolut GAR nicht.

          Ich brauche den aktuellen Prefix (NICHT die IP, einen Prefix!), um ihn einer ANDEREN OPNsense als Netzwerk-Objekt zu geben, damit DIESE eine Freischaltung anhand meines Prefixes machen kann. Ich verwende SLAAC im internen Netz, daher kommen diverse Clients mit ständig unterschiedlichen IPs um die Ecke.

          Es geht bei dem Script oben NICHT darum, eine IP herauszubekommen. Wirklich gar nicht. Es geht darum, dass ich mit Nginx und LUA einen Prefix ausgeben kann, ohne irgendeinen Quatsch mit PHP machen zu müssen, nur damit ich remote meinen Prefix abrufen kann. ;)

          1. Jens

            Nun ja, dann muss ich sagen, dass du dir gar nicht angeschaut hast, was die obigen Sachen ausgeben: nämlich eine IPv6-Adresse inkl. Prefixlänge (die in deinen Skript z.B. fest vorgegeben und nicht variabel ist). Die kannst du an subnetcalc, ipcalc oder was auch immer verfüttern und brauchst auch keinen „Quatsch mit PHP“ machen. Aber egal, du hast ja einen für dich passenden Weg gefunden.

            1. André P. Autor

              Es geht NICHT darum eine doofe IP auszulesen. Ich glaube, du weißt gar nicht, was ich mache, oder?

              Ich will und muss KEINE (!) IP rausfinden. Ich muss einem EXTERENEN System einen ganzen PREFIX übergeben. Ich muss keine IP auslesen. Denkst du ich baue mir etwas mit LUA und einem Script, um eine IP herauszufinden?

              Dass ich eine IP auf 2000 Wegen aus dem System auslesen kann ist mir klar. Darum geht es nicht, das schrieb ich jetzt wirklich schon einige Male. :( Lies es bitte noch einmal genau durch.

              Ein externes System muss von mir einen aktuellen Prefix bekommen. Du kannst ja mal auf einer externen Firewall „ip -6 a s“ ausführen und schauen, ob du meinen Prefix siehst. Siehst du ihn? Bestimmt nicht. Willkommen bei der Lösung dieses Problemes.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.